(PyOpenGL) Vertex Buffer Objects
Verfasst: Mittwoch 2. Juni 2010, 14:08
Hallo zusammen,
ich kämpfe mich gerade durch ein Buch zu OpenGL 3.0 und komme bei einem Beispiel nicht weiter.
Die Beispiel sind im Buch in C++-Code geschrieben und ich versuche sie in Python durchzuführen.
Und zwar soll ein Punkt durch erstellen eines Vertex Buffer Objects gezeichnet werden.
Hier ein Ausschnitt des Codes:
Probleme machen mir vor allem glGenBuffer und glBufferData.
glGenBuffer nimmt in dem Beispiel 2 Parameter - Anzahl der zu erstellenden Buffer und einen Pointer auf einen Array, der die Buffer-Namen speichert.
PyOpenGL gibt mir allerdings den Fehler, das glGenBuffer nur 1 Parameter nimmt
Bei glBufferData kommt es auch zu einem Fehler, der 2.Parameter soll die Byte-Größe des Vertex-Array sein...
Weiß jemand, was ich ändern muss?
Oder hat jemand ein bisschen Beispiel-Code in PyOpenGL der funktioniert?
ich kämpfe mich gerade durch ein Buch zu OpenGL 3.0 und komme bei einem Beispiel nicht weiter.
Die Beispiel sind im Buch in C++-Code geschrieben und ich versuche sie in Python durchzuführen.
Und zwar soll ein Punkt durch erstellen eines Vertex Buffer Objects gezeichnet werden.
Hier ein Ausschnitt des Codes:
Code: Alles auswählen
import pygame
#from sys import exit
import sys
from OpenGL.GL import *
from OpenGL.GLU import *
screen = (800,600)
pygame.init()
surface = pygame.display.set_mode(screen, pygame.OPENGL|pygame.DOUBLEBUF, 16)
pygame.display.set_caption("Hallo Welt!")
...
# VERTEX BUFFER OBJECTS
vbo_vertex=[[0,0,-2]]
m_vertexBuffer=GLuint(0) # init the Buffer in Python!
glGenBuffers(1, m_vertexBuffer) # generate a buffer for the vertices
glBindBuffer(GL_ARRAY_BUFFER, m_vertexBuffer) #bind the vertex buffer
glBufferData(GL_ARRAY_BUFFER, sys.getsizeof(vbo_vertex), vbo_vertex[0], GL_STATIC_DRAW)
glBindBuffer(GL_ARRAY_BUFFER, m_vertexBuffer) #bind the vertex buffer
glVertexPointer(3, GL_FLOAT, 0, BUFFER_OFFSET(0))
glEnableClientState(GL_VERTEX_ARRAY) # enable Vertex Array
glDrawArrays(GL_POINTS, 0, 1) # draw a single point
glDisableClientState(GL_VERTEX_ARRAY) # disable the Vertex Array
pygame.display.flip()
glGenBuffer nimmt in dem Beispiel 2 Parameter - Anzahl der zu erstellenden Buffer und einen Pointer auf einen Array, der die Buffer-Namen speichert.
PyOpenGL gibt mir allerdings den Fehler, das glGenBuffer nur 1 Parameter nimmt

Bei glBufferData kommt es auch zu einem Fehler, der 2.Parameter soll die Byte-Größe des Vertex-Array sein...
Weiß jemand, was ich ändern muss?
Oder hat jemand ein bisschen Beispiel-Code in PyOpenGL der funktioniert?