OpenGL oder Direct3D
-
Es ist eigentlich ganz einfach: Wenn du die Wahl hast, definitiv D3D
-
gDEBugger ist jetzt doch kostenlos (eventl. nur für Hobbyzwecke)
http://www.gremedy.com/purchase.phpBin gerade am Testen was mit gDEBugger möglich ist:
- Depth, Stencil, Back, Front Buffer anzeigen, benötigter Speicher
- Texturen anzeigen, benötigter Speicher
- FBOs anzeigen - z. B. ob die Shadow Map richtig gerendert wurde
- Alle State Variblen mit aktueller Belegung
- Anzeige welche gl* Aufrufe insgesammt wie oft dran waren
- Profiling Möglichkeiten (temporäre Abschaltung von Fragment oder z. B. Geometrie Shader um Bottleneks aufzugziegn) - fürs Profiling schient gDEBugger besser zu sein wie Pix
- Anzeige von Deprecated Functions <- sehr hilfreichWas nicht geht:
Rechtsklick auf einen Pixel z. B. im Framebuffer oder z.B. FBO und dann "Debug Pixel" wie in PixWas ich noch nicht verstanden habe und am wichtigsten ist:
welchen Wert hat welcher Shaderparamter - das Debugging von Shadern hab ich noch nicht kapiert - nutze auch Cg vielleicht hat der Debugger damit ja Probleme...
-
dot schrieb:
Es ist eigentlich ganz einfach: Wenn du die Wahl hast, definitiv D3D
ich finde ja eigentlich die OpenGL 4.0 Api ganz hübsch. Ich bin zwar jetzt nicht so tief drin in der API, aber bislang empfand ich immer nur die Doku als Problem, nicht das Interface selber. Vor allem das Statemachine Design ist sehr ansprechend und verträgt sich mMn sehr gut mit C++ Klassen. Nachteil ist natürlich, dass OpenGL etwas low-leveliger ist und wo man in D3D nur einen Call hat, hat man dort direkt 5, dafür muss man sich aber auch nicht mit so vielen Datenstrukturen rumschlagen.
-
Hier die OpenGL 4.1 Reference Card - damit man ein Gefühl bekommt wie die API zu bedienen ist:
http://www.khronos.org/files/opengl41-quick-reference-card.pdfZum Dokumentationsproblem:
Man muss sich halt hier ein Buch wie "OpenGL Programming Guide: The Official Guide to Learning OpenGL, Versions 3.0 and 3.1" kaufen - Version 3.0 ist sehr ähnlich zu 4.1 - direkt zu OpenGL 4.1 gibt es noch kein BuchIch nutze oft
http://wiki.delphigl.com/index.php/OpenGL-Funktionsübersicht
um herauszufinden welche Paramter welchen Sinn haben - ist zwar für die Programmiesprche Delphi - aber die Paramter sind genau so wie bei C++ - nur eine etwas ander Syntax
-
Hi
Erstmal vielen vielen Dank für die tolen Antworten! Super Forum, super Mitglieder!
Ich hatte ein Problem mit meinem Router und konnte deshalb nicht antworten. Ich habe jetzt alles durchgelesen und es sind viele interessante Argumente von beiden Seiten gekommen (Direct3D & OpenGL).Ich hab mir mal ein paar Beispiele angeschaut. Alleine von Stil der API her ist es mir egal welche ich benutze.
Was mich jedoch überzeut hat ist, dass ich mir eine eigene Schittstelle schreibe. Ich habe schon mit den WinAPI- und den WinGDI-Teilen der Schnittstelle begonnen.
Vertexwahn schrieb:
Zu guter Letzt spielt auch noch eine Rolle welche Shader Sprache du verwenden willst HLSL, GLSL oder z. B. Cg.
Keine Ahnung welche ich nehmen sollte...
Und noch was: Ich habe die Wahl, was ich nehme.
Mein Zielgebiet wird einfach nur ein Einstieg in die 3D-Programmierung sein. Ich möchte mal Low-Level schreiben und die API's verstehen. Deshalb werd ich ganz sicher keine fertige Engine nutzen. es soll ja auch nicht ein Spiel werden.
Ich würde bis jetzt du Direct3D tendieren aber ist es falsch beides parallel zu lernen? Ich meine, dann habe ich am Schluss die Kontrolle über zwei API's ohne sehr viel mehr Arbeit investiert zu haben...
Und noch was zum Bewertungsmassstab. Wenn ich einen bestimmten Effekt realisieren möchte, ist es mir egal, wie viel Zeilen oder Zeit ich gebraucht habe. Wie einfach eine API ist, ist mir auch egal. Mir kommt es auf ein Endergebnis an, nicht auf dn weg dorthin (natürlich hat Alles Grenzen).
MfG und nochmals vielen Dank für deine Mühe,
EOutOResources
-
Wenn dir das alles egal ist, warum fragst du dann?
-
Mir ist nicht Alles egal, ich möchte wissen, mit welcher API man besser anfängt/in die 3D-Programmieung kommt...
-
Ich würde bis jetzt du Direct3D tendieren aber ist es falsch beides parallel zu lernen? Ich meine, dann habe ich am Schluss die Kontrolle über zwei API's ohne sehr viel mehr Arbeit investiert zu haben...
Das ist ein Trugschluss.
-
Wenn du es dir aussuchen kannst würde ich dir zu D3D raten weil es die imo bei weitem bessere API hat, auch wenn beide gleich mächtig sind. Je nachdem wieviel Erfahrung du hast kannst du mit D3D9 oder D3D11 anfangen. Da D3D9 eine flachere Lernkurve hat und es atm noch viel mehr Material dazu gibt ist es für Anfänger evtl. besser geeignet als D3D11. Wenn du allgemein schon mehr Erfahrung hast und kein Problem damit dir Informationen auch aus einer Doku zu beschaffen kannst du auch gleich mit D3D11 anfangen.
-
Du hast also noch nichts mit OpenGL oder D3D gemacht, aber willst zum reinstarten gleich eine eigene API machen, die beide abstrahiert?
Mein Tip: Zuch dir eine der beiden APIs aus. (Wenns sein muss mit dem Würfel)
Und dann Programmiere ein kleines Spiel oder überhaupt mal irgendwas auf den Bildschirm. Dann hast du deinen Einstieg. Alles andere kannst du danach entscheiden.
-
Wenn du es dir aussuchen kannst würde ich dir zu D3D raten
Wenn du es dir aussuchen kannst, dann wuerde ich zu OpenGL raten.
weil es die imo bei weitem bessere API hat
Da wuerde ich gern mal Zahlen sehen ...
-
knivil schrieb:
Da wuerde ich gern mal Zahlen sehen ...
Wenn du mir erklärst wie man die Qualität einer API in Zahlen messen kann dann kann ich dir vielleicht eine Antwort drauf geben
-
So, hab mir in OpenGL mal ein bischen Praxiszeug angeschaut und habe mich jetzt entschlossen OpenGL zu lernen.
Ich habe OpenGL ausgewählt weil ich OpenAL bereits kannte und mochte und weil geschreiben wurde, dass Direct3D und OpenGL gleichmächtig ist. Somit habe ich ein mit D3D gleichmächtiges Tool, welches einfacher zu lernen ist. Und was ich auch noch schön fand, ist wie leicht man die OpenGL-Pipeline modifizieren kann. Ein bischen Extention und ich habe einen nutzbaren Vertex- und Fragmentshader.
Das Buch ist schon unterwegs.Vielen Dank @ all.