Warum DirectX?



  • man kann sich auch fragen warum damals jeder Windows 95 gekauft hat, statt Apple os 7 wenn dieser stabil und virenfrei war? microsoft ist schon ein cooler name ne? Id Software und ut entwickler sind nun mal keine Idioten. Schließlich haben sie auch 3D-Shooter erfunden.

    Wegen Tasten und Mauseingabe kombiniert man OpenGL einfach mit SDL und noch andere Module. Dann ist es wie DirectX. So bleibt nur noch ein Vorteil für OGL übrig: Plattformunabhängig. DirectX steckt da also fest. Also rein von der Logik ist OpenGL vorzuziehen.

    Wegen Zielgruppe:
    OpenGL 100%
    DirectX 90%

    sind OpenGl-fähige spiele 10% reicher. das war vermutlich der grund warum id software so entschieden haben.

    ist das jetzt flamewar? 😃



  • man sollte aber auch als grund, warum directx genommen wird, beachten, dass directx wesentlich öfter aktualisiert wird als openGL, auch das ist ein wichtiger grund.
    viele spielentwickler wissen, dass die grafik schon eine sehr wichtige rolle spielt, und wenn die grafik schlecht und veraltet ist kaufen das die aktuellen gamer nicht (zumindest die meisten, die denken grafik ist alles!).
    und weil openGL da oftmnals hinterherhängt entscheidet sich die spielebranche natürlich für das aktuellere!



  • Direct3D wird wohl von vielen Spielen verwendet weil...
    😉 Direct3D ist verdammt gut dokumentiert
    😉 Für Direct3D werden mit dem SDK ein Haufen zumindest brauchbarer Samples mitgeliefert
    😉 Direct3D kommt ohne Erweiterungen aus, OpenGL dagegen kann man nur wirklich verwenden wenn man diverse Erweiterungen verwendet die sich dann mehr oder weniger schlecht ins Konzept einfügen
    😉 Direct3D ist schön Objektorientiert, wohingegen OpenGL viel in (globalen) States speichert, was ziemlich hässlich wird wenn man ein Objektorientiertes Framwork herumstricken will (oder gar OpenGL aus mehreren Threads heraus verwenden will)

    OpenGL halte ich für eine feine Sache, weil es OS unabhängig ist. Wenn der Punkt allerdings für ein Projekt kein Thema ist, dann würde ich jederzeit zu Direct3D greifen, weil die API einfach sauberer ist.

    Das ist auch nicht weiter verwunderlich, schliesslich wurde die API mehrfach überholt - Direct3D 9 hat mit den ersten Direct3D Versionen sogut wie nichtsmehr zu tun. Das einzige was Microsoft noch bereitstellt sind Wrapper die es ermöglichen Programme die alte Direct3D Schnittstellen verwenden noch mit aktuellen Treibern zu verwenden.

    OpenGL ist da bis jetzt einen anderen Weg gegangen, nämlich den die API über Extensions zu erweitern, und alle alten Funktionen beizubehalten. Was leider auch dazu führt dass die API ziemlich unübersichtlich und unsauber geworden ist. Und ein weiterer Punkt der sich daraus ergibt und OpenGL IMO viel mehr schadet als nützt: alte Tutorials sind immer noch verwendbar, und werden auch immer noch verwendet. Dass die darin verwendeten Techniken aber schon lange nichtmehr optimal sind (z.B. Dinge wie Display-Lists, oder Vertices direkt über glVertex3f() anzugeben) führt dazu dass auch Leute die Heute erst anfangen sich mit OpenGL auseinanderzusetzen immer noch Dinge lernen die eigentlich schon lange veraltet sind, und schon fast als "falsch" bezeichnet werden können. Das führt dann im Weiteren zu ordentlich frustration und zu suboptimalem Code.


  • Mod

    Ankou schrieb:

    Wenn OpenGL plattformunabhängig ist und, wie meistens gesagt wird, auch besser...

    Nicht so sehr auf Fanboys hoeren.

    Warum verwenden die meisten kommerziellen Spiele dann DirectX?

    Ich glaube deine Quellen sind fehlerhaft, die meisten spiele kommen auf Konsolen raus und verwenden vermutlich opengl oder was ganz anderes.

    Direct3D wird verwendet, weil es die einzige einheitliche Schnittstelle fuer 3d karten ist.

    DirectX wird verwendet, wie bei vielen dingen von MS, weil es (gerade beim Einstiegt) viele Hilfen bietet, sodass auch anfaenger damit klarkommen. Vom Mesh, Texturen usw. laden bis zu einem Material management mittels effects.
    Wenn man dann mit sowas erstmal arbeitet, will man sich nicht umstellen.



  • rapso schrieb:

    Ich glaube deine Quellen sind fehlerhaft, die meisten spiele kommen auf Konsolen raus und verwenden vermutlich opengl oder was ganz anderes.

    du negierst eine aussage die du selbst nicht sicher beantworten kannst. warum postest du dann sowas?

    hinzu kommt, dass ich mit deiner aussage sehr vorsichtig wäre, die aktuellen konsolen benutzen directx, allein schon aus aktulaitätsgründen!



  • TrommlBomml schrieb:

    hinzu kommt, dass ich mit deiner aussage sehr vorsichtig wäre, die aktuellen konsolen benutzen directx, allein schon aus aktulaitätsgründen!

    Wenn du mit "die aktuellen Konsolen" die xBox meinst, hast du Recht. Bei Playstation 3 und Wii siehts schonmal anders aus.



  • Das eigentlich einzige Argument fuer Direct3D sind die OpenGL-Treiber von ATI.



  • Danke! Wie man so schön sagt: You made my day 😃


  • Mod

    TrommlBomml schrieb:

    rapso schrieb:

    Ich glaube deine Quellen sind fehlerhaft, die meisten spiele kommen auf Konsolen raus und verwenden vermutlich opengl oder was ganz anderes.

    du negierst eine aussage die du selbst nicht sicher beantworten kannst. warum postest du dann sowas?

    ich kann meine aussage sicher beantworten, ich weiss lediglich nicht, ob ich ihn vielleicht falsch verstanden habe. deswegen versuch ich das freundlicher zu formulieren. stell dir vor ich haette ihm gesagt

    es ist doch leicht belegtbar, dass zahlen was anderes aussagen. warum postest du dann sowas?

    und dann waere es ein missverstaendniss und ich wuerde wie ein idiot darstehen.

    hinzu kommt, dass ich mit deiner aussage sehr vorsichtig wäre, die aktuellen konsolen benutzen directx, allein schon aus aktulaitätsgründen!

    jetzt koennte ich dich auch fragen, weshalb du sowas postest wenn du scheinbar kaum ahnung hast. nur die xbox(360) als einzige verwendet direct3d. alle anderen wie z.b. ps2,psp, gc, wii, nds, ps3 verwenden kein direct3d bzw directx.



  • ah DirectX auf aktuellsten Stand.

    wird den bald OpenGL überarbeitet? Tut sich denn da überhaupt was?



  • OGL3 soll so gut wie fertig sein 😉



  • darthdespotism schrieb:

    OGL3 soll so gut wie fertig sein 😉

    OGL3 ist wie ich das mitbekommen habe schon recht lange "fast fertig"...
    Ich glaub das denen erst wenn's raus ist.

    Davon abgesehen...

    ah DirectX auf aktuellsten Stand.
    wird den bald OpenGL überarbeitet? Tut sich denn da überhaupt was?

    OGL3 soll endlich mit der greislichen alten API brechen. Allerdings wurde das damals auch schon von OGL 2.0 behauptet, ist also abzuwarten was da wirklich draus wird... falls OGL 3.0 wirklich in endlicher Zeit fertig wird 😉



  • rapso schrieb:

    ich kann meine aussage sicher beantworten, ich weiss lediglich nicht, ob ich ihn vielleicht falsch verstanden habe. deswegen versuch ich das freundlicher zu formulieren. stell dir vor ich haette ihm gesagt

    jo okay, dass seh ich ein^^ da hab ich nen bissle zu vorelig gehandelt sry!

    rapso schrieb:

    jetzt koennte ich dich auch fragen, weshalb du sowas postest wenn du scheinbar kaum ahnung hast. nur die xbox(360) als einzige verwendet direct3d. alle anderen wie z.b. ps2,psp, gc, wii, nds, ps3 verwenden kein direct3d bzw directx.

    hab mal nen bissle recherchi9ert und muss sagen das ich wirklich unrecht habe, folgendes hab ich sofort gefunden:

    OPENGL plattformunabhängig (läuft auf Win, Linux, Mac, PS 3, PSP, WII, GameCube)

    wobei auch solche quellen mir sagen, dass openGL unterstützt wird, hab nix gefunden, dass nicht directx unterstützt wird. nun muss ich auch sagen meine hardwarekenntnisse sind nicht so weitreichend, dass ich sagen könnte, die grafikbeschleuniger unterstützen beides oder werden auf eines der beiden optimiert (bei den kleineren vertreter kann ich mir das gut vorstellen), da will ich mal keine festlegung machen.


  • Mod

    TrommlBomml schrieb:

    OPENGL plattformunabhängig (läuft auf Win, Linux, Mac, PS 3, PSP, WII, GameCube)

    wobei auch solche quellen mir sagen, dass openGL unterstützt wird, hab nix gefunden, dass nicht directx unterstützt wird. nun muss ich auch sagen meine hardwarekenntnisse sind nicht so weitreichend, dass ich sagen könnte, die grafikbeschleuniger unterstützen beides oder werden auf eines der beiden optimiert (bei den kleineren vertreter kann ich mir das gut vorstellen), da will ich mal keine festlegung machen.

    Ja, graphikbeschleuniger werden fuer direct3D konzipiert, umgekehrt wird Direct3D fuer die beschleuniger ausgelegt. allerdings werden die 3d beschleuniger ueber ca 4Jahre von erster idee zum finalen chip gemacht. nicht alles was so ein chip dann kann wird in die API kommen und auch einiges was ein chip eigentlich nicht kann wird in eine API aufgenommen und dann muss der chip das emulieren bzw der treiber.

    Bei konsolen kann ich dir jedoch aus eigener erfahrung sagen, dass "nicht directx unterstuetzt wird" (ausser auf xbox). opengl wird auf manchen konsolen unterstuetzt, bzw eine abart davon, meist sogar eher ne abart von openglES. am besten laufen konsolen aber mit dem lowlevel api. davon hat trotz direct3d auch die xbox was zu bieten.


Anmelden zum Antworten