【发布时间】:2010-04-21 13:20:02
【问题描述】:
我的顶点交错在一个 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++ 应用程序中使用几乎完全相同的代码并且它可以工作。
【问题讨论】:
-
我不是 PyOpenGL 用户,但从您的描述来看,数组上的 + 听起来不像您认为它在该语言中所做的那样。是时候检查语言规范了?
-
@Bahbar:这就是我的想法,但我一直无法找到任何有关它的信息。我用谷歌搜索了很多无济于事。