1. Foren
  2. Kommentare
  3. Software-Entwicklung-Forum
  4. Alle Kommentare zum Artikel
  5. › OpenGL 3.3 und 4…

OpenGL vs. DirectX

  1. Thema
  1. 1
  2. 2

Neues Thema


  1. OpenGL vs. DirectX

    Autor: asdfasdfasdff 11.03.10 - 19:33

    Ich erklär mal in Ruhe warum der Vergleich hinkt damits auch die Trollwieser-verschieber begreifen:

    OpenGL ist eine 3D API, vergleichbar mit Direct3D.
    DirectX ist eine Sammlung verschiedener APIs die man zB für Spiele gebrauchen kann: 3D (Direct3D), Sound, Midi, Input (auch Joysticks und so), Netzwerk, Audio/Video Playback und streaming, etc...

    Darum ist DirectX beliebt: es bietet für alle Bereiche der Spieleentwicklung was aus einer Hand. Direct3D ist nur ein kleiner Teil davon, daher kann die Alternative OpenGL allein auch nicht DirectX mal eben verdrängen.

    Und daher ist der ewige Vergleich DirectX <-> OpenGL BULLSHIT

  2. Re: OpenGL vs. DirectX

    Autor: guteFrage 11.03.10 - 19:40

    War das jetzt so schwer die eigene Arroganz zu überwinden und das zu schreiben? ;)

  3. Re: OpenGL vs. DirectX

    Autor: FooBarBaz 11.03.10 - 19:46

    Nur stell dir mal vor man hätte dort DirectX durch Direct3D ersetzt, wie viele DAUs hätten dann gesagt: Ich kenn dieses Direct3D nicht, aber DirectX is eh besser.
    Und außerdem: Die anderen APIs sind - ich spreche aus eigener Erfahrung - bullshit.

  4. Re: OpenGL vs. DirectX

    Autor: asdfasdfasdff 11.03.10 - 19:47

    Es ist nur müßig ständig jedem das Grundlagenwissen hinterher zutragen, das sie auch in der Wikipedia nachschlagen können.

    Zudem: Dass selbst Golem das anscheinend nicht weiß, dass ist echt ernüchternd ...

  5. Re: OpenGL vs. DirectX

    Autor: asdfasdfasdff 11.03.10 - 19:48

    FooBarBaz schrieb:
    --------------------------------------------------------------------------------
    > Nur stell dir mal vor man hätte dort DirectX durch Direct3D ersetzt, wie
    > viele DAUs hätten dann gesagt: ...

    Ja, das wären "IT-News für Profis" und nicht "IT-News für DAUs", wo kämen wir da hin? ;-)

  6. Re: OpenGL vs. DirectX

    Autor: /mecki78 11.03.10 - 19:54

    asdfasdfasdff schrieb:
    --------------------------------------------------------------------------------
    > OpenGL ist eine 3D API, vergleichbar mit Direct3D.
    > DirectX ist eine Sammlung verschiedener APIs

    Nur sind die eigentlich alle bis auf Direct3D total uninteressant. Alles andere kannst du auf jeder Plattform auch mit ganz einfachen APIs machen, die du nur ein bisschen einpacken musst, damit sie aus der Sicht deines Spiels immer gleich aussehen.

    Der Netzwerkteil ist sowieso unbrauchbar von DirectX, professionelle Spiele haben alle eigenen Netzwerkcode hier, Midi ist tot für Spiele (warum auch, ein MP3 abspielen kostet dich 2-3 Frames pro Sekunde Rechenzeit), Input Handler hat ein einziger Programmierer in ein paar Tagen programmiert für 5 verschiedene Plattformen und den Code recyclest du dann für hunderte von Spielen.

    Sound ist noch das einzige und hier ist aber das Interesse minimal. Es gab mal OpenAL, wie OpenGL aber für Sound (mit 3D Sound, völlig gleichwertig zu DirectSound3D). Wurde eingestellt, weil sich keiner dafür interessiert. Zum einen werben Spiele schon gar nicht mehr mit 3D Sound, zum anderen kann heute eine CPU im schlaf schon 3D Soundoperationen berechnen, wofür man vor 8 Jahren noch einen speziellen Chip auf der Soundkarte brauchte, weil das keine CPU damals gepackt hätte. Einzig EAX hatte hier was zu bieten, funktioniert seit Windows Vista aber nur noch eingeschränkt und hat wohlgemerkt auch gar nichts mit DirectSound3D zu tun. Was DirectSound3D macht kann jedes CPU heute, ohne dass man überhaupt was von Rechenlast merkt (und die meisten Soundkartentreiber mit DirectSound3D Unterstützung machen das auch in der Tat alles in Software und nicht in Hardware wie viele immer meinen).

    Wenn du dir nicht die Mühe machen willst dein bisschen Sound- und Input-Code für mehr als eine Plattform zu schreiben, nimm SDL. SDL ist Cross-Plattform (Windows, Mac OS X, Linux, BSD und zig andere bis hin zu Amiga und Symbian OS).

    http://www.libsdl.org/

    Anbindungen für fast jede Programmiersprache der Welt existieren. SDL bietet im wesentlichen alle Funktionen die du jemals brauchen könntest aus den Bereichen:

    * Videoausgabe
    * Ereignis-Behandlung
    * Audioausgabe
    * Audio-CDs
    * Threads
    * Timer
    * Konvertierung der Bytereihenfolge

    und sieht auf jeder Plattform gleich aus.

    Wirklich interessant an DirectX ist nur Direct3D. Denn ohne DirectX kriegst du leicht Sound-/Musik-Ausgabe und Tastatur/Maus/Joystick-Eingabe in dein Spiel, gar kein Problem. Auch Netzwerk ist nicht gerade Rocket-Science. Aber 3D ohne Direct3D? Na dann mal viel Spass. Entweder du machst alles mit der CPU, da kommst du aber nicht alzu weit, oder du musst direkt mit der Hardware jeder Grafikkarte sprechen und morgen kommt eine neue Karte und dein Spiel wird nicht auf der laufen.

    Daher braucht man für nichts so dringend eine API wie für 3D. Und SDL bietet kein 3D an. Daher OpenGL.

    Und OpenGL kann DirectX ganz schnell den Rang ablaufen? OpenGL für 3D Grafik, OpenML für Physik- und Audioberechnung mit Grafikkartenbeschleunigung, SDL für Soundausgabe und Eingabeevents. Gegen dieses Team stehet DirectX selbst heute nicht so toll da - mit OpenGL 4 sogar sehr schlecht, wo OpenML auch noch direkt in OpenGL übergreift und umgekehrt. Und das beste: Diese Kombi geht auf jeder auch nur leicht verbreiteten Plattform.

    die man zB für Spiele
    > gebrauchen kann: 3D (Direct3D), Sound, Midi, Input (auch Joysticks und so),
    > Netzwerk, Audio/Video Playback und streaming, etc...
    >
    > Darum ist DirectX beliebt: es bietet für alle Bereiche der
    > Spieleentwicklung was aus einer Hand. Direct3D ist nur ein kleiner Teil
    > davon, daher kann die Alternative OpenGL allein auch nicht DirectX mal eben
    > verdrängen.
    >
    > Und daher ist der ewige Vergleich DirectX <-> OpenGL BULLSHIT

    /Mecki

  7. Re: OpenGL vs. DirectX

    Autor: OPENCL 11.03.10 - 20:00

    OpenML für Physik? Unsinn! ;)

  8. Re: OpenGL vs. DirectX

    Autor: /mecki78 11.03.10 - 20:05

    Stimmt. OpemML mit OpenCL verwechselt.

    Aber schau, da haben wir gleich noch eine. OpenML, Open Multimedia, womit auch SDL gar nicht mehr gebraucht wird.

    Im Prinzip muss man nur OpenML + OpenCL + OpenGL zusammenwerfen, dann fehlt nur noch Netzwerk und Inputhandling und schon hat man DirectX.

    /Mecki

  9. Re: OpenGL vs. DirectX

    Autor: asdsaef2323 11.03.10 - 20:05

    Wird nicht passieren...

    Ich hab schon für 3 Spieleentwickler hier in Deutschland gearbeitet. Entweder sieht es so aus das die ihre eigenen Engines und Toolchains haben, dann scheitert es an der Kosten-/Nutzen-Rechnung fürs nächste Projekt bzw an der Finanzierung

    Oder sie benutzen Engines und Tools / Middlewares von Drittanbietern und wenn die Linux nicht unterstützen...

    Viele Middlewares sind direkt von Beginn an möglichst tief im Spiel eingebettet, wie z.B. Kopierschutz.. das tauscht man nicht mal eben um.

    Da seh ich beim Mac schon mehr Sonne... wenn Valve eine mit Steam/Source das Komplettpaket liefert.

  10. Re: OpenGL vs. DirectX

    Autor: asdfasdfasdff 11.03.10 - 20:08

    /mecki78 schrieb:
    --------------------------------------------------------------------------------
    > Stimmt. OpemML mit OpenCL verwechselt.

    OpenCL für Physik? Klar geht, aber gehts noch mehr LowLevel?

  11. Re: OpenGL vs. DirectX

    Autor: Physiker 11.03.10 - 20:42

    > OpenCL für Physik? Klar geht, aber gehts noch mehr LowLevel?

    Nun ja. PhysX als Physik-Engine basiert ja auf CUDA, was dem OpenCL ähnelt.

    Irgendwo muss ja eine Grundlage geschaffen werden, diese sollte dann halt auf einer Plattformunabhängigen API gemacht werden. CUDA ist da z.B. nicht so wirklich Plattformunabhängig, obwohl es auch unter OS X und AFAIR auf Linux läuft, da nur auf Nvidia-Karten lauffähig.

  12. Re: OpenGL vs. DirectX

    Autor: Cespenar 11.03.10 - 21:09

    was gibt's eigentlich für apis für entwicklung von spielen für konsolen?

  13. Re: OpenGL vs. DirectX

    Autor: asdfasdfasdff 11.03.10 - 21:13

    > was gibt's eigentlich für apis für entwicklung von spielen für konsolen?

    OpenGL und proprietäres

  14. Re: OpenGL vs. DirectX

    Autor: CG 11.03.10 - 21:23

    Eine passende und beliebte PhysikEngine würde Bulletphysics mitbringen. Diese ist opensource und setzt komplett auf OpenCl und ist hinter nvidias PhysX Enigne und Havoc physics die dritt meist genutzte.

    http://bulletphysics.org/wordpress/

  15. Re: OpenGL vs. DirectX

    Autor: QDOS 12.03.10 - 10:10

    Physiker schrieb:
    --------------------------------------------------------------------------------
    > Nun ja. PhysX als Physik-Engine basiert ja auf CUDA, was dem OpenCL ähnelt.
    Da muss ich mich jetzt einschalten, denn DAS ist einfach falsch!
    Ageia PhysX basiert NICHT auf CUDA. PhysX wurde von Nvidia gekauft und neu geschrieben mit CUDA. So wird ein Schuh draus!

  16. Re: OpenGL vs. DirectX

    Autor: Fisch 12.03.10 - 10:36

    Zur Richtigstellung: OpenGl ist keine reine 3D API und damit genauso vielseitig wie DirectX.

    *fisch*

  17. Re: OpenGL vs. DirectX

    Autor: /mecki78 12.03.10 - 11:04

    asdfasdfasdff schrieb:
    --------------------------------------------------------------------------------

    > OpenCL für Physik? Klar geht, aber gehts noch mehr LowLevel?

    Sicher :-) Direkt mit der Grafikkarte kommunizieren.

    OpenCL führt beliebige Berechnungen für dich aus. Das tolle ist, dir als Programmierer ist es egal wo. Vielleicht auf der Grafikkarte, vielleicht auf der CPU, vielleicht auch auf irgend einer anderen Karte (PhysX oder wie die Dinger heißen) oder einem anderen Co-Prozessor im System; ist nicht dein Problem.

    Du hast eine Explosion und da sollen 200 Teile durch die Luft fliegen. Du packst die Coordinaten dieser Teile in eine geeignete Struktur zusammen mit ihren Bewegungsvektor (Richtung und Geschwindigkeit) und dann sagst du OpenCL in einer Schleife, er soll diesen Vektor auf die Coordinaten anwenden und bestimmte Faktoren auf die Vektoren selber (die werden z.B. durch die Erdanziehungskraft verändert und die Geschwindigkeit nimmt auch stetig ab). In jeder Iteration Zeichnest du die Teile einmal. Der Wert 200 ergibt sich aus der Config das Spiels, d.h. hier kann ein Nutzer Werte zwischen 20 und 20000 wählen (ein kleiner Benchmark kann hier im Vorfeld einen guten Default Wert ermitteln). Je nachdem wo OpenCL die Berechnungen ausführt und je nachdem wie schnell diese Komponente ist geht das ganze bis zu einem bestimmten Wert flüssig, ansonsten wird es ruckelig.

    Klar gibt es schon jetzt Libraries, die Physik auf CPUs berechnen oder Physik auf Physikkarten. Nur wenn du ein Spiel entwickelst, dann musst den gleichen Code 3x schreiben:

    1) Für Berechnung auf der CPU
    2) Für Berechnung auf der Grafikkarte (mit entsprechender API)
    3) Für Berchenung auf Physikkarte (mit entsprechender API)

    Oder du schreibst den Code einmal in OpenCL und unterstützt gleich alle 3 auf einmal + weitere, sogar solche, die es noch gar nicht gab als du den Code geschrieben hast.

    Physik in Spielen ist keine Raketenwissenschaft oder so. Die Berechnungen sind weder komplex, noch unbekannt. Jeder der auf einem Gymnasium war muss so was berechnen können, und hat so was auch schon mal berechnet in seiner Schullaufbahn. Das Problem ist nur die Masse an Berechnungen.

    /Mecki

  18. Re: OpenGL vs. DirectX

    Autor: /mecki78 12.03.10 - 11:06

    Fisch schrieb:
    --------------------------------------------------------------------------------
    > Zur Richtigstellung: OpenGl ist keine reine 3D API und damit genauso
    > vielseitig wie DirectX.

    Jain. Ich meine, es kann auch 2D und es kann auch ein bisschen Zeugs was mit dem direkten Zeichnen nichts zu tun hat, über die GLUT API... aber es ist schon sehr stark auf 3D fokussiert, dass muss man schon zugeben :-)

    /Mecki

  19. Re: OpenGL vs. DirectX

    Autor: Tingelchen 12.03.10 - 11:33

    /mecki78 schrieb:
    --------------------------------------------------------------------------------
    > asdfasdfasdff schrieb:
    > ---------------------------------------------------------------------------
    > -----
    > > OpenGL ist eine 3D API, vergleichbar mit Direct3D.
    > > DirectX ist eine Sammlung verschiedener APIs
    >
    > Nur sind die eigentlich alle bis auf Direct3D total uninteressant. Alles
    > andere kannst du auf jeder Plattform auch mit ganz einfachen APIs machen,
    > die du nur ein bisschen einpacken musst, damit sie aus der Sicht deines
    > Spiels immer gleich aussehen.
    >
    Ist uninteressant das die anderen evtl. uninteressant sind. Es bleibt dabei das DirectX eine Sammlung von API's ist und OpenGL eine API für Grafik ist.

    > Der Netzwerkteil ist sowieso unbrauchbar von DirectX, professionelle Spiele
    > haben alle eigenen Netzwerkcode hier, Midi ist tot für Spiele (warum auch,
    > ein MP3 abspielen kostet dich 2-3 Frames pro Sekunde Rechenzeit), Input
    > Handler hat ein einziger Programmierer in ein paar Tagen programmiert für 5
    > verschiedene Plattformen und den Code recyclest du dann für hunderte von
    > Spielen.
    >
    Natürlich kann man auch z.B. Winsock nutzen, oder allgemein auf die Socket-Bibs, die sich auf verschiedenen Plattformen befinden. Ist aber bei einem Projekt das für den PC erscheinen soll unerheblich. Da hier nur Windows relevant ist.
    Midi war wohl auch eher nur ein Beispiel und ist derweil nicht tot. Noch nicht :)
    Code läst sich nur recyclen wenn man auch eine wenigstens ähnliche API für die jeweilige Platform vorfindet.

    > Sound ist noch das einzige und hier ist aber das Interesse minimal. Es gab
    > mal OpenAL, wie OpenGL aber für Sound (mit 3D Sound, völlig gleichwertig zu
    > DirectSound3D). Wurde eingestellt, weil sich keiner dafür interessiert. Zum
    > einen werben Spiele schon gar nicht mehr mit 3D Sound, zum anderen kann
    > heute eine CPU im schlaf schon 3D Soundoperationen berechnen, wofür man vor
    > 8 Jahren noch einen speziellen Chip auf der Soundkarte brauchte, weil das
    > keine CPU damals gepackt hätte. Einzig EAX hatte hier was zu bieten,
    > funktioniert seit Windows Vista aber nur noch eingeschränkt und hat
    > wohlgemerkt auch gar nichts mit DirectSound3D zu tun. Was DirectSound3D
    > macht kann jedes CPU heute, ohne dass man überhaupt was von Rechenlast
    > merkt (und die meisten Soundkartentreiber mit DirectSound3D Unterstützung
    > machen das auch in der Tat alles in Software und nicht in Hardware wie
    > viele immer meinen).
    >
    OpenAL konnte sich nicht durchsetzen weil es scheisse zu benutzen war und nicht, weil sich keiner dafür interessiert hat. Im übrigen ist "3D-Sound" standard. Es wirbt auch keine Sau mehr damit ein 3D-Spiel programmiert zu haben. Derweil ist es absoluter Schwachsinn die CPU den Sound berechnen zu lassen, wenn im PC ein Sound-Chip vorhanden ist der das ganze für einen übernehmen kann und damit die CPU entlastet werden kann. Ja, nicht in jedem PC steckt billig hardware die nichts kann. Mit DirectSound nutzt man diese ohne dafür extra nen Regentanz auführen zu müssen.

    > Wenn du dir nicht die Mühe machen willst dein bisschen Sound- und
    > Input-Code für mehr als eine Plattform zu schreiben, nimm SDL. SDL ist
    > Cross-Plattform (Windows, Mac OS X, Linux, BSD und zig andere bis hin zu
    > Amiga und Symbian OS).
    >
    Gibt es die SDL auch für XBox360, PS3, Wii, SmartPhones oder PSP? Am Ende spielt es keine Rolle ob es die SDL für diese Platformen gibt oder nicht. Für die SDL gibt es keinen Support. Für DirectX und die spezifischen API's für die Geräte aber schon. Das ist es was am Ende wichtig ist. Den Support den man bekommt, wenn man Probleme hat.
    ein Spiel nativ für z.B. Linux zu portieren, ist kein Problem. Selbst dann nicht, wenn man vollständig auf DirectX aufgebaut hat.

    > Wirklich interessant an DirectX ist nur Direct3D. Denn ohne DirectX kriegst
    > du leicht Sound-/Musik-Ausgabe und Tastatur/Maus/Joystick-Eingabe in dein
    > Spiel, gar kein Problem.
    Wenn du z.B. deine Input-Eingaben durch die Windows-Event Handler abrufst, wirst du leider entsätzt feststellen, das dein Game nur verzögert reagiert, weil Windows kein Echtzeit-OS ist und die Windows-Handler absichtlich vom System verzögert ausgelöst werden.
    Also doch lieber DirectInput, für eine einfachere und schnellere Abfrage der Eingabegeräte.

    Im übrigen kann man 3D auch ohne D3D & OGL darstellen. Sicher, man kann diverse Sonderfunktionen mit den Boardmitteln nicht nutzen. Wie z.B. Shader. Das geht nur wenn man über den Treiber geht. Das gilt im übrigen für alle Hardwarekomponenten.


    Deine SDL nutzt unter Windows im übrigen die DirectX API Sammlung. Weil es unter Windows schlicht Sinnvoll ist diese zu nutzen. Die SDL ist ein Aufsatz. Ein weiterer Layer der zwischen deinem Projekt und der Hardware steht. Womit die SDL nicht einmal ansatzweise mit DirectX zu vergleichen ist.

    Bleibt damit dabei, das OGL lediglich eine konkurenz zu D3D ist. Für den Rest gibt es keine nennenswerte Konkurenz auf Windows-Systemen.
    Aber wer weis.. evtl. kommt irgendwann ja sowas wie OpenX als Gegenstück zu DirectX ;)

  20. Re: OpenGL vs. DirectX

    Autor: Tingelchen 12.03.10 - 11:35

    - XBox nutzt DirectX
    - Für den Rest sind es spezifische vom jeweiligen Hersteller

  1. Thema
  1. 1
  2. 2

Neues Thema


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Sie müssen ausserdem in Ihrem Account-Profil unter Forum einen Nutzernamen vergeben haben. Zum Login

Stellenmarkt
  1. Expert Partner & IT-Resource Management (m/w/d)
    operational services GmbH & Co. KG, verschiedene Standorte
  2. Prozessmanager (m/w/d) Unternehmensentwicklung
    VGH Versicherungen, Hannover
  3. Mitarbeiter:in im Bereich Medienraumausstattung
    STRABAG BRVZ GMBH, Stuttgart, Wien, Spittal/Drau, Molzbichl, Villach (Österreich)
  4. Gruppenleiter Applikationsmanagement (m/w/d)
    IT-Consult Halle GmbH, Halle (Saale)

Detailsuche


Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Hardware-Angebote


Haben wir etwas übersehen?

E-Mail an news@golem.de


Digitale-Dienste-Gesetz: Regierung bessert bei der Störerhaftung nach
Digitale-Dienste-Gesetz
Regierung bessert bei der Störerhaftung nach

Bei der Umsetzung des DSA in deutsches Recht soll der Schutz vor kostenpflichtigen Abmahnungen nun doch beibehalten bleiben.
Ein Bericht von Friedhelm Greis

  1. Störerhaftung Verbraucherschützer befürchten neue Abmahnwelle bei WLANs

Sony: Playstation 5 Standard versus PS5 Slim
Sony
Playstation 5 Standard versus PS5 Slim

Ein bisschen kleiner und schlanker: Golem.de hat die Playstation 5 Slim ausprobiert - und vergleicht die Konsole mit der bisher verfügbaren PS5.
Von Peter Steinlechner

  1. Dualsense Edge Nutzer beklagen Qualitätsprobleme bei 240-Euro-Controller
  2. Handheld Sony-Manager deutet Spielestreaming auf PS Portal an
  3. Playstation Portal im Test Dualsense mit Display - und Lag

Zbox Pico PI430AJ: Flotter Mini-PC mit Solid-State-Kühlung
Zbox Pico PI430AJ
Flotter Mini-PC mit Solid-State-Kühlung

Die fast lautlosen Kühler von Frore Systems funktionieren gut. Mehr Leistung auf so kleinem Raum ist kaum möglich. Eine ARM-CPU wäre aber spannend.
Ein Test von Martin Böckmann