was ist schneller ogengl oder directx
-
danke, ich hatte nämlich angst directx sei schnller, weil all die games das benutzen, aber das liegt vermutlich daran daran, dass directx mehr ein baukasten für ein spiel ist
-
Ich würde sagen, dass das andere Gründe hat. In den letzten Jahren hinkte OpenGL DirectX etwas hinterher was die Features anging, und eigentlich hat Microsoft die gesamte Entwicklung vorangetrieben. Mittlerweile sind OpenGL und DirectX allerdings schon wieder ziemlich gleich auf. Der nächste Grund ist wohl, dass ein paar Dinge mit DirectX einfacher sind. (Und ein paar Leute sind der Meinung, dass es einfach die schönere API ist.)
Aber letztlich ist das für einen Anfänger eigentlich alles völlig egal. Wichtig ist nur, dass du lernst Shader zu schreiben und zu nutzen, denn das ist mittlerweile in beiden Sprachen so ziemlich der Hauptteil der Arbeit.
-
Wenn du diese Frage stellen musst, dann spielts für dich keine Rolle
-
alterbro schrieb:
eigentlich ne ganz einfache frage mit drei möglichen antworten
schneller
langsamer
gleichEs fehlt noch die IMO einzig richtige Antwortmöglichkeit:
kommt drauf anNämlich darauf was man macht, welche Direct3D Version man verwendet, welches OS, Treiber/OpenGL-Implementierung etc.
Im Allgemeinen nehmen sich die beiden aber nicht viel, wenn man jeweils "passend" optimiert bzw. "sinnvollen" Code schreibt.
alterbro schrieb:
dass directx mehr ein baukasten für ein spiel ist
Äh. Ne, gar nicht
DirectX ist eher low-level, d.h. man muss fast alles selbst ausprogrammieren. Ist bei OpenGL aber nicht wesentlich anders.
Anders gesagt: es gibt nur wenig, was DirectX/OpenGL einem abnimmt, was nicht sowieso direkt vom Grafikkarten-Treiber bzw. der Hardware erledigt wird.
-
cooky451 schrieb:
Ich würde sagen, dass das andere Gründe hat. In den letzten Jahren hinkte OpenGL DirectX etwas hinterher was die Features anging, und eigentlich hat Microsoft die gesamte Entwicklung vorangetrieben. Mittlerweile sind OpenGL und DirectX allerdings schon wieder ziemlich gleich auf.
Es ist ja nicht nur das. M$ hat (mit Absicht) Angst vor OpenGL gemacht indem behauptet wurde, Vista würde kein OpenGL-ICD mehr erhalten. Das war nen ganz mieser Schachzug, der OpenGL richtig geschadet hat.
GothSeiDank ist OpenGL dank der ganzen Smartphones wieder auf dem Vormarsch.DirectX ist eher low-level, d.h. man muss fast alles selbst ausprogrammieren. Ist bei OpenGL aber nicht wesentlich anders.
Anders gesagt: es gibt nur wenig, was DirectX/OpenGL einem abnimmt, was nicht sowieso direkt vom Grafikkarten-Treiber bzw. der Hardware erledigt wird.Naja, DirectX hat DXUT, was es Programmierern durchaus etwas einfacher macht was Fenstermanagement etc angeht. SDL oder SFML kann man hier zwar auch für OpenGL nehmen, aber naja, das nehmen die größeren Studios iwie nicht. Ka warum.
Das einzige Spiel mit SDL das mir grade einfällt in meiner Steam-Sammlung ist Dungeons of Dredmor.
Mit SFML habe ich Atom Zombie Smasher auf Steam.
-
Scorcher24 schrieb:
DirectX ist eher low-level, d.h. man muss fast alles selbst ausprogrammieren. Ist bei OpenGL aber nicht wesentlich anders.
Anders gesagt: es gibt nur wenig, was DirectX/OpenGL einem abnimmt, was nicht sowieso direkt vom Grafikkarten-Treiber bzw. der Hardware erledigt wird.Naja, DirectX hat DXUT, was es Programmierern durchaus etwas einfacher macht was Fenstermanagement etc angeht. SDL oder SFML kann man hier zwar auch für OpenGL nehmen, aber naja, das nehmen die größeren Studios iwie nicht. Ka warum.
Das einzige Spiel mit SDL das mir grade einfällt in meiner Steam-Sammlung ist Dungeons of Dredmor.
Mit SFML habe ich Atom Zombie Smasher auf Steam.Fenster, Schmenster.
Das ist aber noch laaaange kein Spielebaukasten. Unter Spielebaukasten verstehe ich eher sowas wie die Unity.
D3D ist nach meiner Definition ganz klar low-level, ob mit oder ohne Fenster.
-
Hab ja auch nicht gesagt dass es nen Baukasten ist :D.
Aber es nimmt einem schon viel Arbeit ab, das wollte ich damit sagen.Die meisten Entwickler nehmen heute eh vorgefertigte Engines wie bei EA jetzt die Frostbite 2 von DICE, Unreal Engine oder auch Unity.
-
ich hab noch eine frage:
wieso unterstützt windows eigentlich opengl?
ich mein ja schön wärs nicht, aber wenn sie es einfaach nicht mehr unterstüzen würden wär opengl vom markt gefegt, und das problem gelöst.
sind sie einfach fair oder ist es ihnen verboten?
-
OpenGL ist nur einen Schnittstelle/API und Windows unterstuetzt diese mehr, d.h. sie liefern keine eigene Dll mit aus. Aber nVidia liefert zu ihren Treibern eben diese Dlls mit, gleiches gilt fuer Ati.
-
Windows liefert nach wie vor eine opengl32.dll mit. Die implementiert aber nur OpenGL 1.4, alles weitere muss man sich über den Extension Mechanismus vom Treiber holen.
Wieso sollten sie es nicht unterstützen wollen, gibt doch viel zu viel Software die davon abhängt!?
-
alterbro schrieb:
ich hab noch eine frage:
wieso unterstützt windows eigentlich opengl?
ich mein ja schön wärs nicht, aber wenn sie es einfaach nicht mehr unterstüzen würden wär opengl vom markt gefegt, und das problem gelöst.Welches Problem denn bitteschön?
-
alterbro schrieb:
sind sie einfach fair oder ist es ihnen verboten?
Zum einen Kartellrecht, zum anderen gibt es weitaus mehr Software als Computerspiele. Und da rennt eine Menge echt gutes Zeug (fast jedes CAD Programm) durch die Gegend, das man nicht verlieren will.
Ausserdem: sie können e snicht verhindern, dass jemand eine opengl dll mitliefert.
-
Windows hat doch OpenGL Support, ich versteh nicht warum manche glauben dass das nicht der Fall wäre. Die Windows-Standardimplementierung ist eben nur OpenGL 1.4 fähig. Aber der Grafiktreiber kann implementieren was er will und Windows bietet eine Schnittstelle für den Zugriff auf die Funktionalität im Grafiktreiber.
Das ist unter Windows 7 nicht anders wie unter Windows 2000...
-
alterbro schrieb:
ich hab noch eine frage:
wieso unterstützt windows eigentlich opengl?
ich mein ja schön wärs nicht, aber wenn sie es einfaach nicht mehr unterstüzen würden wär opengl vom markt gefegt, und das problem gelöst.
sind sie einfach fair oder ist es ihnen verboten?Würde man auf der Autobahn nur noch Autos von BMW zulassen, dann wären die anderen Automarken vom Markt gefegt und das Problem gelöst.
So klingt ungefähr dein Satz.
Warum willst du OpenGL ermorden, die einzige 3d API, die auch auf jeder anderen Plattform verfügbar ist und nicht nur Windows?
Bist du etwa ein 14 jähriger Gamer, der glaubt, daß DirectX so super toll sei, nur weil es alle Spielehersteller aus historischen Gründen benutzen?
-
Es lebe die Diktatur oder schrieb:
Bist du etwa ein 14 jähriger Gamer, der glaubt, daß DirectX so super toll sei, nur weil es alle Spielehersteller aus historischen Gründen benutzen?
Bist Du etwa ein 16 jähriger Progger, der keine Ahnung hat was die Einführung von DirectX bedeutet hat und ist?
-
Hier noch nen Artikel zum Thema:
http://blog.wolfire.com/2010/01/Why-you-should-use-OpenGL-and-not-DirectX
-
Die meisten Argumente in dem Artikel warum OpenGL besser sein soll als Direct3D sind aber leider Schwachsinn.
Die bessere Portabilität ist das eine Argument für OpenGL. Auf Linux oder Mac ist OpenGL eben die API der Wahl.
-
Begründung?
-
alterbro schrieb:
danke, ich hatte nämlich angst directx sei schnller, weil all die games das benutzen, aber das liegt vermutlich daran daran, dass directx mehr ein baukasten für ein spiel ist
Es liegt vielleicht aber auch an Faktoren jenseits der Grafikprogrammierung. DirectX deckt insgesamt wesentlich mehr ab als OpenGL, da es nicht nur auf die Grafik bezogen ist (Grafik, Sound, Spielecontroller...).
-
Scorcher24 schrieb:
Begründung?
Na dann, hier mal die Punkte wo's mir beim Lesen am meisten weh tut:
API use was shifted in favor of DirectX by Microsoft's two-pronged DirectX campaign around the launch of XBox 360 and Windows Vista [...]
Schwachsinn. Vista und die XBox 360 kamen 2005 raus. Zu dem Zeitpunkt war OpenGL schon lange am Sand.
It's common knowledge that OpenGL has faster draw calls than DirectX [...]
Schwachsinn. Das war in Direct3D 9 vielleicht so. Und auch da war es für die Praxis irrelevant. Richtig verwendet gibt es keinen relevanten Performanceunterschied zwischen den beiden APIs (vernünftige Treiber vorausgesetzt).
Abgesehen davon hat OpenGL seine eigenen Bottlenecks.[...] and it has first access to new GPU features via vendor extensions.
In der Theorie. In der Praxis bringen mir irgendwelche herstellerspezifischen Extensions nix. Der Grund warum ich eine Grafik API wie OpenGL verwend ist doch gerade, dass ich nicht für jeden Hersteller eigenen Code schreiben will.
The tesselation technology that Microsoft is heavily promoting for DirectX 11 has been an OpenGL extension for three years.
Schwachsinn. Diese ATI Tesselation hat mit der Tesselation in Direct3D 11 absolut nichts zu tun. Sie ist rein fixed function und funktioinert komplett anders. Direct3D 11 Tesselation ist frei programmierbar und passiert an einer ganz anderen Stelle in der Pipeline.
Abgesehen davon stimmt es dass es eine OpenGL Extension dafür gibt. Aber dann sollte man auch erwähnen, dass diese From von Tesselation in Direct3D 9 direkt Teil der API war.
Es hat nur niemand verwendet, weil eben niemand extra Code für eine herstellerspezifische Technologie von zweifelhaftem Nutzen schreiben will...It has even been possible for years before that, using fast instancing and vertex-texture-fetch.
Schwachsinn. Das ist mit der Direct3D 11 Tesselation absolut nicht vergleichbar.
I don't know what new technologies will be exposed in the next couple years, I know they will be available first in OpenGL.
Vielleicht in der Theorie. Die Praxis hat uns in den letzten 10 Jahren gezeigt, dass das Gegenteil der Fall ist...
Blizzard always releases Mac versions of their games simultaneously, and they're one of the most successful game companies in the world!
Natürlich. Der Erfolg von Blizzard ist sicherlich darin begründet, dass sie OpenGL verwenden...
Most game developers have fallen under the spell of DirectX marketing, or into the whirlpool of vicious cycles and network advantages.
Natürlich, globale Verschwörung, was denn sonst. Die Möglichkeit dass Direct3D einfach seit 10 Jahren die bessere Technologie ist ignorieren wir mal, denn das wäre ja das Gegenteil von dem was wir hier "beweisen" wollen...
Ein richtiger Grafikprogrammierer ist nicht von irgendeiner API abhängig, sondern wählt seine API je nachdem was gerade sinnvoll ist.
Aber dazu zitieren sie eh John Carmack:"[...] It’s interesting how little of the technology cares what API you’re using and what generation of the technology you’re on. You’ve got a small handful of files that care about what API they’re on, and millions of lines of code that are agnostic to the platform that they’re on."
On the other hand, if you use OpenGL, you get faster and more powerful graphics features than DirectX 11
Schwachsinn. OpenGL hat's gerade mal geschafft so grob aufzuholen. Es unterstützt immer noch nicht alles was Direct3D 11 kann.
Gerade vor ein paar Wochen musste ich feststellen, dass es selbst im aktuellsten Core Profile noch nichtmal einen standardisierten Weg für random reads/writes in einen Buffer gibt. Das ist dann doch eine ziemlich gravierende Einschränkung. Da wirken das Fehlen von bufferless Draw oder richtiger offline Compilation von Shadern plötzlich wie Kleinigkeiten.If there's anything about OpenGL that you don't like, then just ask the ARB to change it -- they exist to serve you!
Schwachsinn. Nur weil es ein "Open" im Namen hat, bedeutet das noch lange nicht dass es auch wirklich open ist.
OpenGL ist ein open standard. Das "open" bedeutet in dem Fall: Jeder der zahlt bekommt ab $10.000 pro Jahr eine Chance mitzureden.
Wieso sich so viele Open Source Verfechter davon blenden lassen und OpenGL als ihre Festung in ihrem heiligen Krieg gegen das böse Microsoft betrachten, ist mir wahrlich ein Rätsel.
Denn in Wahrheit ist OpenGL nichts als ein Standard von einem Industriekonsortium, weder irgendwie besonders freier noch irgendwie besonders offener als Direct3D.
Ich seh z.B. keinen Grund wieso man nicht einfach Direct3D auch unter Linux implementieren sollte. Ist imo die bei weitem bessere API. Aber mittlerweile gibts ja eh schon Projekte dahingehend...Ach und weil man's nicht oft genug sagen kann: OpenGL ist nicht Open Source.
Allein die Idee macht nichtmal Sinn...EDIT weil ichs gerade gesehen hab: Ich empfehle sehr die Kommentare von Mihnea zu dem Artikel zu lesen. Er erklärts viel besser als ich es je ausdrücken könnte...