Dieser erneute Schritt in Richtung OpenGL1.5 dürfte aber dann hoffentlich dazu führen das uns ATI und Nvidia demnächst auch mit Treibern beglücken die OpenGL1.5 offiziell unterstützen, damit wir uns dann gnadenlos auf die neuen Extensions stürzen können.
Hab's grad überflogen - soweit keine Überraschungen drinnen, dennoch schön, dass es endlich da ist.
Die durchgängige Verwendung der Terme "low level programs" und "high level programs" lässt vermuten, dass HLSL parallel zu GL_ARB_vertex_program und GL_ARB_fragment_program laufen dürfte - in meinen Augen eine gute Entscheidung.
Insgesamt kommen mir die Änderungen nich bahnbrechend vor: VBOs und Occlusion Queries, sowie vereinheitlichte Depth Textures sind angenehm und es ist sinnvoll diese in die Spezifikation aufzunehmen, allerdings sind dürften die meisten aktuellen GraKas damit schon OpenGL 1.5 konform sein.
Auf jeden Fall ist es angenehm zu wissen, dass die Spezifikation nur wohlüberlegt wächst, sodass es eher unwahrscheinlich ist, ein super Programm zu schreiben - nur um in einem Jahr draufzukomman, dass man in ein Dead End hineinprogrammiert hat (soll bei Direct3D ja durchaus vorkommen - dort wird das Problem ja so gelöst, dass anscheinend jede neue Version praktisch alle älteren Versionen (mit teils ziemlich unterschiedlichen Funktionen) enthält - also kann man auch auf Direct3D 9 noch Direct3D 7 programmieren, muss für die selben Funktionen aber andere Befehle verwenden - da ist OpenGL schon viel eleganter).
Registriert: Do Mär 06, 2003 15:27 Beiträge: 281 Wohnort: Bochum
hallo,
ich hab davon so wenig ahnung, deshalb möchte ich wissen was das genau für eine erleichterung in sachen extensions passieren wenn es die ogl1.5 treiber gibt! also ich meine für die progger wird sich da doch nix verändern, oder ? wenn man extensions benutzt?!
Die ARB Extensions kannst du auch weiterhin nutzen. Im Prinzip kannst du alles mit der OpenGL 1.0 Spezifikation und Extensions programmieren - nur sind Extensions halt grafiktreiberabhängig, während Corefeatures "garantiert" beibehalten werden.
Im Endeffekt macht es aber wenig Unterschied, da ein OpenGL Treiber, der eine bestimmte Corefunktionalität hat (sagen wir ein Treiber mit OpenGL 1.4 Unterstützung) diese auch als Extensions zur Verfügung stellt.
Ich mag Corefunktionen dennoch lieber als Extensions (und wrappe, wenn möglich, in meiner OpenGL Bibliothek ARB-Funktionen auf die Namen der entsprechenden Corefunktionen) - dies ist aber reine Geschmackssache.
Die Funktionsaddressen musst du dir immer noch mit wglProcAddress holen (fest verdrahtet ist nur die OpenGL 1.1 Spezifikation - und dies auch nur in Microsofts OpenGL32.dll, die aber nur eine OpenGL Implementation von vielen ist - halt eine recht weit verbreitete). Es fehlt eigentlich nur das drangehängte ARB (also z.B. glMultiTexCoord2f anstelle von glMultiTexCoord2fARB ).
An sich ist es mehr eine Frage des Prinzips, als dass sich wirklich etwas ändern würde. Man könnte auch sagen, die OpenGL Core Spezifikation ist so etwas wie der kleinste gemeinsame Nenner, auf dem eine Applikation laufen sollte - ein Spiel mit OpenGL 1.2 Unterstützung kann durchaus modernste Techniken beinhalten, aber halt zumindest einen Fallbackmodus zur Verfügung stellen, der mit der OpenGL 1.2 Spezifikation funktioniert - damit wäre garantiert, dass das Spiel von einer breiten (in diesem Fall sehr breiten ) Palette von Grafikkarten funktioniert.
Bei der Core Spezifikation musst du dich auch nicht mehr drum kümmern, ob eine Funktion nun enthalten ist oder nicht - die OpenGL Version garantiert dann das Vorhandensein der für diese Version spezifizierten Funktionalität.
Auf jeden Fall ist es angenehm zu wissen, dass die Spezifikation nur wohlüberlegt wächst, sodass es eher unwahrscheinlich ist, ein super Programm zu schreiben - nur um in einem Jahr draufzukomman, dass man in ein Dead End hineinprogrammiert hat (soll bei Direct3D ja durchaus vorkommen - dort wird das Problem ja so gelöst, dass anscheinend jede neue Version praktisch alle älteren Versionen (mit teils ziemlich unterschiedlichen Funktionen) enthält - also kann man auch auf Direct3D 9 noch Direct3D 7 programmieren, muss für die selben Funktionen aber andere Befehle verwenden - da ist OpenGL schon viel eleganter).
Wenn Du eine Fertige Anwendung hast, die unter D3D 7 erstellt wurde un läuft, und Du auf D3D9 umsteigen willst, dann musst du u.U dein kompletten Source auf D3D9 anpassen, da alle Objekte und devices anders heissen:(. Bei OpenGL muss man nur noch die neu hinzugekommenen Funktionen verwenden und schon hat man sein Programm auf dem 1.5er Standard (als Bps.). Ist wirklich eleganter!
_________________ Und was würdest Du tun, wenn Du wüsstest, dass morgen Dein letzter Tag auf dieser Erde ist?
Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.