2011-08-09 63 views
1

我正在使用OpenGL和C創建2D渲染引擎。我正在瞭解VBOs以及如何將它們用於非即時模式渲染。我已閱讀:http://www.opengl.org/wiki/Vertex_Buffer_Object我應該爲精靈創建什麼樣的頂點?

本教程提出以下建議:

struct MyVertex 
{ 
float x, y, z;  //Vertex 
float nx, ny, nz;  //Normal 
float s0, t0;   //Texcoord0 
float s1, t1;   //Texcoord1 
float s2, t2;   //Texcoord2 
float padding[4]; 
}; 

我不需要正常值,而且我不確定如何或爲何有單個頂點的三個紋理座標。我想所有我需要的是Vertex(XYZ)和一個Texcoord(s0,t0 < - 仍然不知道那些是什麼意思)。

+0

您的目標是固定功能還是可編程硬件? – genpfault

回答

1

這只不過是一個例子;不要把這個頂點格式當作福音甚至是建議。事實上,在任何嚴肅的應用中,人們都不會使用這麼多的花車。

無論如何,如果你想刪除這些屬性,那很好。隨你便。至於爲什麼一個人可能需要3組紋理座標,這是因爲人們有三組紋理映射到表面。有這樣的理由,但在實踐中相當罕見。

此外,OpenGL有一種命名紋理座標的不同方式。大多數其他事情並不像「UV」那樣,OpenGL使用「ST」。

+0

非常感謝您的解釋。 –