Was zieht ihr vor DirectX oder OpenGL?



  • Ich will in die Grafikprogrammierung einsteigen und stehe vor der Wahl DirectX oder OpenGL zu benutzen. Ich arbeite nur unter Windows und mit VisualStudio Community 2015 Edition.

    Was zieht ihr vor DirectX oder OpenGL und warum?



  • Wenn du eh schon unter Windows entwickelts dann kannst du gleich Directx nehmen. Wenn du aber auch für andere Platformen entwickeln willst, dann nimm OpenGL. Directx ist aber um einiges besser.



  • Vielleicht lohnt sich auch schon ein Blick in Vulkan.



  • Vulkan läuft nicht auf meinem Laptop, der hat nur eine Nvidia 410M. DirectX12 ist ja wohl Vulkan sehr ähnlich aber geht wohl auch auf meiner Grafikkarte. Wenn ich mit DX anfange, dann aber wohl mit der 11er Version.

    Habt ihr gute Tutoriallinks zu DX11? Ja ich weiß Google nutzen, aber Google kann mir auch nicht sagen ob die Tuts gut sind oder nicht.



  • Bennisen schrieb:

    Directx ist aber um einiges besser.

    Unfug. Kannst auch gleich behaupten, dass Käse besser ist als Wurst.



  • Biolunar schrieb:

    Bennisen schrieb:

    Directx ist aber um einiges besser.

    Unfug. Kannst auch gleich behaupten, dass Käse besser ist als Wurst.

    Ich hab noch ansatzweise keine Demo gesehen die mehr herausholen konnte als Directx. Technisch gesehen kann Directx mehr als OpenGL.

    update: ich übertreibe vielleicht ein bisschen. aber dennoch hab ich mit directx besseres gesehen.



  • Also ich fange dann doch wohl gleich mit DirectX 12 an. Windows10 habe ich sowieso drauf und die nächsten 20 Jahren wird auch Windows mit ziemlicher Sicherheit mein HauptOS bleiben, da ziemlich alternativlos(OSX gibt es nur mit teurer Apple-Hardware und Linux auf dem Desktop? Naja, reden wir nicht weiter drüber) Ein Surface wäre toll, ist mir aber leider auch noch zu teuer.

    Wie dem auch sei. Ich fange dann mit DX12 an und wäre dankbar für gute Links oder Buchtipps.



  • Bennisen schrieb:

    Technisch gesehen kann Directx mehr als OpenGL.

    Echt? Was zum Bleistift?



  • hustbaer schrieb:

    Bennisen schrieb:

    Technisch gesehen kann Directx mehr als OpenGL.

    Echt? Was zum Bleistift?

    Naja, multithreaded Rendering ist mit OpenGL z.B. praktisch unmöglich. Aber das geht auch erst mit D3D12 wirklich vernünftig und das sollte man wohl eher nur mit Vulkan vergleichen. Stereo Rendering wär ein weiteres Beispiel; das geht in der Praxis nur mit groben Einschränkungen, wobei das nicht an der OpenGL API an sich liegt. Multi-Display und Multi-GPU ist auch so eine Sache...

    Ich persönlich ziehe D3D vor, weil OpenGL einfach ein völlig kaputte API ist. Man muss dazu sagen, dass ab OpenGL 3.3 aufwärts die Schmerzen zumindest ertragbar werden...



  • dot schrieb:

    hustbaer schrieb:

    Bennisen schrieb:

    Technisch gesehen kann Directx mehr als OpenGL.

    Echt? Was zum Bleistift?

    Naja, multithreaded Rendering ist mit OpenGL z.B. praktisch unmöglich. Aber das geht auch erst mit D3D12 wirklich vernünftig und das sollte man wohl eher nur mit Vulkan vergleichen.

    Genau das "wollte" ich auch noch dazuschreiben. Weil ich auch der Meinung bin dass ein Vergleich verschiedener Generationen wenig Sinn macht. War dann aber doch zu faul 😃
    (Ausgenommen natürlich wenn es auf der einen Seite einfach nix neueres gibt, dann ist das schon OK.)

    dot schrieb:

    Stereo Rendering wär ein weiteres Beispiel; das geht in der Praxis nur mit groben Einschränkungen, wobei das nicht an der OpenGL API an sich liegt. Multi-Display und Multi-GPU ist auch so eine Sache...

    Ich persönlich ziehe D3D vor, weil OpenGL einfach ein völlig kaputte API ist. Man muss dazu sagen, dass ab OpenGL 3.3 aufwärts die Schmerzen zumindest ertragbar werden...

    Was Stereo-Rendering angeht... OK. Kann sein. Sollte aber auch mit Vulkan behoben sein ... oder haben sie das verpennt?

    Grund meiner Frage war aber weniger der Wunsch nach einer Antwort zwecks Informationsgewinn, sondern eher der Wunsch nach einer Antwort von Bennisen. Weil ich die Art der "Argumentation" die er betreibt doof finde.



  • hustbaer schrieb:

    Was Stereo-Rendering angeht... OK. Kann sein. Sollte aber auch mit Vulkan behoben sein ... oder haben sie das verpennt?

    Hab's noch nicht ausprobiert, würde aber mal hoffen, dass es dort überall supported wird; alles Andere wär extrem traurig, insbesondere in Anbetracht der Emergence von VR. Multi-GPU und Multi-Display sind in Vulkan zum Glück einigermaßen ordentlich gelöst, so wie mir das ausschaut sogar auf Linux, wo OpenGL ja fast noch kaputter ist als auf Windows...



  • hustbaer schrieb:

    Grund meiner Frage war aber weniger der Wunsch nach einer Antwort zwecks Informationsgewinn, sondern eher der Wunsch nach einer Antwort von Bennisen. Weil ich die Art der "Argumentation" die er betreibt doof finde.

    War nicht so gemeint :). Tut mir leid. Ich bezog mich aber auch mehr auf die Treiberunterstützung. Hab mein ich auch mal was auf heise gelesen, aber finde das nicht. Hoffe aber mal das OpenGL in allen Punkten aufholt.



  • Bennisen schrieb:

    Hoffe aber mal das OpenGL in allen Punkten aufholt.

    Ich glaub nicht, dass sich bei OpenGL noch viel ändern wird; wenn du mich fragst: RIP. Auch wenn das vielleicht im Moment anders dargestellt wird: Die Zukunft gehört Vulkan/D3D12.


  • Mod

    solange apple Vulkan nicht wieder aufnimmt, wird opengl leben, denke ich, weil Metal zu anders ist. (Alleine der shader syntax ist recht inkompatibel).

    Ich finde GL ist auch nicht mehr so schlim wie frueher. man kann input layouts explizit festlegen, GL 4.3 wird von fast allem auf dem markt unterstuetzt. GL ES 3.1 ist sehr aenlich. einzig dass es kein cross platform binary shader format gibt ist stoerend.

    eine wirklich immer gute API gibt es zZ nicht.
    - GLSL ist echt anstrengend pro platform. Ich hab privat keine ATI karten, aber ein artist freund hat ATI, jedesmal stimmt etwas nicht. in guten faellen schickt er mir das error log, aber z.B.z.Z. gibt ein shader einfach nur schwarz aus. funzt bei mir auf Intel und NV. solche probleme hab ich bei HLSL eigentlich sehr sehr selten
    - Vulkan (und of GL) treiber gibt es auf vielen geraeten nicht, im besonderen laptops, weil die hersteller, nicht NV/Intel/Ati die treiber authorisieren. DX12 hingegen ist mit win10 einfach dabei.
    - D3D12 funzt nicht auf irgendwas ausser Win10, es gibt aber noch sehr viele die Win7 nutzen. auf SteamOS (was meiner meinung nach interesant ist als paltform) schon garnicht. NICHTMAL auf UWP fuer xbox, da gibt es zZ nur D3D11 !
    - D3D11 ist ein wenig restriktiv. manche dinge, wie z.B. deferred context, gibt es, sollte man aber nicht nutzen wenn einem etwas an stabiler performance liegt. Am ende ist es ein hick hack wie GL.
    - Metal hat ein paar nette dinge, aber ist mir zu sehr abweichend was syntax angeht. es wirkt als ob das ein swift buddy sein soll.

    am Ende bleibt einem nur einen relativ schlanken wrapper zu machen und darunter mehrere APIs zu unterstuetzen.

    oder alternativ einfach auf eine platform festlegen. (z.b. appstore).



  • Nun ja, was Apple macht ist eigentlich komplett irrelevant bei dem Marktanteil. Wenn die mitbekommen, dass es mal wieder woanders schneller geht, werden die auch Vulkan nachziehen.


  • Mod

    metal laeuft halt auch auf iOS, der Marktanteil dort von apple ist beachtlich, gerade wenn es um leistungsstarke Hardware geht (und dafuer zielen die neuen APIs schliesslich ab).



  • Ich kenne so gut wie kaum Leute die irgendwas von Apple haben, aber nun gut unter Smartphones haben die bestimmt 20% Marktanteil, das ist weit mehr als als OSX hat. Die absoluten Platzhirsche sind halt immer noch Windows und Android und das wird auch noch eine Weile so bleiben. WindowsPhone finde ich übrigens absolute Klasse für den Preis, genau wie das Surface4 Pro. Selbst der Edge Browser von M$ ist mittlerweile toll. Die machen sich echt. Ich bin wieder ein echter Microsoft Fan geworden. Und das obwohl ich auch ein Macbook Air über ein Jahr hatte.


Log in to reply