PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : DirectX vs. OpenGL


Gast
2004-04-27, 03:28:26
Hiho,

ich weiß jetzt nicht ganz genau, wo das hingehört, also schreib's ich lieber ins Off-Topic Forum, bevor ich Ärger bekomme! :D

Nun meine Frage:

Warum wird bei so wenigen Games OpenGL benutzt, obwohl es auf den meisten Systemen schneller läuft bzw. dass es zum Teil schöner aussieht als DirectX?

Danke im Voraus!

Gast
2004-04-27, 10:26:01
Original geschrieben von Gast
Hiho,

ich weiß jetzt nicht ganz genau, wo das hingehört, also schreib's ich lieber ins Off-Topic Forum, bevor ich Ärger bekomme! :D

Nun meine Frage:

Warum wird bei so wenigen Games OpenGL benutzt, obwohl es auf den meisten Systemen schneller läuft bzw. dass es zum Teil schöner aussieht als DirectX?

Danke im Voraus! schöner/schneller hat weniger mit der schnittstelle zu tun als mit dem rest (vorallem der engine, den verwendeten texturen usw)...

opengl ist halt multiplattform und erlaubt extensions (erweiterungen, meist hardwarespezifisch/herstellerspezifisch), diese wiederum sind leider nötig weil "standard" ogl kaum vorgaben für moderne filtermethoden u.ä. bietet, sprich für den entwickler normalerweise mehr aufwand...

dx nur auf windows, keine extensions dafür ist nahezu alles schon implementiert wodurch extensions ein stück weit auch unnütz werden/nicht gebraucht werden -> weniger aufwand für die entwickler

Corrail
2004-04-28, 16:32:53
Original geschrieben von Gast Warum wird bei so wenigen Games OpenGL benutzt, obwohl es auf den meisten Systemen schneller läuft bzw. dass es zum Teil schöner aussieht als DirectX?

Das liegt hauptsächlich daran, dass es für den Entwickler meistens einfacher ist mit DirectX zu programmieren. Bei DX gibt es alles: hundert-tausend Bibliotheken für alles mögliche, unzählige Tutorials und Bücher und Support von M$. Das spart Zeit und dadurch natürlich Kosten. Ein weiterer Punkt ist, dass DX nur auf Windows läuft (womit man eh etwa 99,99% der Spielegemeinde abgedeckt hat) und dadurch nur für Windows programmiert/kompiliert/getestet werden muss => wieder weniger Kosten.

Noch dazu gibt es das "Problem" mit den Extensions. Extensions sind echt coole Sachen, sie erweitern OpenGL auf eine relativ einfache Weise und man kann durch sie die Hardware noch besser ausnutzen. Aber leider sind dadurch mehrere Code-Pfade nötig. Ich kenne mich mit DX nicht so aus, aber Demirug hat mal erwähnt, dass es aufwendiger ist OpenGL Code-Pfade zu schreiben als in DX.

DirectX ist dadurch die wirtschaftlich bessere Wahl für Spiele-Entwickler.

Ich hoffe aber, dass sich das jetzt durch OpenGL 2.0 (geplanter Release-Termin: SIGGRAPH 04, August) ändern wird!

Matti
2004-04-29, 11:10:14
Original geschrieben von Corrail
Das liegt hauptsächlich daran, dass es für den Entwickler meistens einfacher ist mit DirectX zu programmieren. Bei DX gibt es alles: hundert-tausend Bibliotheken für alles mögliche, unzählige Tutorials und Bücher und Support von M$.

ich finde OpenGL einfacher. Und bis auf den MS-Support gibt's das auch alles für OpenGL :)

Demirug
2004-04-29, 13:29:38
Es ist nicht aufwendiger jetzt einen OpenGL oder DX Codepfad zu schreiben. Das Problem ist lediglich das man aufgrund der Extensionvielfallt bei OpenGL einfach mehr Pfade braucht um die gleiche Menge an Karten abzudecken.

Vom Code her braucht man bei DX zwei Pfade. Einen für Fixed Funktion und einen für Shader. Im Prinzip kann man diese sogar zusammenwerfen. Für ganz Faule gibt es einen fertigen Effektframework mit dem man nur einen Bruchteil von einem Pfad programmieren muss.

Bei OpenGL muss man eben leider noch viel Herstellerspezifische Extensions nutzen.

Corrail
2004-04-29, 14:54:06
Original geschrieben von Matti
ich finde OpenGL einfacher. Und bis auf den MS-Support gibt's das auch alles für OpenGL :)

Ich finde OpenGL auch einfacher es ist aber wie Demrug gesagt hat meistens mehr Arbeit und dadurch weniger wirtschalftlich. Ich hoffe nur, dass sich (wie schon oft genug erwähnt ;D) durch OpenGL 2.0 da etwas tut.

Demirug
2004-04-29, 15:19:55
Original geschrieben von Corrail
Ich finde OpenGL auch einfacher es ist aber wie Demrug gesagt hat meistens mehr Arbeit und dadurch weniger wirtschalftlich. Ich hoffe nur, dass sich (wie schon oft genug erwähnt ;D) durch OpenGL 2.0 da etwas tut.

Was aber kurzfristig gesehen nichts nutzen würde. Der Einstiegslevel für glslang ist immer noch R300/NV30 oder besser.

Corrail
2004-04-29, 15:24:33
Das stimmt schon, aber wenn man sich jetzt mal die Spiele so anschaut, die in der Entwicklung sind so setzen schon alle Spiel auf DX9. Da OpenGL 2.0 erst im 3ten Quartal 04 rauskommt und selbst wenn man für ein Spiel 1 Jahr Entwicklungszeit nimmt, so sind wir mehr als 2 Jahre nach der Einführen von DX9 Hardware. Da hat es nicht mehr viel Sinn auf DX8 zu setzen...

Demirug
2004-04-29, 15:37:16
Original geschrieben von Corrail
Das stimmt schon, aber wenn man sich jetzt mal die Spiele so anschaut, die in der Entwicklung sind so setzen schon alle Spiel auf DX9. Da OpenGL 2.0 erst im 3ten Quartal 04 rauskommt und selbst wenn man für ein Spiel 1 Jahr Entwicklungszeit nimmt, so sind wir mehr als 2 Jahre nach der Einführen von DX9 Hardware. Da hat es nicht mehr viel Sinn auf DX8 zu setzen...

Es spielt keine Rolle wann DX9 Hardware eingeführt wurde. Der entscheidenen Zeitpunkt ist das Auslaufen einer Hardware Generation. Wenn sich da DX8 Hardware ähnlich beharlich wie DX7 Hardware zeigt wird man die Unterstützung dafür nicht so schnell einstellen können.

Corrail
2004-04-29, 15:45:37
Original geschrieben von Demirug
Es spielt keine Rolle wann DX9 Hardware eingeführt wurde. Der entscheidenen Zeitpunkt ist das Auslaufen einer Hardware Generation. Wenn sich da DX8 Hardware ähnlich beharlich wie DX7 Hardware zeigt wird man die Unterstützung dafür nicht so schnell einstellen können.

Ja, das stimmt schon, aber nachdem sich DX9 so schnell so weit verbreitet hat glaub ich nicht, dass in einem Jahr DX8 noch so wichtig ist, dass man es in ein Spiel integrieren würde.