1

这是一个示例: 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'

在这两种情况下,都会生成一个窗口,但没有显示几何图形。

basenodes 问题是否表明 MMImageTexture 是自定义 basenode 并且没有正确创建?据我所知,我遵循了所有内容。:\ 太烦人了……太烦人了。Prease 对我有帮助!:P

我的系统规格是 win7、4gb ram、corei5、630m GeForce GT,使用 python 2.7 和 python 便携版。

4

0 回答 0