DirectX / OpenGL



  • Hi,

    nein, ich will jetzt nicht nach den Unterschieden fragen 😃
    Allerdings würde mich mal etwas interessieren. Ich habe zu OpenGL jetzt schon öfter sowas in der Art gelesen:

    OpenGL ermöglicht Portablität.
    OpenGL ist auf Geschwindigkeit optimiert.
    OpenGL ist leicht und schlank.
    OpenGL ist einsteigerfreundlicher.

    Trotzdem laufen nahezu alle "großen" Spiele (Crysis etc.) mit DirectX. Woran liegt das?



  • http://blog.wolfire.com/2010/01/Why-you-should-use-OpenGL-and-not-DirectX

    http://www.tomshardware.de/DirectX-OpenGL,testberichte-240159.html

    Wurden damals eben schwerwiegende Fehler der Khronos-Group gemacht (Verzögerungen, schlechte Informationspolitik, OpenGL3 bot nicht die versprochenen features, etc.).



  • Es scheint also wahrscheinlich dass auch in Zukunft die meisten Spieleentwickler auf DirectX setzen werden?



  • cooky451 schrieb:

    Es scheint also wahrscheinlich dass auch in Zukunft die meisten Spieleentwickler auf DirectX setzen werden?

    Ich würde eher sagen es scheint wahrscheinlich, dass auch in Zukunft die meisten Spieleentwickler auf DirectX und OpenGL setzen werden. Bei Spielen für die PS3 oder für Handys gibt es halt nur OpenGL und die Märkte sind zu groß um sie zu ignorieren. Viele der großen Titel erscheinen ja auch parallel für PC und Konsolen. Crysis halte ich da eher für eine der Ausnahmen und Crysis 2 wird es ja auch für Konsolen geben.



  • Die PS3 bietet KEINE DirectX Schnittstelle? NUR OpenGL? Also entwickeln die den Grafikteil von Crysis 2 vollständig neu für XBox 360 (DirectX) und PS3?? Kann ich mir irgendwie nur schwer vorstellen..



  • cooky451 schrieb:

    Die PS3 bietet KEINE DirectX Schnittstelle? NUR OpenGL? Also entwickeln die den Grafikteil von Crysis 2 vollständig neu für XBox 360 (DirectX) und PS3?? Kann ich mir irgendwie nur schwer vorstellen..

    "Den gesamten Grafikteil" ist ja nicht soviel, wenn man das schön in einer Engine kapselt. Viele 3D-Engines sind so gestaltet, dass sich DX/OGL austauschen lässt.

    MfG SideWinder



  • OpenGL ermöglicht Portablität.

    Richtig, das ist eigentlich der einzige Vorteil gegenüber D3D.

    OpenGL ist auf Geschwindigkeit optimiert.

    D3D genauso.

    OpenGL ist leicht und schlank.

    D3D genauso.

    OpenGL ist einsteigerfreundlicher.

    Das stimmt nur bedingt. OpenGL erlaubt es einem den veralteten "Immediate Mode" zu verwenden der sehr einfach zu benutzen ist aber ein Programmiermodell darstellt das vielleicht vor 20 Jahren brauchbar war aber nicht für aktuelle Hardware. Wenn man OpenGL "richtig" programmiert schaut der Code von den Abläufen her gleich aus wie in D3D. Und mit den neueren Standards fliegt all das auch aus OpenGl raus. Also ja, die Lernkurve von OpenGL ist flacher weil man sehr schnell irgendwas auf den Bildschirm bekommt. Allerdings kommt man damit nicht weit. Sobald mans ernsthaft machen will muss mans so angehen wie man es in D3D sowieso machen würde weil es die veraltete Alternative dort nicht gibt. Ich seh darin nicht unbedingt einen Vorteil, im Gegenteil, ein großer Teil des Materials zu OpenGL was so rumgeistert lehrt einfach diese alten Techniken (glBegin(), glEnd(), ...) und lässt einem in dem Glauben das wärs jetzt...

    Trotzdem laufen nahezu alle "großen" Spiele (Crysis etc.) mit DirectX. Woran liegt das?

    Weil OpenGL die letzten 8 Jahre verschlafen hat. Erst seit der neuesten Version sind beide APIs technologisch wieder gleich auf.

    Performanceunterschiede zwischen beiden APIs sind Mythen.

    Meine Meinung: Wenn du für Windows entwickelst nimm Direct3D, ich find die API einfach viel besser und der OpenGL Support ist teilweise (noch) nicht so toll (Intel) und gewisse Dinge wie z.B. arbeiten mit mehreren Monitoren und Grafikkarten erfordern unter OpenGL etwas Schwarze Magie. Auf anderen Plattformen hast du sowieso keine Wahl.

    Im Prinzip ist es aber egal, wenn du eine der beiden APIs beherrscht kannst du dir in einem Wimpernschlag auch die Andere beibringen denn an den Konzepten ändert sich nix. Der Unterschied zwischen modernem OpenGL und Direct3D ist dass ein paar Dinge leicht andere Namen haben und wie die API ausschaut, das wars. Wenn du irgendwelche hochspeziellen Features einer bestimmten Grafikkarte nutzen musst die über die normalen APIs nicht zugänglich sind bist du mit OpenGL vermutlich besser dran da der Treiber für solche Features in der Regel OpenGL Extensions anbietet.

    Kleiner Hinweis am Rande: Wenn du von DirectX redest meinst du in diesem Kontext eigentlich Direct3D. DirectX ist eine ganze Familie von APIs für alles mögliche (Grafik, Sound, ...). OpenGL ist dagegen nur eine Grafik API (eigentlich sogar nur ein Blatt Papier auf dem steht wie die Schnittstelle auszusehen hat) und Direct3D wäre das DirectX Pendant zu OpenGL.



  • Nur mal so am Rande:
    Nicht alle "großen" Spiele nutzen nur DirectX. Das ist ein Mythos. Crysis ist zwar ein gehyptes Spiel, in meinen Augen aber auch nur eines von vielen. Die technischen Rafinessen möchte ich dem Spiel dabei aber nicht absprechen.

    Als Beispiel weiss ich von "Cities in Motion", einem hervorragendem WiSim Aufbauspiel (in meinen Augen), dass es OpenGl3 Core verwendet.

    Auch die Source Engine von Valve lässt sich per Kommandozeilenoption -GL im OpenGL Modus betreiben.

    World of Warcraft lässt sich per --OpenGL in den OpenGL Modus schalten.

    Schau einfach mal im Steamstore nach dem Steamplay Symbol. Das sind Spiele die auf Windows und Mac laufen.
    Und das sind nicht unerheblich wenige:
    http://store.steampowered.com/search/?snr=1_7_7_230_7&displayterm=&term=&category1=998&os=steamplay&developer=&genre=&category2=&publisher=&price=&metascore=&advanced=0&sort_by=&sort_order=ASC

    Ich selbst verwende OpenGL. Einfach weil ich das einarbeiten damals leichter fand als in DirectX. Und weil es unabhängig ist, bin ich dabei geblieben 🕶 .


Log in to reply