Een redelijke kick, maar volgens mij wel een interessant onderwerp en dus reageer ik er toch nog even op.
quote:
Stukfruit schreef op zaterdag 17 mei 2008 @ 10:21:
Tuurlijk, je kan kant-en-klare oplossingen als glew gebruiken, maar dat levert verschrikkelijk smerige code op, waarbij je variabelen als "GLEW_MX" moet definieeren om een andere variant van die bibliotheek te bouwen, en daarna met GLEWContext's en een berg macro-shit aan de slag moet om het aan het werk te krijgen.
Dit probleem herken ik persoonlijk niet. Toegegeven ik ben een (in mijn eigen ogen) beginnend OpenGL programmeur (heb de Superbible door gewerkt, daarnaast heb ik een paar redelijk geavanceerde gpgpu programma's geschreven waarvan één OpenGL/GLSL om vortex detection te doen en de ander OpenGL/Cg die fluid simulation deed. Daarnaast ben ik bezig geweest met een eigen 3d bestandsformaat, met exporter vanuit Blender en een OpenGL viewer), maar ik vind Glew fijn werken. Het enige wat je doet is een functie aanroepen om te checken of OpenGL 2.0 ondersteunt wordt en glew initialiseren. Ik doe niets met variabelen definieren of macro's gebruiken en het werkt prima.
Met DirectX heb ik geen enkele ervaring, ik programmeer alleen onder Linux dus dan kom je toch uit bij OpenGL. Wat ik vooral jammer vind is dat OpenGL 3.0 nog steeds niet het levenslicht heeft gezien. Deze nieuwe API zou al een jaar geleden tot standaard verheven zijn, maar is nog steeds niet verschenen en het is angstvallig stil. Misschien dat er over een aantal weken op Siggraph 2008 iets naar buiten komt, laten we het hopen. Voor zover ik weet zou OpenGL 3.0 een schonere en consistentere api op moeten leveren, waardoor het programmeren in OpenGL wat eenvoudiger wordt.
Overigens zijn games lang niet het enige meer waarvoor je een 3d api nodig hebt. Vooral in de wetenschappelijke wereld wordt voornamelijk OpenGL gebruikt (voor bijvoorbeeld visualisatie van grote hoeveelheden data of voor gpgpu).
Ik kan me overigens goed voorstellen dat game ontwikkelaars DirectX gebruiken vanwege de ondersteuning die je erbij krijgt, de (waarschijnlijk iets) betere drivers en omdat 95% van de games nu eenmaal onder Windows draait of op een console. Afgezien van het feit dat OpenGL 3.0 nu al veel te lang op zich laat wachten, denk ik dat de opzet van OpenGL best goed zou kunnen werken. Nieuwe functies in hardware kan direct ondersteunt worden via een extensie en de extensies die door de grote hardware fabrikanten ondersteunt worden en die door de developpers veel gebruikt worden kunnen in een volgende standaard tot de verplichte kost behoren. Dus werkt het juist andersom als bij DirectX: de hardware bepaald de standaard, hoewel je door het systeem van de extensies niet tegengehouden wordt om de nieuwste hardware te gebruiken als de nieuwe functies nog niet in de standaard zitten.
Ik hoop dat OpenGL met versie 3.0 weer eens flink van zich laat horen en dat er weer wat meer beweging komt in 3d api land. Zelf blijf ik voorlopig in ieder geval OpenGL programmeren, met als redenen dat ik onder Linux werk (en dat ik het eventueel naar Windows kan porten als ik dat zou willen), dat ik er al bekend mee ben en omdat ik een beetje een idealist ben

.
Overigens net even op de Siggraph pagina gekeken, dit zal ik met veel belangstelling volgen (hopelijk lukt dat een beetje via internet):
http://www.khronos.org/ne...08_los_angeles_californiaquote:
Khronos BOFS & BOF Socials
Get the inside scoop on OpenGL from the ARB and leading OpenGL companies:
* OpenGL 3.0 Specification Overview
* OpenGL hardware and driver plans - AMD, Intel, NVIDIA
* Developer's perspective on OpenGL 3.0
* The new Khronos Compute Working Group and how that affects OpenGL
* and more...