Von Kenner der Szene am Di, 7. August 2012 um 08:38 #
Was mir leider sehr fehlt an OpenGL ist eine einheitlich logisch aufgebaute Struktur in Form von Structs. Das die State-Maschine von OpenGL mit vielen Funktionen "gemixed" werden kann finde ich an vielen Stellen unpraktikabel.
Gerade dieses Rummischen von Alt und Neu halte ich für Status Quo halten. Abwärtskompatibilität ist sehr wichtig, doch mit einer eindeutigen Abgrenzung könnte man dies auch bewerkstelligen ohne alles doppelt und dreifach zu entwickeln. Siehe COM.
Einen anständigen Port von Direct3D fände ich super, leider denken viele, dass man mit COM nur mit C++ programmieren kann - dabei gibt es auch eine _sehr gute_ C-Schnittstelle.
An Direct State access wird soweit ich weiß gearbeitet. Das OpenGL alt und neu mischt stimmt eigentlich nicht mehr. Man kann sich einen Core Context erzeugen, der keine veralteten Funktionen mehr enthält (siehe neuen glcorearb.h Header). Außerdem wüsste ich nicht was hier COM besser machen soll, außer neuen zusätzliche Overhead zu einer Grafik-API hinzuzufügen. Gerade bei Direct3D wird alles doppelt und dreifach gemacht, da jede Version ihre eigene API hat.
braucht man dafür eine extra neue grafikkarte, um opengl 4.3 betreiben zu können?:( das ist geld aus der tasche ziehen, neues feature = gleich neue grafikkarte nötig. da kann man nichts machen. oder?
ich denke das hängt im Wesentlichen von der aktuell verwendeten Hardware ab. von Nvidia gibt es zum Beispiel für eine Reihe existierender Karten schon Beta Treiber für OpenGL 4.3 http://developer.nvidia.com/opengl-driver
Nein, bei OpenGL ist das eigentlich eher die Regel. Der Grund dafür ist, dass die großen Hersteller für Grafikkarten meist ein OpenGL ausliefern was den Standard und zusätzliche firmeneigene Funktionen enthält. Quasi eine Art Vorgriff auf den nächsten Standard, denn da jeder Hersteller etwas zur Integration vorlegen kann wird das oft in der nächsten Version aufgenommen.
Dazu kommt, dass man die Hardware oft auch stärker auf DirectX auslegt und die Hardware daher manches beherrscht was unter OpenGL zum Release der Hardware noch nicht unterstützt wird.
> Compute-Shader sind in OpenGL quasi die Komplementär-Technolgie zu OpenCL aus DirectX 11 OpenCL ist keine Komponente von DirectX, sondern eine ebenfalls von der Khronos-Group entwickelte Technik um Berechnungen auf Grafikchips auszuführen. Die Compute-Shader von OpenGL machen was ähnliches, sind aber weit weniger mächtig als OpenCL. Dafür ist die Technik allerdings nahtlos in OGL integriert.
OpenGL ist kein "Gegenentwurf" zu Direct3D, weil OpenGL schon viel länger existiert, somit nicht gegen etwas jüngeres entwickelt worden sein kann.
Von Pro-Linux bin ich hauptsächlich wegen der hohen Qualität der Beitrage fasziniert. Drum bitte in Zukunft solche wertenden und flapsigen Formulierungen sein lassen. Wie wärs mit "... die lizenzfreie Alternative zu Direct3D ..."?
Was mir leider sehr fehlt an OpenGL ist eine einheitlich logisch aufgebaute Struktur in Form von Structs. Das die State-Maschine von OpenGL mit vielen Funktionen "gemixed" werden kann finde ich an vielen Stellen unpraktikabel.
Gerade dieses Rummischen von Alt und Neu halte ich für Status Quo halten. Abwärtskompatibilität ist sehr wichtig, doch mit einer eindeutigen Abgrenzung könnte man dies auch bewerkstelligen ohne alles doppelt und dreifach zu entwickeln. Siehe COM.
Einen anständigen Port von Direct3D fände ich super, leider denken viele, dass man mit COM nur mit C++ programmieren kann - dabei gibt es auch eine _sehr gute_ C-Schnittstelle.
An Direct State access wird soweit ich weiß gearbeitet.
Das OpenGL alt und neu mischt stimmt eigentlich nicht mehr. Man kann sich einen Core Context erzeugen, der keine veralteten Funktionen mehr enthält (siehe neuen glcorearb.h Header). Außerdem wüsste ich nicht was hier COM besser machen soll, außer neuen zusätzliche Overhead zu einer Grafik-API hinzuzufügen. Gerade bei Direct3D wird alles doppelt und dreifach gemacht, da jede Version ihre eigene API hat.
braucht man dafür eine extra neue grafikkarte, um opengl 4.3 betreiben zu können?:( das ist geld aus der tasche ziehen, neues feature = gleich neue grafikkarte nötig. da kann man nichts machen. oder?
Neue Features brauchen auch entsprechende Unterstützung in der Hardware. Das hat nichts mit Geldmacherei zu tun.
ich denke das hängt im Wesentlichen von der aktuell verwendeten Hardware ab.
von Nvidia gibt es zum Beispiel für eine Reihe existierender Karten schon Beta Treiber für OpenGL 4.3
http://developer.nvidia.com/opengl-driver
Ja, OpenGL 4.3 wird wahrscheinlich mit dem Großteil der aktuellen Hardware funktionieren. Aber das ist eher eine Ausnahme.
Nein, bei OpenGL ist das eigentlich eher die Regel. Der Grund dafür ist, dass die großen Hersteller für Grafikkarten meist ein OpenGL ausliefern was den Standard und zusätzliche firmeneigene Funktionen enthält. Quasi eine Art Vorgriff auf den nächsten Standard, denn da jeder Hersteller etwas zur Integration vorlegen kann wird das oft in der nächsten Version aufgenommen.
Dazu kommt, dass man die Hardware oft auch stärker auf DirectX auslegt und die Hardware daher manches beherrscht was unter OpenGL zum Release der Hardware noch nicht unterstützt wird.
> Compute-Shader sind in OpenGL quasi die Komplementär-Technolgie zu OpenCL aus DirectX 11
OpenCL ist keine Komponente von DirectX, sondern eine ebenfalls von der Khronos-Group entwickelte Technik um Berechnungen auf Grafikchips auszuführen. Die Compute-Shader von OpenGL machen was ähnliches, sind aber weit weniger mächtig als OpenCL. Dafür ist die Technik allerdings nahtlos in OGL integriert.
Das ist nicht missverständlich, sondern glatt falsch.
OpenGL ist kein "Gegenentwurf" zu Direct3D, weil OpenGL schon viel länger existiert, somit nicht gegen etwas jüngeres entwickelt worden sein kann.
Von Pro-Linux bin ich hauptsächlich wegen der hohen Qualität der Beitrage fasziniert. Drum bitte in Zukunft solche wertenden und flapsigen Formulierungen sein lassen. Wie wärs mit "... die lizenzfreie Alternative zu Direct3D ..."?
Danke
Hansi