VBO 一般几何

VBO General Geometry

我正在 Haskell 制作渲染引擎,并且正在优化我的代码以使用 VBO。我想稍微抽象一下几何类型,因为有相当数量,并且想把它放在一个函数和一些参数中。

例如,如果我有一组几何图形,它是顶点和法线对的列表,即 [(Vertex, Normal)]。我将步幅设置为 6,在描述符中,将每个大小设置为 3,然后将法线的偏移量设置为 3。

现在,如果我只想做一个顶点列表,即 [Vertex],我可以将步幅大小设置为 3,将法线大小设置为 0,但仍然设置指针和所有内容吗?

来自 OpenGL documentationglVertexAttribPointer:

size
Specifies the number of components per generic vertex attribute. Must be 1, 2, 3, 4. Additionally, the symbolic constant GL_BGRA is accepted by glVertexAttribPointer. The initial value is 4.

因此,您不能调用指向其类型大小为零的对象的指针。为了不使用法线,您必须使用不同的 VBO。