
program architecture for a modeling/editing app. few questions.
Posted Sunday, 20 February, 2011 - 00:10 by Norris inHi !
I like modeling, and my main goal to play with OpenTK is to create some 3D utility softwares like modeling app or "mesh tools" like MeshLab. I'm not planning to create a game.
So, in this context, I have a few questions about the architecture of the program.
1) I know that, sometimes I need to have different normals on the same vertex, so I need as many vertices as normals vectors. But this is not always the case. So I think it's good to delete duplicate vertices and use this "clean" list with an indexed VBO. I know how to do, and that works.
But I think it may complicate things when I'd work on the vertices. On the other side, If I have 3 or more vertices at the same position, how to deal with this when I want to move a vertex for example ?
For modeling, I work with MAXON Cinema 4D, and for a simple example of a cube, I only have 8 vertices, but I have a flat shading as if it has a vertex for each triangle !
This is the opposite of what we read in OpenGL tutorials.
And if I have a "merged vertex" for some polygons and I want to modify the normal for only one polygon or vertex, I need to duplicate this ?
How modeling package deal with it ?
My first idea is to keep a dirty vertice list in memory with duplicates vertices, and send a cleaned list to VBO for rendering.
2) In my programm, I want a "Materials manager" with thumbnails of my materials. Each thumbnail show a small sphere with the material apply to it. (a thumbnail is a UserControl)
Actually I fake a 3D sphere with GDI+ drawing API. I'm happy with it as I can identify a material quickly. But for complex materials, it's hard to draw it. So my first idea is my Thumbnails control need to inherit from GLControl.
Is it a good idea ?
for performance, is it good to have many GLControl, each one with enough triangles to have a good image ?
I heard that we can use a "Graphic context" for off-screen rendering like in GDI+ with the Graphics class. Is it better then the first idea ?
In GDI, I understand that I need to choose the Graphics to draw on, and drawing methods are parts of this Graphics. How to do this in OpenTK ?
When I call "GL.Vertex3", how to know on wich context I draw ?


Comments
Re: program architecture for a modeling/editing app. few ...
I don't know the answer to your first question, but for your second:
glControl1.Context.MakeCurrent(glControl_n.WindowInfo)to switch the 1st context to the n-th GLControl).