In Direct3D gebruikte ik vertex buffers voor het opslaan van data. Deze data werd dan in het videogeheugen opgeslagen. Het vullen van de buffers en het "afspelen" van de buffers was heel snel. Tevens stond de data in het videogeheugen met als voordeel dat dit sneller is en hoofdgeheugen bespaard.
Nu probeer ik in OpenGL hetzelfde voor elkaar te krijgen. Hier kan ik kiezen tussen vertex arrays of display lists. Display lists zijn voor mij onbruikbaar omdat het vullen van een display list tergend traag is. De aanroep van glEndList() kan zo'n 10 seconden duren. Dit is onacceptabel. Vertex arrays moeten echter in het hoofdgeheugen door de aanroeper van openGL aangemaakt worden. Hier wordt het videogeheugen dus helemaal niet gebruikt.
Wat ik het liefst wil is de situatie zoals Direct3D die mij aanbiedt. Geef mij een stuk videogeheugen en laat mij daar mijn data inzetten. Geef deze data vervolgens weer. Kan dit ook met OpenGL?
Nu probeer ik in OpenGL hetzelfde voor elkaar te krijgen. Hier kan ik kiezen tussen vertex arrays of display lists. Display lists zijn voor mij onbruikbaar omdat het vullen van een display list tergend traag is. De aanroep van glEndList() kan zo'n 10 seconden duren. Dit is onacceptabel. Vertex arrays moeten echter in het hoofdgeheugen door de aanroeper van openGL aangemaakt worden. Hier wordt het videogeheugen dus helemaal niet gebruikt.
Wat ik het liefst wil is de situatie zoals Direct3D die mij aanbiedt. Geef mij een stuk videogeheugen en laat mij daar mijn data inzetten. Geef deze data vervolgens weer. Kan dit ook met OpenGL?