I forgot to link to the StackOverflow question in my original post :
http://stackoverflow.com/questions/4618892/basic-opengl-vertex-buffers-and-pyglet

After a couple of days of pulling my hair out over this, I've finally
found my (really silly) mistakes ! A combination of incorrect w
coordinates, problems in passing the size of the vertex buffer to
openGL and removing the shaders, as explained more thoroughly on SO.


On Jan 7, 9:47 am, NicoL <[email protected]> wrote:
> Hi all !
>
> I'm trying to learn some basics of modern OpenGL from this
> tutorial :http://www.arcsynthesis.org/gltut/Basics/Tutorial%2001.html
>
> I'd like to do it with python/pyglet instead of C++ though. I know
> pyglet can abstract much of the low level OpenGL away; I want to
> understand some of the basics before moving on to hiding them behind
> layers of abstraction though.
>
> My problem is extremely simple: the code below only draws a single
> point instead of the 3 I am expecting. My code is, as far as I can
> tell, identical to the C++ in the tutorial, except for the removal of
> vertex and fragment shaders (done via gletools* in python), which
> appears to make no difference to my problem.
>
> Simplifying things to a single point shows behaviour I do not
> understand (the first coordinate appears to be the only one that
> affects anything), leading me back to my belief that I've simply
> failed to understand something very basic about either pyglet, OpenGL,
> or even 3D in general :p
>
> Please note this question is also posted on StackOverflow, if anyone
> has the answer and wants to share it there I'll be sure to mark the
> question answered :)
>
> *gletools can be found here 
> :http://codeflow.org/entries/2009/jul/31/gletools-advanced-pyglet-util...
>
> Here's the relevant code:
>
>   import pyglet
>   from pyglet.gl import *
>
>   window = pyglet.window.Window()
>
>   positionBufferObject = GLuint()
>   vao = GLuint()
>
>   vertexPositions = [0.0, 0.0, 0.0,
>                      0.25, 0.0, 0.0,
>                      1.75, 1.75, 0.0]
>
>   vertexPositionsGl = (GLfloat * len(vertexPositions))
> (*vertexPositions)
>
>   @window.event
>   def on_draw():
>       glBindBuffer(GL_ARRAY_BUFFER, positionBufferObject)
>       glEnableVertexAttribArray(0)
>       glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0)
>       glDrawArrays(GL_POINTS, 0, 3)
>       glDisableVertexAttribArray(0)
>
>   glGenBuffers(1, positionBufferObject)
>   glBindBuffer(GL_ARRAY_BUFFER, positionBufferObject)
>   glBufferData(GL_ARRAY_BUFFER, len(vertexPositionsGl)*4,
> vertexPositionsGl, GL_STATIC_DRAW)
>   glBindBuffer(GL_ARRAY_BUFFER, 0)
>
>   glClearColor(0.0, 0.0, 0.0, 0.0)
>   pyglet.app.run()

-- 
You received this message because you are subscribed to the Google Groups 
"pyglet-users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/pyglet-users?hl=en.

Reply via email to