2011-04-04 40 views
0

我正在尋找更好的方法來處理網格,而不是我當前的實現,它基本上是類的.obj格式。在OpenGL中處理網格的建議方法

我目前的結構

Class Vertex 
{ 
    float[3] Pos; 
} 

Class Face 
{ 
    Vertex[3] Verts; 
    float[3][3] Norm; 
    float[3][3] Tex; 
} 

Class Mesh 
{ 
    Face[] MeshData; 
} 

我可以用這只是在大多數情況下很好,但我希望能夠做的事情,如處理一個頂點,並隨機移動。我做到了,但連接的臉不會隨它移動。

這可能可以通過在同一個位置引用一個頂點來引用同一個頂點,但我不知道如何預先做這件事,我無法想象去除雙頂點會是甚至可以用我的設置進行遠程快速操作。

回答

0

如果你打算操作網格物體,並且渲染速度是第二次查看half-edge data structure

如果渲染速度是最重要的扁平化所有的東西變成交錯頂點/ texcoord /正常的最大VA/VBO友好數組:

struct Vertex 
{ 
    float x, y, z; 
    float u, v; 
    float nx, ny, ny; 
}; 

通常你會希望sizeof(Vertex)是32個字節的倍數。