DirectX lernen
-
dot schrieb:
OpenGL 4.x ist zwar Featuremäßig nun annähernd (afaik nicht ganz) auf Augenhöhe mit D3D11,
Was fehlt denn deiner Meinung nach?
von einer "modernen API" ist es aber meilenweit entfernt wenn du mich fragst.
Was ist denn für dich eine moderne API?
Etwa eine API die in C++ geschrieben wurde?Wenn ja, dann ist das ein sehr schlechtes Argument, denn OpenGL ist bewußt in C geschrieben weil OpenGL als Industriestandard nunmal von allen Programmiersprachen benutzt werden können soll und eine API in der Programmiersprache C bietet hier eben die beste Kompatibilität.
C++ kann das nicht bieten, deswegen verwendet man bei OpenGL ganz bewußt kein C++.Ansonsten ist OpenGL für eine C API sehr modern, ich wüßte nicht, warum das altbacken sein soll.
Ein weiteres Problem mit OpenGL ist die Tatsache dass Intel Grafikkarten furchtbar schlechten OpenGL Support haben, wenn du auch auf Intel Karten mit deiner Performance in den Bereich interaktiver Frameraten vorstoßen willst ist Direct3D die einzige Option. Daran ist natürlich nicht OpenGL schuld sondern Intel, aber Intel GPUs sind nunmal in schwächeren Computern (Laptops, Netbooks) sehr verbreitet. Und wer Windows XP unterstützen will zielt wohl auf dieses Segment ab...
Wer 3d nutzen will, der kauft sowieso keine Intel Grafikkarte.
Dafür waren Intel Grafikchips noch nie gut geeignet und die Treiber waren schon immer schlecht, auch unter Direct3d sind die Intel Treiber sehr schlecht, wenn man sie mit der Qualität der Treiber von ATI oder NVidia vergleicht.
Außerdem kann man mit OpenGL das Programm auch für Mac OS X und Linux entwickeln, mit Direct3d geht das nicht.
-
Scorcher24 schrieb:
Wer sich ne DX11 Karte kauft, wird wohl kaum auf XP hocken^^.
Ich habe eine Geforce 450 GTS, die ist prinzipiell DX11 fähig, aber ich nutze noch Windows XP weil ich eben auch OpenGL nutze und Windows 7 daher noch nicht brauche.
-
Ogl schrieb:
Scorcher24 schrieb:
Wer sich ne DX11 Karte kauft, wird wohl kaum auf XP hocken^^.
Ich habe eine Geforce 450 GTS, die ist prinzipiell DX11 fähig, aber ich nutze noch Windows XP weil ich eben auch OpenGL nutze und Windows 7 daher noch nicht brauche.
Was ne Verschwendung...
-
Scorcher24 schrieb:
Ogl schrieb:
Scorcher24 schrieb:
Wer sich ne DX11 Karte kauft, wird wohl kaum auf XP hocken^^.
Ich habe eine Geforce 450 GTS, die ist prinzipiell DX11 fähig, aber ich nutze noch Windows XP weil ich eben auch OpenGL nutze und Windows 7 daher noch nicht brauche.
Was ne Verschwendung...
Da wird gar nichts verschwendet!
Mit OpenGL 4.0 kann ich die Grafikkarte voll ausreizen und das gilt sowohl Featuremäßig als auch Leistungsmäßig.
Also, was willst du mir sagen?
Das du ein Gamer bist, der nur an nagelneue Computerspiele, DirectX 11 und Windows 7 denkt und nur deswegen gute Grafikkarten kauft?
-
Naja, wenn ich ne DX11 Graka hätte, würde ich auch meine Games mit DX11 zocken wollen. Grade auf das erscheinende BF3 schielend würde Vista oder 7 da schon seinen Nutzen haben.
-
Ogl schrieb:
dot schrieb:
OpenGL 4.x ist zwar Featuremäßig nun annähernd (afaik nicht ganz) auf Augenhöhe mit D3D11,
Was fehlt denn deiner Meinung nach?
Es gibt nun zwar endlich Program Binaries, da die jetzt aber erst wieder maschinenspezifisch gemacht wurden sind sie nichtmal annähernd so nützlich wie das was es in Direct3D seit nun 10 Jahren gibt.
Wie schauts aus mit Multithreaded Rendering?
Hast du schonmal OpenGL Anwendungen geschrieben die mit mehreren Displays und Grafikkarten rendern?
Append Buffer gibts nun ja nun offenbar endlich auch in OpenCL aber afaik gibt es keine Möglichkeit in OpenGL Shadern auf Compute-Funktionalität zuzugreifen, wie z.B. ein Fragment Shader der Scattered Writes in einen GPU Buffer durchführt, was in D3D11 alles kein Problem ist und von einigen fortgeschrittenen Techniken benutzt wird (z.B. ein Fragment-Level Depth-Sort für order indenpendent Transparency).Ja, wenn es um die großen Punkte auf der New Features Liste geht haben wir nun Gleichstand. Aber wenn man etwas genauer schaut eben doch nicht.
Ogl schrieb:
von einer "modernen API" ist es aber meilenweit entfernt wenn du mich fragst.
Was ist denn für dich eine moderne API?
Etwa eine API die in C++ geschrieben wurde?Mit C vs C++ hat das nichts zu tun. D3D basiert übrigens auf COM und kann daher auch von allen möglichen Sprachen (ja, auch C) benutzt werden, aber das nur nebenbei.
Im OpenGL Modell gibt es einfach einen riesigen globalen State. In D3D11 ist praktisch alles an State irgendwie gekapselt. Selbst wenn ich irgendwelche Objekte manipulieren will muss ich dies in OpenGL wegen des komischen Objektmodells über den globalen State erledigen. Ich kann nicht einfach den Texturfilter für Textur xyz setzen. Ich muss erst Textur xyz als aktuelles Texturobjekt in meinen globalen State binden und kann erst dann was damit machen. Die Erzeugung der Objekte ist durch dieses System mit den names auf mehrere Funktionen verteilt. Ich muss mir z.B. erst über glGenTextures() einen name holen diesen Binden und erzeuge erst dann mit glTexImage2D() mein eigentliches Objekt. Das ist nicht nur rein äußerlich unnötig komplex sondern auch für die Implementierung darunter sodass dieses ganze Bind Zeug unter Umständen sogar zu Performance-relevantem Overhead wird. Nicht umsonst bietet NVIDIA über eine Extension eine Bindless API an.
Ogl schrieb:
Wer 3d nutzen will, der kauft sowieso keine Intel Grafikkarte.
Dafür waren Intel Grafikchips noch nie gut geeignet und die Treiber waren schon immer schlecht, auch unter Direct3d sind die Intel Treiber sehr schlecht, wenn man sie mit der Qualität der Treiber von ATI oder NVidia vergleicht.
Außerdem kann man mit OpenGL das Programm auch für Mac OS X und Linux entwickeln, mit Direct3d geht das nicht.Die Portabilität ist imo das einzige Argument das für OpenGL spricht.
Der Direct3D Support von Intel ist eben dramatisch besser was die Performance angeht (wir reden hier nicht von ein paar FPS sondern unter Umständen von benutzbar vs. unbenutzbar). Natürlich liegt das nicht an OpenGL an sich sondern an Intel, trotzdem etwas was man bedenken sollte. Und dass sich Leute die 3D nutzen wollen keine Intel GPUs kaufen kann ich leider aus leidvoller Erfahrung nicht bestätigen, du glaubst gar nicht was ich da schon erlebt hab. Außerdem sind ja nicht alles Gamer und alle 3D Anwendungen gleich extrem professionelle High Performance Sachen wo man eben evtl. doch will dass es auch auf Mamis Laptop oder unterwegs am Netbook, der ja eigentlich eine voll D3D10 fähige GPU hätte, so gut wie möglich läuft...
-
Scorcher24 schrieb:
Naja, wenn ich ne DX11 Graka hätte, würde ich auch meine Games mit DX11 zocken wollen. Grade auf das erscheinende BF3 schielend würde Vista oder 7 da schon seinen Nutzen haben.
Ich sag ja du bist ein Gamer. Ich habe aber überhaupt kein DX11 Spiel, was soll ich da also zocken?
Und die Spiele die ich habe, die laufen unter WinXP sogar besser, unter Windows 7 laufen manche von denen gar nicht.
Windows 7 zu kaufen wäre also Verschwendung von Geld.
-
dot schrieb:
Die Portabilität ist imo das einzige Argument das für OpenGL spricht.
Der Direct3D Support von Intel ist eben dramatisch besser was die Performance angeht (wir reden hier nicht von ein paar FPS sondern von wirklich benutzbar vs. unbenutzbar). Natürlich liegt das nicht an OpenGL an sich sondern an Intel, trotzdem etwas was man bedenken sollte.Und wenn du deine Anwendungen nun für DX11 schreibst, denkst du dann, daß der Treibersupport bei Intel für OpenGL besser wird?
Warum sollte Intel Geld in die Treiber für OpenGL stecken, wenn Leute wie du alle Anwendungen sowieso für DX11 schreiben?
-
Ogl schrieb:
dot schrieb:
Die Portabilität ist imo das einzige Argument das für OpenGL spricht.
Der Direct3D Support von Intel ist eben dramatisch besser was die Performance angeht (wir reden hier nicht von ein paar FPS sondern von wirklich benutzbar vs. unbenutzbar). Natürlich liegt das nicht an OpenGL an sich sondern an Intel, trotzdem etwas was man bedenken sollte.Und wenn du deine Anwendungen nun für DX11 schreibst, denkst du dann, daß der Treibersupport bei Intel für OpenGL besser wird?
Warum sollte Intel Geld in die Treiber für OpenGL stecken, wenn Leute wie du alle Anwendungen sowieso für DX11 schreiben?
Nachtrag:
Denkt doch nur mal an ID Software.
Nur wegen ID Software können es die Gamer verdanken, daß sich die Grafikkartenhersteller bezügl. ihrer Treiber für OpenGL und Spiele in der Vergangenheit bemüht haben.
Ohne ID Software hätten wohl alle viel früher auf Direct3d gesetzt.
-
Das kann man so nicht sagen.
Wie schon öfters von mir im Forum angeführt, haben viele moderne Spiele einen OpenGL-Renderpfad. Vor allem Blizzards und Valves Spiele.
Bei Valve kannst bei allen Spielen -gl als Parameter angeben. Bei Blizzard geht es zumindest bei WoW, bei SCII keine Ahnung.
-
Schön dass du ID Software ins Spiel bringst, ich hab mich schon gefragt wie lang es dauern wird. Vermutlich hast du noch nicht gehört dass John Carmack, nachdem er C abgeschworen hat mittlerweile auch was Direct3D angeht meiner Meinung ist: http://www.bit-tech.net/news/gaming/2011/03/11/carmack-directx-better-opengl/1
-
Ogl schrieb:
Und wenn du deine Anwendungen nun für DX11 schreibst, denkst du dann, daß der Treibersupport bei Intel für OpenGL besser wird?
Ich kann mit D3D bessere Treiber und eine weitaus bessere API verwenden, warum sollte mich das also interessieren!? Ich würd mir eher Sorgen machen dass der D3D Support schlechter wird wenn ich meine Anwendungen nicht für D3D schreiben würde
Ogl schrieb:
Warum sollte Intel Geld in die Treiber für OpenGL stecken, wenn Leute wie du alle Anwendungen sowieso für DX11 schreiben?
ka, sag dus mir
-
dot schrieb:
Schön dass du ID Software ins Spiel bringst, ich hab mich schon gefragt wie lang es dauern wird. Vermutlich hast du noch nicht gehört dass John Carmack, nachdem er C abgeschworen hat mittlerweile auch was Direct3D angeht meiner Meinung ist: http://www.bit-tech.net/news/gaming/2011/03/11/carmack-directx-better-opengl/1
Nun, der Artikel zeigt doch, daß Journalisten nur die Hälfte verstehen und dem interviewten dann die Wörter falsch in den Mund legen oder wichtige Dinge einfach wieder weglassen.
Gültig ist damit eigentlich nur das kursiv gedruckte:
It is really just inertia that keeps us on OpenGL at this point,' Carmack told us. He also explained that the developer has no plans to move over to Direct3D, despite its advantages.
'OpenGL still works fine,' said Carmack, 'and we wouldn’t get any huge benefits by making the switch, so I can’t work up much enthusiasm for cleaning it out of our codebase
Er wechselt also nicht zu DX11.
Und der Rest vom Artikel ist ebenfalls Müll, weil OpenGL 4 ja noch sehr neu ist und es daher seine Zeit braucht, bis Engine Hersteller auch wirklich ne ordentliche Engine bieten können, die OpenGL auch nutzen.
Wenn der Artikel also schreibt, daß OpenGL in den Spielen verdrängt wird, weil es nicht mehr DX mithalten könne, dann liegt das daran, daß es hier noch um alte Fakten geht, nämlich um OpenGL 2.0 und vorher.
-
dot schrieb:
Ich kann mit D3D bessere Treiber und eine weitaus bessere API verwenden, warum sollte mich das also interessieren!?
Der TS will Windows XP verwenden, also ist OpenGL 4.x die erste Wahl.
Das Intel Problem kann man ignorieren.
-
OGL schrieb:
dot schrieb:
Schön dass du ID Software ins Spiel bringst, ich hab mich schon gefragt wie lang es dauern wird. Vermutlich hast du noch nicht gehört dass John Carmack, nachdem er C abgeschworen hat mittlerweile auch was Direct3D angeht meiner Meinung ist: http://www.bit-tech.net/news/gaming/2011/03/11/carmack-directx-better-opengl/1
Nun, der Artikel zeigt doch, daß Journalisten nur die Hälfte verstehen und dem interviewten dann die Wörter falsch in den Mund legen oder wichtige Dinge einfach wieder weglassen.
Gültig ist damit eigentlich nur das kursiv gedruckte:
It is really just inertia that keeps us on OpenGL at this point,' Carmack told us. He also explained that the developer has no plans to move over to Direct3D, despite its advantages.
'OpenGL still works fine,' said Carmack, 'and we wouldn’t get any huge benefits by making the switch, so I can’t work up much enthusiasm for cleaning it out of our codebase
Er wechselt also nicht zu DX11.
Und der Rest vom Artikel ist ebenfalls Müll, weil OpenGL 4 ja noch sehr neu ist und es daher seine Zeit braucht, bis Engine Hersteller auch wirklich ne ordentliche Engine bieten können, die OpenGL auch nutzen.
Wenn der Artikel also schreibt, daß OpenGL in den Spielen verdrängt wird, weil es nicht mehr DX mithalten könne, dann liegt das daran, daß es hier noch um alte Fakten geht, nämlich um OpenGL 2.0 und vorher.Bei deinem Nick war eig auch keine Objektivität zu erwarten.
So Aussagen wie
'The actual innovation in graphics has definitely been driven by Microsoft in the last ten years or so,' explained AMD's GPU worldwide developer relations manager, Richard Huddy. 'OpenGL has largely been tracking that, rather than coming up with new methods. The geometry shader, for example, which came in with Vista and DirectX 10, is wholly Microsoft's invention in the first place.'
kehrste unter den Tisch, ne? Wenn sowas DER OpenGL Verfechter #1 sagt, hat das schon ne recht große Tragweite.
Und das OGL4 sehr jung ist IST auch ein Indiz dafür, dass OpenGL mittlerweile eher DirectX nur noch nachhinkt. Immerhin entspricht OGL4.X in etwa D3D11 - und D3D11 gibt es seit 2009...
Meine Meinung zum eigentlichen Thema:
Willst du einfach nur was lernen und eine richtig schöne, moderne API benutzen: Nimm DX11. MUSST du WinXP unterstützen (was ich mir heut zu tage kaum noch vorstellen kann): Nimm DX9 oder OGL4.
-
OGL schrieb:
Nun, der Artikel zeigt doch, daß Journalisten nur die Hälfte verstehen und dem interviewten dann die Wörter falsch in den Mund legen oder wichtige Dinge einfach wieder weglassen.
Gültig ist damit eigentlich nur das kursiv gedruckte:
It is really just inertia that keeps us on OpenGL at this point,' Carmack told us. He also explained that the developer has no plans to move over to Direct3D, despite its advantages.
'OpenGL still works fine,' said Carmack, 'and we wouldn’t get any huge benefits by making the switch, so I can’t work up much enthusiasm for cleaning it out of our codebase
Nun, das zeigt doch dass du nur verstehst was du verstehen willst und wichtige Dinge einfach wieder weglässt wenn das mit deiner Überzeugung besser vereinbar ist:
Carmack said 'I actually think that Direct3D is a rather better API today.'
OGL schrieb:
Er wechselt also nicht zu DX11.
Und der Rest vom Artikel ist ebenfalls Müll, weil OpenGL 4 ja noch sehr neu ist und es daher seine Zeit braucht, bis Engine Hersteller auch wirklich ne ordentliche Engine bieten können, die OpenGL auch nutzen.
Wenn der Artikel also schreibt, daß OpenGL in den Spielen verdrängt wird, weil es nicht mehr DX mithalten könne, dann liegt das daran, daß es hier noch um alte Fakten geht, nämlich um OpenGL 2.0 und vorher.Korrekt er wechselt nicht zu D3D11 weil seine gesamte Codebase auf OGL basiert und er aus einem Wechsel keinen wesentlichen Vorteil ziehen würde. Das ändert aber nichts dran dass er D3D11 für die weitaus bessere API hält, und genau darum gings hier. Der restliche Artikel beschreibt eigentlich sehr gut den aktuellen Zustand in der Branche, zumindest so wie ich es die letzte Zeit beobachtet hab. Was du da oben sagst steht dort so nirgendwo drin wenn mein Englisch mich jetzt nicht total verlassen hat.
Ogl schrieb:
Der TS will Windows XP verwenden, also ist OpenGL 4.x die erste Wahl.
Der TS will in erster Linie Direct3D lernen.
Abgesehen davon hat OpenGL 4.0 natürlich den Vorteil dass man D3D11 Features auch auf XP nutzen kann, nur ist die Frage inwiefern dies relevant ist. Auch hab ich nur darauf hingewiesen dass OpenGL eben nicht nur Vorteile sondern auch Konsequenzen und Nachteile hat und dies auch begründet. Du scheinst dich ja darauf zu beschränken die selbe Aussage einfach immer wieder zu wiederholen. Wie wärs wenn du zur Abwechslung mal auf meine Argumente eingehen würdest, dann könnte hier vielleicht sogar noch was konstruktives rauskommen!?
-
Nun, mir kann es ja egal sein was ihr nehmt.
Ich verwende OpenGL 4.x weil ich damit alle Plattformen von Windows XP bis zu Mac OS X und Linux abdecke und dabei auch noch meine Grafikkarte voll ausreizen kann.
Wie Intel seine Treiber schreibt ist mir herzlich egal, für 3d Sachen sind Intel GPUs nämlich eh nur bedingt geeigent.Und der TS braucht noch Windows XP, also habe ich ihm OpenGL 4.x empfohlen weil er halt nur damit eine moderne Grafikkarte voll ausreizen kann.
-
Nachtrag:
Und wenn er mal an einer Uni Informatik studiert, dann wird er um OpenGL eh nicht herumkommen, denn DirectX spielt dort bestenfalls nur auf der zweiten Geige eine Rolle (wenn überhaupt).
-
Ogl schrieb:
Nachtrag:
Und wenn er mal an einer Uni Informatik studiert, dann wird er um OpenGL eh nicht herumkommen, denn DirectX spielt dort bestenfalls nur auf der zweiten Geige eine Rolle (wenn überhaupt).
Nope. Ich habe an der TU Muenchen studiert (das ist jetzt nicht die schlechteste Adresse
) und dort wurde ausschliesslich Direct3D benutzt.