2010-11-14 69 views
2

我有幾個3D應用程序,我想知道,什麼是存儲線條和三角形的最佳方式?目前,我行作爲typedef定義矢量數組作爲這樣的:用C++存儲三角形和線條的最佳(最快)方法?

typedef struct 
{ 
    float x, y, z; 
} 
Vector 

Vector line[2];

現在,我能做到這一點是這樣的:

 
typedef struct 
{ 
    Vector start, end; 
} 
Line 

Line lineVar; 

面孔可能是相似的:

 
typdef struct 
{ 
    Vector v1, v2, v3; 
} 

Face faceVar; 

我的問題是:是否有更好或更快的方式來存儲線條和麪?還是我做得好?

感謝,

詹姆斯

回答

2

你有什麼是非常向量如何在計算機程序中表示。我無法想象任何其他方式來做到這一點。這是完全沒有:

typedef struct 
{ 
    float x, y, z; 
} Vector; 

DirectX stores vector components like this,順便)

然而,3D密集型程序通常具有的面索引到載體陣列,以節省空間,因爲相同的點經常出現在不同的面上

typedef struct 
{ 
    int vectorIndex1, vectorIndex2, vectorIndex3; 
} Face; 
+0

謝謝:-)正是我需要的 – Bojangles 2010-11-14 20:47:34

+0

@JamWaffles:3D模型的我應該注意的面孔通常是由矢量指數,而不是矢量本身代表 - 看到我的編輯。 – 2010-11-14 20:54:35

+0

謝謝你。我現在只是在玩小數學演示 - 寫小代碼片段以確保最終應用(遊戲)的所有組件都能正常工作。我將從一個文件中加載模型,這個文件將在同一個地方有多個點,所以我一定會考慮刪除重複項 - 感謝提高速度的靈感! – Bojangles 2010-11-14 20:58:18

相關問題