Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

13.04.2012, 21:49

Frage zu OpenGL

Hab gerade darüber nachgedacht OpenGL statt DirectX zu nehmen, hab aber dazu eine (kleine) Frage:

Ist OpenGL, genau so stark wie DirectX durch die Hardware eingeschränkt? Zum Beispiel kann meine 3 Jahre alte Graka (damals 350€ teuer) nichts mit DX11 anfangen :(

OpenGL Versionen erscheinen ja in größeren Abständen (oder täusche ich mich da? )



mfg Mirac
"Wer Angst hat, dass ihm seine Ideen geklaut werden, der scheint nicht viele zu haben. "

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

2

13.04.2012, 22:23

OpenGL ist genauso an die Hardware gebunden wie DirectX.

Teilweiße ist der Softwarerenderer eventuell besser.
Aber der ist in der Regel so langsam, dass er sowieso nichts taugt.

Manchmal können aber neuere Features mit Extensions auch in ältere Versionen verfügbar sein.


Wenn man mit OpenGL neu anfängt, sollte man sich noch überlegen, ob man das "alte" OpenGL oder das "neue" OpenGL (ab Version 3) verwendet.

Legend

Alter Hase

Beiträge: 731

Beruf: Softwareentwickler

  • Private Nachricht senden

3

13.04.2012, 22:55

Hab gerade darüber nachgedacht OpenGL statt DirectX zu nehmen, hab aber dazu eine (kleine) Frage:

Ist OpenGL, genau so stark wie DirectX durch die Hardware eingeschränkt? Zum Beispiel kann meine 3 Jahre alte Graka (damals 350€ teuer) nichts mit DX11 anfangen :(

OpenGL Versionen erscheinen ja in größeren Abständen (oder täusche ich mich da? )



mfg Mirac

Nun, mit den Versionen ist es etwas komplizierter bei OpenGL.

OpenGL bietet erstmal Extensions. D.h. zum einen, das Nvidia und ATI neue Features ihrer GPUs so schon anbieten können, bevor irgendjemand (Microsoft für DirectX, oder das ARB für OpenGL) eine allgemeine API für dieses Feature spezifiziert hat. Und über diese Extensions sind neue Features auch in älteren Versionen verfügbar.

Dann gibt es ab und an eine neue Version. Ab und an passiert dabei etwas besonderes, meistens aber werden dann nur einige bestehende Extensions in OpenGL (ohne Extensions) integriert. Der Wert für den Entwickler? Ich glaub nahe bei null.

Vom Prinzip her ist OpenGL aber, wie bereits schon geschrieben worden ist, genauso hardwareabhängig wie DirectX. Deine Karte wird mit OpenGL jetzt nicht auf wundersameweiße anfangen Tesselation in dem Stil von DX11 zu unterstützen, auch wenn das mit OpenGL prinzipiell natürlich genauso möglich wäre.
"Wir müssen uns auf unsere Kernkompetenzen konzentrieren!" - "Juhu, wir machen eine Farm auf!"

Netzwerkbibliothek von mir, C#, LGPL: https://sourceforge.net/projects/statetransmitt/

4

14.04.2012, 00:10

Danke für die Antworten, also wird's kein Umstieg sondern ne neue Graka :D
"Wer Angst hat, dass ihm seine Ideen geklaut werden, der scheint nicht viele zu haben. "

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

5

14.04.2012, 11:05

Zitat

Wenn man mit OpenGL neu anfängt, sollte man sich noch überlegen, ob man das "alte" OpenGL oder das "neue" OpenGL (ab Version 3) verwendet.


Sollte man nicht. Einfach ab OpenGL 3.x anfangen. Alles andere ist veraltet und man lern nur Unsinn.

6

14.04.2012, 11:53

Das alte ist aber pädagogisch schöner. Es macht einfach keinen Spaß, direkt Vertexbuffer zu erstellen oder Shader zu schreiben. Für den Anfang ist es viel einfacher, glVertex zu benutzen und die States zu setzen, die man gerne hätte.
Aber eben auch nur, um so ein Gefühl dafür zu bekommen, letztendlich benutzen sollte man es natürlich nicht mehr.
Lieber dumm fragen, als dumm bleiben!

Sp3iky

Treue Seele

Beiträge: 232

Beruf: Entwicklungsingenieur

  • Private Nachricht senden

7

14.04.2012, 12:02

Das würde ich gar nicht mal so sagen. Wenn man die neue Art gleich richtig gelernt bekommt, ist es deutlich ansprechender, weil man wirklich sieht was in den einzelnen Schritten passiert und nicht irgendwelche magischen Befehle ausführt und dann hat man plötzlich ein Bild.

Hauptproblem ist oft nur die Herangehensweise. Denn meist kommen die Leute und sagen sich "Jetzt will ich was in 3D machen, deshalb schau ich mir jetzt OpenGL/DirectX an". Was man eigentlich tun müsste ist "Jetzt will ich was in 3D machen, jetzt schau ich mir erstmal an, wie man heutzutage von einem 3D Model zu einem gerenderten Bild kommt und schaue mir dann an, wie das OpenGL/DirectX umsetzt".

Den meisten fehlt der Hintergrund, warum man Vertexbuffer und Shader verwendet und wie das alles zusammenhängt. Dann versteht man auch nicht die Unterschied zwischen Model-, View, und Projectionspace und kann dann auch nicht nachvollziehen, wofür man die ganzen Matrizen braucht und wie man sie richtig erstellt.

8

14.04.2012, 12:25

Und wenn man gleich mit OpenGL 3+ anfängt, kann man sich auch nicht immer vor der Shaderprogrammierung drücken! ^^
Ich selbst bastele gerade eine 2D-Engine mit neuem OpenGL. 8)

9

14.04.2012, 12:35

Okay, jetzt hätte ich noch ne kleine Frage: Stimmt es das bei OpenGL langsamer neue Versionen erscheinen als bei DirectX ??

Weiß nicht mehr wo ich das mal gelesen hatte ode wer mir das mal gesagt hatte :D
"Wer Angst hat, dass ihm seine Ideen geklaut werden, der scheint nicht viele zu haben. "

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

10

14.04.2012, 12:50

Das war mal so. Prinzipiell ist es egal welche API du verwendest, heutzutage mehr denn je. Beide APIs tun mehr oder weniger genau das gleiche und sind am Ende nur eine eher dünne Schicht zwischen dir und dem Grafiktreiber. Nimm was dir besser gefällt. Wenn du nur für Windows entwickelst, dann wäre Direct3D meine definitive Empfehlung, aber die übliche Direct3D vs OpenGL Diskussion führen wir hier so regelmäßig, dass eine kurze Forensuche dich sicherlich auf die entsprechenden Threads bringen wird ;)

Werbeanzeige