我的顶点在numpy数组(dtype = float32)中交错,如下所示:... tu,tv,nx,ny,nz,vx,vy,vz,...PyOpenGL:glVertexPointer()偏移问题
渲染时,我打电话GL *指针()这样的(我已启用前的阵列):
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,...),我会在渲染时得到正确的顶点位置,但纹理coords和法线不正确。
这使我相信我没有设置指针偏移权。我应该如何设置它?我在C++中使用了几乎完全相同的代码,并且它可以工作。
我不是PyOpenGL的用户,但是从你的描述来看,它听起来像+上的数组并没有做你认为它在那种语言中的作用。有时间检查语言规范? – Bahbar 2010-04-21 14:43:56
@Bahbar:这就是我的想法,但我一直无法找到任何有关它的信息。我搜索了很多无济于事。 – SurvivalMachine 2010-04-21 15:41:08