DirectX oder OpenGL?



  • Hey!
    Wie der Titel schon sagt habe ich jetzt die Grundlagen in Windowsprogrammierung/C++ durch und wollte mich nun mit einer Grafikbibliothek beschäftigen.
    Welche würdet ihr für den Einstieg empfehlen?

    Danke im Voraus
    BlackCubeX

    P.S.: Nein, ich bin kein Kiddie das erwartet, in zwei Wochen Battlefield nachzumachen. Vll. Pong oder Asteroids...



  • Wenns nur für Windows sein soll: Direct3D

    Wobei meine Empfehlung wär, dich zuerst ein wenig mit der SFML zu spielen 😉



  • Danke für die schnelle Antwort erstmal 🙂
    Was genau ist deiner Meinung nach der Vorteil von D3D zu OGL?
    Ihc les mich dann erstmal auf der SFML-Seit ein 😉

    LG
    BlackCubeX



  • D3D ist einfach die bessere API. Der einzige Grund OpenGL zu verwenden ist imo, dass man D3D nicht verwenden kann, z.B. weil die Zielplattform nicht Windows ist oder weil man es mit einer riesigen Codebase zu tun hat die OpenGL verwendet...



  • Ich will deine Hilfe ja nicht in Frage stellen, aber benutzt SFML nich OpenGL? 😕



  • Ja. Und? Ist ja egal was es intern benutzt, für den Einstieg würd ich trotzdem SFML empfehlen. Du benutzt dann ja SFML und nicht OpenGL direkt.
    OpenGL und Direct3D sind am Ende nur verschiedene Schnittstellen zum Grafiktreiber, was interessiert dich wie SFML mit dem redet solange es das für dich tut 😉
    Der Grund warum SFML OpenGL verwendet, ist eben die Portabilität. SFML läuft so auch auf Linux und Mac ohne dass es einen separaten Renderpfad für Windows braucht...



  • Stimmt. Wenn du Windows-only bist, dann auf jeden Fall DirectX/3D.



  • Am besten in einem neutralen Forum fragen, hier sind ja die Microsoft-Fans und die empfehlen natürlich Microsoft-Produkte.



  • 🙄 natürlich, genau das muss der Grund sein, kann ja gar nicht anders sein...



  • gggh schrieb:

    Am besten in einem neutralen Forum fragen, hier sind ja die Microsoft-Fans und die empfehlen natürlich Microsoft-Produkte.

    Wenn du denkst das wir so eingenommen sind, schreib selbst mal nen Vorschlag.Es ist halt einfach eine Tatsache das viele Microsoft Produkte gut sind.



  • Es ist halt einfach eine Tatsache das viele Microsoft Produkte gut sind.

    Es ist einfach eine Tatsache das viele Microsoft Produkte schlecht sind. 🙂



  • knivil schrieb:

    Es ist halt einfach eine Tatsache das viele Microsoft Produkte gut sind.

    Es ist einfach eine Tatsache das viele Microsoft Produkte schlecht sind. 🙂

    Sehe ich anders, aber das artet aus.
    btt



  • Dich hat niemand gefragt!
    Es ist einfach Tatsache das viele MS Produkte Grottenschlecht sind.
    Wir wären viel weiter wenn MS nicht alles Patentieren würde.



  • Du- schrieb:

    Dich hat niemand gefragt!
    Es ist einfach Tatsache das viele MS Produkte Grottenschlecht sind.
    Wir wären viel weiter wenn MS nicht alles Patentieren würde.

    z.B.?



  • Windows driver development, WDM oder COM, DLLs und Manifeste, Redistributable Packages, ... und um zum Thema zurueckzukehren: Linkshaendige Koordinatensysteme.



  • Ok. Anstatt mit "Tatsachen" um mich zu werfen, hier vielleicht ein paar Argumente was OpenGL angeht:

    Pro

    • Bedingt Portabel
    • Man bekommt sehr schnell was gezeichnet (allerdings kommt man auf dem dabei notwendigerweise beschrittenem Weg nicht sehr weit)

    Contra

    • Es gibt kaum aktuelles Material im Internet, bzw. es ist, vor allem für einen Anfänger, sehr schwer aktuelles von all dem hoffnungslos veralteten Kram zu unterscheiden.
    • Das Objektmodell ist schwer kaputt
    • Globale Statemachine
    • Multidisplay wird zum Alptraum
    • Multithreaded Rendering kannst du praktisch knicken
    • Es ist auch nach über 10 Jahren immer noch nicht möglich, Shader offline zu kompilieren.


  • knivil schrieb:

    Windows driver development, WDM oder COM, DLLs und Manifeste, Redistributable Packages, ... und um zum Thema zurueckzukehren: Linkshaendige Koordinatensysteme.

    Was is das Problem mit COM, DLLs, Manifesten und Redistributable Packages?
    Was hat Microsoft mit Koordinatensystemen zu tun? Aber gut, dann hab ich einen Schocker für dich: OpenGL verwendet auch ein linkshändiges Koordinatensystem...
    Abgesehen davon wurde jegliche Innovation der letzten 10 Jahre von Microsoft/Direct3D vorangetrieben. OpenGL hat es 2011 endlich geschafft soweit aufzuholen, dass die Technologien zumindest Featuremäßig wieder einigermaßen auf dem gleichen Stand sind. Das Problem ist, dass immer noch niemand den Mut hat die alte API einfach wegzuwerfen und eine neue, zeitgemäße zu entwerfen. Microsoft hat das mit Direct3D bereits mehrmals getan und es war gut so. OpenGL hätte es wirklich bitter nötig und es gab auch Bestrebungen dahin (Stichwort Longs Peak). Leider sind die bisher alle gescheitert.
    Wenn dus von mir einfach nicht hören willst: Selbst John Carmack sagt dass Direct3D mittlerweile die bessere API ist.



  • knivel 👍 +1



  • @dot:
    Eine dumme Frage: DirectX Programme haben die Eigenschaft das sie auf unterschiedlichen Rechnern unterschiedlich aussehen. Ist das bei OpenGL genauso ?

    Es ist einfach eine Tatsache das viele Microsoft Produkte schlecht sind. 🙂

    Bedeutet jetzt MS, die Meckern Sinfonie ?

    Irgentwie habe ich das Gefühl es wird ein wenig Kult über MS zu meckern. Gewiss, die Produkte sind nicht perfekt, aber so schlecht wie viele meinen sind diese auch nicht. Dafür habe ich schon andere geistige Ergüsse gesehen, deren Erzeuger doch allzugerne durch 0 dividieren möchte. Und gerade da ahne ich Böses bei der Beschreibung von dot zum Thema OpenGL (Objektmodell, Doku).

    Aber eine Frage bleibt: Wer macht es besser ?



  • Bitte ein Bit schrieb:

    @dot:
    Eine dumme Frage: DirectX Programme haben die Eigenschaft das sie auf unterschiedlichen Rechnern unterschiedlich aussehen. Ist das bei OpenGL genauso ?

    Was genau meinst du mit "unterschiedlich aussehen"?


Log in to reply