0
我剛剛開始使用OpenGL並嘗試使用Python 2.7創建基本的「hello world」類型的OpenGL應用程序,pygame和pyOpenGL使用GPU呈現一些2D圖形。當試圖創建一個頂點緩衝區的頂點數據:pyOpenGL無法創建頂點緩衝區對象
Traceback (most recent call last):
File "test.py", line 126, in <module>
main()
File "test.py", line 59, in main
vertexbuffer = vbo.VBO([[0, 0], [1, 0], [1, 1], [0, 1], [2.2, 2.2], [2.7, 2.7], [2.2, 3.2], [1.7, 2.7]])
File "/usr/lib/python2.7/site-packages/OpenGL/arrays/vbo.py", line 180, in __init__
self.set_array(data, size)
File "/usr/lib/python2.7/site-packages/OpenGL/arrays/vbo.py", line 204, in set_array
self.size = ArrayDatatype.arrayByteCount(self.data)
File "/usr/lib/python2.7/site-packages/OpenGL/arrays/arraydatatype.py", line 176, in arrayByteCount
return cls.getHandler(value).arrayByteCount(value)
AttributeError: 'ListHandler' object has no attribute 'arrayByteCount'
vbo.VBO
是OpenGL.arrays.vbo.VBO
。
非常困惑這一點。搜索此錯誤消息產生絕對沒有具體。
任何見解?
編輯:我想我會包括在此VBO調用之前執行的代碼。
def init(screen_size):
screen = pygame.display.set_mode(screen_size, HWSURFACE | OPENGL | DOUBLEBUF)
glViewport(0, 0, screen_size[0], screen_size[1])
glShadeModel(GL_SMOOTH)
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST)
viewport = glGetIntegerv(GL_VIEWPORT)
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
glFrustum(-1.0, 1.0, 1.0, -1.0, 1, 10.0);
glMatrixMode(GL_MODELVIEW)
glLoadIdentity()
從回溯的vbo.VBO(...)
線這個init()
後立即調用。
這不提供問題的答案。要批評或要求作者澄清,在他們的帖子下留下評論 - 你總是可以評論你自己的帖子,一旦你有足夠的[聲譽](http://stackoverflow.com/help/whats-reputation),你會能夠[評論任何帖子](http://stackoverflow.com/help/privileges/comment)。 –
對不起,我不明白。你是說這不是一個答案嗎?我會說這是,我知道,因爲我在這裏回答我自己的問題。你是說不清楚嗎?在這種情況下,我會編輯澄清。 – orost