我的頂點在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