Eergisteren heeft Khronos een nieuwe OpenGL standaard gereleased met versienummer 3.1, daarbij is ook een nieuwe versie van de GL shading language (GLSL) gereleased met versienummer 1.40.
De specificaties zijn hier in te zien:
specificatie OpenGL 3.1
specificatie OpenGL 3.1 met ARB_compatibility extensie
specificatie OpenGL shading language 1.40
De aankondiging van Khronos:
http://www.khronos.org/ne...-opengl-3.1-specification
Zoals sommigen wel zullen weten is in september 2008 OpenGL 3.0 gereleased. Deze release kwam een stuk later dan in eerste instantie de bedoeling was, daarnaast bevatte OpenGL 3.0 geen complete API rewrite zoals eerder beloofd was. Wel werd het deprecation model ingevoerd, dat vrijwel alle fixed pipeline functionaliteit deprecated maakte. Ook werden een fiks aantal extensies tot de core toegevoegd waardoor DirectX 10.0 hardware een vereiste werd om OpenGL 3.0 te kunnen draaien. Voor het oude OpenGL 2.1 werden nieuwe extensies toegevoegd om functionaliteit uit OpenGL 3.0 ook op oude hardware te kunnen gebruiken die wel OpenGL 2.1 capable was, maar niet OpenGL 3.0 capable (uiteraard gold dit niet voor functionaliteit die alleen beschikbaar was op DirectX 10.0 hardware).
Nu, negen maanden later is OpenGL 3.1 gereleased. Wat is er nu veranderd (deze lijst is niet compleet)?
Ik ben best wel enthousiast over deze ontwikkeling. Ik had niet verwacht nu al een nieuwe versie van OpenGL te zien en ik had zeker niet verwacht dat alle deprecated functionaliteit nu alleen nog via een extensie beschikbaar zou zijn. Persoonlijk begin ik de indruk te krijgen dat de OpenGL 3.x series een tussenstap zijn naar de (eerder beloofde) nieuwe API, die backwards compatability zal breken.
Een aardige blogpost van Paul Martz hierover is vinden op:
http://www.skew-matrix.com/bb/viewtopic.php?f=3&t=4
Persoonlijk kijk ik er wel naar uit om deze schone OpenGL versie te gaan gebruiken, hopelijk binnenkort in combinatie met OpenCL. Wat denken jullie, is Khronos met OpenGL 3.1 weer op het juiste pad geslagen? Maakt OpenGL weer een kans om een moderne api te worden die kan concurreren met DirectX?
De specificaties zijn hier in te zien:
specificatie OpenGL 3.1
specificatie OpenGL 3.1 met ARB_compatibility extensie
specificatie OpenGL shading language 1.40
De aankondiging van Khronos:
http://www.khronos.org/ne...-opengl-3.1-specification
Zoals sommigen wel zullen weten is in september 2008 OpenGL 3.0 gereleased. Deze release kwam een stuk later dan in eerste instantie de bedoeling was, daarnaast bevatte OpenGL 3.0 geen complete API rewrite zoals eerder beloofd was. Wel werd het deprecation model ingevoerd, dat vrijwel alle fixed pipeline functionaliteit deprecated maakte. Ook werden een fiks aantal extensies tot de core toegevoegd waardoor DirectX 10.0 hardware een vereiste werd om OpenGL 3.0 te kunnen draaien. Voor het oude OpenGL 2.1 werden nieuwe extensies toegevoegd om functionaliteit uit OpenGL 3.0 ook op oude hardware te kunnen gebruiken die wel OpenGL 2.1 capable was, maar niet OpenGL 3.0 capable (uiteraard gold dit niet voor functionaliteit die alleen beschikbaar was op DirectX 10.0 hardware).
Nu, negen maanden later is OpenGL 3.1 gereleased. Wat is er nu veranderd (deze lijst is niet compleet)?
- Deprecated functionaliteit is verwijderd en is alleen nog maar beschikbaar via een extensie genaamd `ARB_compatability', hardware fabrikanten mogen zelf weten of deze extensie beschikbaar zal zijn in hun drivers.
- Er is een uniform buffer toegevoegd waarin uniform varialbelen voor shader programma's opgeslagen kunnen worden. Deze buffer kan gebruikt worden door meerdere shader programma's en maakt het een stuk eenvoudiger om variabelen mee te geven aan shader programma's. Ook heb je hierdoor minder cpu calls nodig om een serie uniforms te enablen/disablen.
- Instancing, het eenvoudig tekenen van meerdere dezelfde objecten.
- CopyBuffer, om eenvoudig en snel data van de ene buffer naar de andere buffer te kopieren. Bijvoorbeeld handig voor programma's die data delen met OpenCL.
Ik ben best wel enthousiast over deze ontwikkeling. Ik had niet verwacht nu al een nieuwe versie van OpenGL te zien en ik had zeker niet verwacht dat alle deprecated functionaliteit nu alleen nog via een extensie beschikbaar zou zijn. Persoonlijk begin ik de indruk te krijgen dat de OpenGL 3.x series een tussenstap zijn naar de (eerder beloofde) nieuwe API, die backwards compatability zal breken.
Een aardige blogpost van Paul Martz hierover is vinden op:
http://www.skew-matrix.com/bb/viewtopic.php?f=3&t=4
Persoonlijk kijk ik er wel naar uit om deze schone OpenGL versie te gaan gebruiken, hopelijk binnenkort in combinatie met OpenCL. Wat denken jullie, is Khronos met OpenGL 3.1 weer op het juiste pad geslagen? Maakt OpenGL weer een kans om een moderne api te worden die kan concurreren met DirectX?
The Flying Dutchman