Re: [PyOpenGL-Users] New user trying tutorial
Brought to you by:
mcfletch
From: Nicolas P. R. <Nic...@in...> - 2014-09-10 14:22:18
|
Here is another tutorial: http://www.loria.fr/~rougier/teaching/opengl/ One part (gloo) is linked to the vispy project (vispy.org) but I tried to give an overview of modern GL. Nicolas On 30 Aug 2014, at 22:10, Berlioz Silver <roc...@gm...> wrote: > Sorry, just figured it out. > > I'd still like to know if there are other good tutorials though. > > > On Sat, Aug 30, 2014 at 1:07 PM, Berlioz Silver <roc...@gm...> wrote: > I've been interested in attempting to use pyopengl and pygame together to display 3D images and accelerate my programs. > > I figured a logical first step would be to learn a bit about pyopengl, so I tried the tutorial. > > I successfully installed pyopengl on OSX 10.9, and ran the first tutorial. > > However, the second (introducing color variations http://pyopengl.sourceforge.net/context/tutorials/shader_2.html) fails with a bus error 10. > > Is there another tutorial I should follow/what mistake did I make that is giving me a segfault? > > Here is my code: > > > > from OpenGLContext import testingcontext > BaseContext = testingcontext.getInteractive() > from OpenGL.GL import * > from OpenGL.arrays import vbo > from OpenGL.GL import shaders > > import numpy as np > > > class TestContext(BaseContext): > def OnInit(self): > try: > VERTEX_SHADER = shaders.compileShader(""" > varying vec4 vertex_color; > void main(){ > gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; > vertex_color = gl_Color; > }""", GL_VERTEX_SHADER) > FRAGMENT_SHADER = shaders.compileShader(""" > varying vec4 vertex_color; > void main(){ > gl_FragColor = vertex_color; > }""", GL_FRAGMENT_SHADER) > self.shader = shaders.compileProgram(VERTEX_SHADER, FRAGMENT_SHADER) > except (GLError, RuntimeError) as err: > print "Shader compilation error:", err > raise > self.vbo = vbo.VBO(np.array([ > [ 0, 1, 0, 0,1,0 ], > [-1,-1, 0, 1,1,0 ], > [ 1,-1, 0, 0,1,1 ], > [ 2,-1, 0, 1,0,0 ], > [ 4,-1, 0, 0,1,0 ], > [ 4, 1, 0, 0,0,1 ], > [ 2,-1, 0, 1,0,0 ], > [ 4, 1, 0, 0,0,1 ], > [ 2, 1, 0, 0,1,1 ], > ],'f') ) > def Render(self, mode): > glUseProgram(self.shader) > try: > self.vbo.bind() > try: > glEnableClientState(GL_VERTEX_ARRAY) > glEnableClientState(GL_COLOR_ARRAY) > #glVertexPointerf(self.vbo) > glColorPointer(3, GL_INT, 24, self.vbo+12) > glDrawArrays(GL_TRIANGLES, 0, 9) > finally: > self.vbo.unbind() > glDisableClientState(GL_VERTEX_ARRAY) > glDisableClientState(GL_COLOR_ARRAY) > finally: > shaders.glUseProgram(0) > > if __name__ == "__main__": > TestContext.ContextMainLoop() > > ------------------------------------------------------------------------------ > Want excitement? > Manually upgrade your production database. > When you want reliability, choose Perforce > Perforce version control. Predictably reliable. > http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk_______________________________________________ > PyOpenGL Homepage > http://pyopengl.sourceforge.net > _______________________________________________ > PyOpenGL-Users mailing list > PyO...@li... > https://lists.sourceforge.net/lists/listinfo/pyopengl-users |