这是从一个示例: http://pyopengl.sourceforge.net/context/tutorials/shader_1.xhtml
它创建一个VBO,暴食它,并用着色器运行它,但沿途某处,某事不能正常工作。 :\
from OpenGLContext import testingcontext
BaseContext = testingcontext.getInteractive()
from OpenGL.GL import *
from OpenGL.arrays import vbo
from OpenGLContext.arrays import *
from OpenGL.GL import shaders
class TestContext( BaseContext ):
def OnInit( self ):
VERTEX_SHADER = shaders.compileShader("""#version 330
void main() {
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
}""", GL_VERTEX_SHADER)
FRAGMENT_SHADER = shaders.compileShader("""#version 330
void main() {
gl_FragColor = vec4( 0, 3, 6, 1 );
}""", GL_FRAGMENT_SHADER)
self.shader = shaders.compileProgram(VERTEX_SHADER,FRAGMENT_SHADER)
self.vbo = vbo.VBO(
array( [
[ 0, 1, 0 ],
[ -1,-1, 0 ],
[ 1,-1, 0 ],
[ 2,-1, 0 ],
[ 4,-1, 0 ],
[ 4, 1, 0 ],
[ 2,-1, 0 ],
[ 4, 1, 0 ],
[ 2, 1, 0 ],
],'f')
)
def Render( self, mode):
shaders.glUseProgram(self.shader)
try:
self.vbo.bind()
try:
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointerf(self.vbo)
glDrawArrays(GL_TRIANGLES, 0, 9)
finally:
self.vbo.unbind()
glDisableClientState(GL_VERTEX_ARRAY);
finally:
shaders.glUseProgram(0)
if __name__ == "__main__":
TestContext.ContextMainLoop()
运行在正常的py 2.7交互式终端该样品产生以下:
OpenGLContext.scenegraph.basenodes:Unable to load node implementation for
MMImageTexture: 'module' object has no attribute 'MMImageTexture'
在这两种情况下,产生一个窗口,但没有显示的几何体。
是指示MMImageTexture是一个自定义basenode并没有被正确创建basenodes问题? 我跟着啧啧信的一切,据我可以告诉。 :\那么讨厌......那么讨厌。 Prease帮助我的! :P
我的系统规格是WIN7,4GB内存,corei5,630米的GeForce GT,使用python 2.7和python便携。