我应该为精灵创建什么样的顶点?

时间:2011-08-09 00:31:36

标签: c opengl sprite vbo vertex

我正在使用OpenGL和C来创建2D渲染引擎。我正在学习VBO以及如何将它们用于非立即模式渲染。我一直在阅读: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];
};

我不需要Normal值,我不确定单个顶点有三个纹理坐标的方式或原因。

我认为我应该需要的是Vertex(XYZ)和一个Texcoord(s0,t0< - 仍然不知道那些意思)。

1 个答案:

答案 0 :(得分:1)

这只不过是一个例子;不要将该顶点格式视为福音或甚至是建议。实际上,在任何严肃的应用中,人们都不会使用这么多花车。

在任何情况下,如果你想删除这些属性,那很好。这取决于你。

至于为什么人们可能需要3组纹理坐标,这是因为一组有三组纹理映射到表面。做这样的事情是有原因的,但在实践中这是相当罕见的。

此外,OpenGL有一种不同的命名纹理坐标的方法。 OpenGL使用“ST”而不是像其他大多数事情那样“UV”。