我的顶点交错在一个 numpy 数组(dtype = float32)中,如下所示:... tu, tv, nx, ny, nz, vx, vy, vz, ...
渲染时,我像这样调用 gl*Pointer() (我之前启用了数组):
stride = (2 + 3 + 3) * 4
glTexCoordPointer( 2, GL_FLOAT, stride, self.vertArray )
glNormalPointer( GL_FLOAT, stride, self.vertArray + 2 )
glVertexPointer( 3, GL_FLOAT, stride, self.vertArray + 5 )
glDrawElements( GL_TRIANGLES, len( self.indices ), GL_UNSIGNED_SHORT, self.indices )
结果是没有渲染。但是,如果我组织我的数组,使顶点位置是第一个元素(... vx, vy, vz, tu, tv, nx, ny, nz, ... )我在渲染时得到正确的顶点位置但纹理坐标和法线未正确渲染。
这让我相信我没有正确设置指针偏移量。我应该如何设置它?我在我的其他 C++ 应用程序中使用几乎完全相同的代码并且它可以工作。