PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : OGL vs. DX


z3ck3
2004-07-08, 17:52:22
Muss mal vorweg sgaen, das ich net so bewandert bin auf diesem Sektor, aber genau darum stell ich ja die Fragen ;)

Wieso entwickeln so wenig Spieleentwickler für OGL?

Vorteil währe, das es auch zu anderen BSe kompatible währe, und nur einen 2. Compilerdurchgang benötigen würde.

Nachteil ist bestimmt der, das es nicht alle Effekte unter OGL gibt.

Wieso wird OGL nicht so "krass aufgerüstet" wie DX?

OGL sieht meines erachtens viel besser aus als DX, Oder liegt das daran, das die DX Teile eher schnellschüsse sind im gegensatz zu OGL die evt. genauer und besser entwickelt werden?

Welche Games sind, und vor allem werden, auf OGL-Basis erscheinen oder schon erschienen (letzten 12 Monate, und die nächsten 12)?

Ich kenne z.Z. eigentlich nur die ID Q3 Engine und deren Spiele. Die ist jedoch schon sehr alt.

eXistence
2004-07-08, 18:00:27
Naja, Doom3 dürfte der nächste große Wurf in Sachen OpgenGL-enines werden, SeriousSam verwendet ebenfalls OpenGl, ob SeriousSam2 (wurde afaik dieses Jahr auf der E3 vorgestellt...) auch wieder OpenGl verwendet weiß ich nicht...

Ganon
2004-07-08, 18:27:45
Hi.

Alleine OpenGL macht ein Spiel nicht Plattformunabhängig. Da gibt´s auch noch Sound, Eingabe, Fensterdarstellung und Netzwerk.

Nur mal so. ;)

Coda
2004-07-08, 18:30:00
Nachteil ist bestimmt der, das es nicht alle Effekte unter OGL gibt.
Absolut falsch. Es ist eher das Gegenteil der Fall, weil bestimmte Fähigkeiten (von nVidia Karten z.B.) nur in OpenGL durch Extensions zur Verfügung stehen.

Das Problem ist wohl eher, das man bei DX viel bessere Support bekommt (seitens MS)

Welche Games sind, und vor allem werden, auf OGL-Basis erscheinen oder schon erschienen (letzten 12 Monate, und die nächsten 12)?
Far Cry/UT 2003/UT 2004 haben nen OpenGL Renderer

PhoenixFG
2004-07-08, 18:44:23
Ein Spiel sieht doch durch die verwendete API nicht besser oder schlechter aus.

MfG

z3ck3
2004-07-08, 18:52:35
Naja, hatte aber immer das Gefühl, das OGL besser aus sah als DX. Besonders früher. Texturflimmern und son müll... Naja, kann wie gesagt auch daran liegend as die Programmierer bei DX oft schlecht abrieten, weil DX die API für Schnellmaldurchden6PlatformenCompiler Games ist.


OGL ist aber wenigstens der Anfang es für mehrere Platformen spielbar zu machen. Sound usw. gibts ja ähnliches.


Dann währe das Game ja ohne viel rumgebastel und totaler inkompatiblität auf MAC, BSD, LINUX, WINDOOF usw. anpassbar.


DX ist nun mal z.Z. NUR Win + XBox. Wenns mehr games für andere Platformen geben würde, würden die andere BSe auch weiter verbreitet sein.


Das OGL mehr bietet als DX ist mir neu, das find ich ja noch toller :) Denk aber mal hier gibts aber dann auch ein paar differnecen zwischen den GrakaChipHerstellern wie ATI/PWR/NVIDIA/SIS. NV war aber meiner meinung nach immer der bessere OGL Chip.

eXistence
2004-07-08, 19:06:14
OpenGl ist durch die hersteller-extension zwar recht flexibel was den Leistungsumfang angeht, aber genau das stellt auch ein Problem dar.
Wenn man neuste Technologie nutzen will, wird die Programmierung dadurch erheblich verkompliziert, da idealerweise jede GraKa ihren eigenen renderpfad haben will.
Bei DirectX ist es etwas einfacher, wenn die GraKa z.B. die DX9-Spezifikationen erfüllt, dann kann das Spiel auch DX9 komplett nutzen und als Entwickler kann man sich relativ sicher sein, dass dies auf der Hardware (egal ob nV, ATI, Matrox oder was-weiß-ich) dann auch läuft.

edit: alles afaik, sollte ich Stuß reden, möge man mich bitte korrigieren, man lernt ja nie aus :)

Coda
2004-07-08, 20:16:18
Original geschrieben von z3ck3
Naja, hatte aber immer das Gefühl, das OGL besser aus sah als DX. Besonders früher. Texturflimmern und son müll... Naja, kann wie gesagt auch daran liegend as die Programmierer bei DX oft schlecht abrieten, weil DX die API für Schnellmaldurchden6PlatformenCompiler Games ist.


OGL ist aber wenigstens der Anfang es für mehrere Platformen spielbar zu machen. Sound usw. gibts ja ähnliches.


Dann währe das Game ja ohne viel rumgebastel und totaler inkompatiblität auf MAC, BSD, LINUX, WINDOOF usw. anpassbar.


DX ist nun mal z.Z. NUR Win + XBox. Wenns mehr games für andere Platformen geben würde, würden die andere BSe auch weiter verbreitet sein.


Das OGL mehr bietet als DX ist mir neu, das find ich ja noch toller :) Denk aber mal hier gibts aber dann auch ein paar differnecen zwischen den GrakaChipHerstellern wie ATI/PWR/NVIDIA/SIS. NV war aber meiner meinung nach immer der bessere OGL Chip. #
Texturflimmern ist Treibersache, das hat mit GL nix zu tun.

nVidia hat nur bessere GL Treiber, ATi hat IMHO nen Wrapper um den D3D Treiber, was die Sache langsamer macht.

marco42
2004-07-08, 21:02:21
Original geschrieben von eXistence
OpenGl ist durch die hersteller-extension zwar recht flexibel was den Leistungsumfang angeht, aber genau das stellt auch ein Problem dar.
Wenn man neuste Technologie nutzen will, wird die Programmierung dadurch erheblich verkompliziert, da idealerweise jede GraKa ihren eigenen renderpfad haben will.
Bei DirectX ist es etwas einfacher, wenn die GraKa z.B. die DX9-Spezifikationen erfüllt, dann kann das Spiel auch DX9 komplett nutzen und als Entwickler kann man sich relativ sicher sein, dass dies auf der Hardware (egal ob nV, ATI, Matrox oder was-weiß-ich) dann auch läuft.


Wenn du unterschiedliche Hardwarefaehigkeiten hast, schreibst du entweder fuer den kleinsten gemeinsamen Nenner oder schreibst fuer jede Hardware speziel. Du kannst natuerlich auch jemanden anderen diese hoehere Schnittstelle schreiben lassen, aber etwas magisches gibt es nun mal nicht.

Corrail
2004-07-09, 00:16:49
Es gibt IMHO 2 Hauptgründe, warum für DX mehr Spiele entwickelt werden:

Erstens ist DX einheitlicher. Um das Paradebeispiel herzunehmen: Es gibt unter OpenGL kein IHV-unabhängige Schnittstellt für DX8-Shader. Für NV gibt es NV_register_combiner und NV_textuer_shader, womit man weitaus mehr aus der Grafikkarte rausholen kann als mit DX8 Shader. Und für ATI gibt es ATI_fragment_shader. Es gibt aber keine Extension, die von beiden unterstützt wird. Somit müssen mehrere Render-Pfade geschrieben werden, wenn man bestimmte Sachen verwenden will. Unter DX ist das anders, da gibt es keine Extensions in dem Sinn. Es gibt zwar Caps die aber nur in beschränkten Rahmen DX erweitern. Zwar wird mittler Weile bei vielen Engines auch für DX mehrere Render-Pfade geschrieben, aber bei OpenGL ist das noch immer Pflicht, bei DX eher optional. Auch sind die verschiedenen Render-Pfade bei DX weniger aufwendig zu programmieren als bei OpenGL.
Das ganze wird sich jetzt (hoffentlich) zu einem Großteil mit OpenGL 2.0 ändern. Durch GLSL (vorallem GLSL 1.1) und anderen wichtigen IHV-unabhängigen Extensions (ARB Extensions) wird OpenGL IMHO sicher wieder attraktiver!

Zweitens gibt es für OpenGL bei weitem nicht so viel Support und Tools wie für DX. Hinter DX steht nunmal Microsoft und die haben dazu eine 200MB starke SDK gebastelt. OpenGL wird durch das ARB von mehreren Firmen "geleitet". NV, ATI, 3DLabs und einige andere Firmen bieten einige Beispiele und "Mini-SDKs" (wenn ich die jetzt mal so nenne darf), aber einen so wirklich einheitlichen Support gibt es nicht.


Wieso wird OGL nicht so "krass aufgerüstet" wie DX?


Wie oben schon erwähnt wird OpenGL durch das ARB geleitet, wo mehrere Firmen beteiligt sind. Das ARB trifft sich 4 mal pro Jahr, um Entscheidungen zu tätigen und über OpenGL zu diskutieren. Ein großes "Problem" bei OpenGL ist, dass die Firmen an sich die Entscheidungsgewalt haben, was zwar ein Vorteil ist, aber auch ein Nachteil. Wenn es um darum geht eine neue Extension in den OpenGL-Core zu integrieren oder neue Entscheidungen zu fällen wollen natürlich viele Firmen für sich den größten Vorteil, was sich aber nicht immer mit den Meinungen der anderen Firmen deckt.
Derzeit bewegt sich aber sehr viel bei OpenGL. Im August soll OpenGL 2.0 herauskommen, was vom Prinzip her zwar nichts anderes ist als OpenGL 1.5 mit einigen Extensions, aber meiner Meinung nach ist OpenGL vom Feature-Umfang dann mindestens so gut wie DX (ich meine hier die reine Core-GL, nicht vender-specific Extensions).


Alleine OpenGL macht ein Spiel nicht Plattformunabhängig. Da gibt´s auch noch Sound, Eingabe, Fensterdarstellung und Netzwerk.


Es gibt da aber noch OpenAL, SDL, SDL_net, ... ;)
Es gibt mittler Weile viele Möglichkeiten ein Spiel Platform unabhängig zu machen. z.B UT2003/2004 unterstützt OpenGL, OpenAL und SDL. Ist somit platform unabhängig.

Die ewige Frage "DX oder OGL" ist IMHO sowieso hauptsächlich eine Geschmackssache. Es sind 2 API, die ungefähr das gleiche leisten. OpenGL hat die Vorteile der platform-unabhängigkeit und das man durch die Extensions (hauptsächlich vendor-specific) mehr Leistung aus der Grafikkarte rausholen kann. DX dagegen ist einheitlich und meistens weniger Programmieraufwand. Es gibt keine wirklich bessere API, beide haben ihre Vor- und Nachteile.

Brillus
2004-07-09, 16:37:04
Sorry für Offtopic aber kurze zwischenfrage. Was ist SDL?

del_4901
2004-07-09, 16:39:28
Original geschrieben von eXistence
Naja, Doom3 dürfte der nächste große Wurf in Sachen OpgenGL-enines werden, SeriousSam verwendet ebenfalls OpenGl, ob SeriousSam2 (wurde afaik dieses Jahr auf der E3 vorgestellt...) auch wieder OpenGl verwendet weiß ich nicht...
du meinst Serious Sam3 ??? weil 2 hab ich hier schon rumzuliegen.

Corrail
2004-07-09, 16:39:37
Original geschrieben von Brillus
Sorry für Offtopic aber kurze zwischenfrage. Was ist SDL?

SDL (Simple DirectMedia Layer) ist eine platform unabhängige Multimedia-Schnittstelle, mit der du Windows verwalten kannst, Maus, Tastatur und Joystick ansprechen kannst, ...
Siehe
http://www.libsdl.de/
http://www.libsdl.org/

eXistence
2004-07-09, 17:28:48
Original geschrieben von AlphaTier
du meinst Serious Sam3 ??? weil 2 hab ich hier schon rumzuliegen.

nein, SS2 ist schon richtig :)

Serious Sam 2 != Serious Sam: the second encounter

del_4901
2004-07-12, 22:28:28
Original geschrieben von eXistence
nein, SS2 ist schon richtig :)

Serious Sam 2 != Serious Sam: the second encounter

ich bin halt C&C3 Tiberian Sun geschädigt. ;)