Direct X Alternativen?

donpsycho

Cadet 2nd Year
Registriert
Aug. 2006
Beiträge
18
Hi,

Direct X ist die Schnittstelle für Grafikanwendungen für Spiele und anderes unter Windows und auch bei der Xbox. Jedoch gibt es auch ein paar wenige Spiele für Linux. Welche Schnittstelle benutzen diese? Welches sind die Vor und Nachteile dieser Schnittstelle. Und warum Supporten so wenige Entwickler diese Schnittstelle. Immerhin gibt es für andere Konsolen auch Spiele welche nicht über Direct X laufen oder?

Vielen Dank für Eure Antworten.

MfG

DonPsycho
 
Die meisten Linux-Spiele laufen, wenn ich mich nicht irre, unter OpenGL. DirectX gibt's unter Linux nicht, und zwar wegen der Lizenz. Und Es wird sich m. E. kein kommerzieller Entwickler die Mühe machen, ein Spiel auf OpenGL zu entwickeln, weil DirectX einfach eine um Welten bessere Grafik liefert.
 
weil DirectX einfach eine um Welten bessere Grafik liefert.

-.-

Unreal Tournament (alle Versionen einschließlich 3), Doom, ...?

Schlechtere Grafik? Eher nicht....
 
wer hat dir den dieses märchen erzählt? keine kommerzielle openGL spiele, weil DX besser ist :lol:
es gibt weniger openGLspiele, weil der kunden einfach schluckt, was M$ und softwareschmiden nur in DX präsentieren.

aber es gibt vieleicht eine hoffnung, DX für linux (ich weiss, stimmt so nicht, aber was solls): http://www.pro-linux.de/news/2007/11070.html

edit:
auch für linux kostet die entwicklung von software geld. nur für die, welche wegen eines lächerlichen monatlichen beitrages meckern wollen ;)
 
Zuletzt bearbeitet:
Schlechtere Grafik ist Ansichtssache, so sind bspw. alle ID-Software-Titel für OpenGL programmiert (Doom, Quake, RTCW etc). Und deswegen lassen sie sich auch so leicht unter Linux-Systemen installieren :)

Der Großteil der Games ist wegen Direct3D nur über Wine/Cedega zugänglich.

Wenn dich dir genauen Vor- und Nachteile der Schnittstellen interessieren würd ich mal bei Wiki recherchieren, ich kann dir nur subjektive Gründe nennen ;)

Ist es nicht so dass die OpenGL Unterstützung bei Windows-Systemen zwecks Vermarktung der eigenen Schnittstelle heruntergfahren wird? Oder lieg ich da falsch?

Fakt ist, Entwicklungskosten für D3D und OpenGL kann sich kein Unternehmen leisten - und da 99 aller Gamer ein Windows-System haben wird auf erstere Lösung gesetzt.

@baFh:

Naja, Cedega ist ja nicht ganz neu. Leider werden viele viele Spiele noch nicht unterstützt, was den Spielspaß im Voraus schon trübt. Das Projekt ist eine tolle Sache, auch wenn es kostet. Aber teils Monate zu warten bis das Game unterstützt wird? Ich hoffe dass da noch viel passiert :)
 
Zuletzt bearbeitet:
Wie immer gibt es zu allem nen Wiki eintrag http://en.wikipedia.org/wiki/Comparison_of_Direct3D_and_OpenGL

Da Neben Linux auch die Wii und PS3 OpenGL benutzen, ist Qualität auf jedenfall da.

Vom programmier technischen Standpunkt her soll OpenGL sogar einen einfacheren und schlankeren Code haben. [1] [2]

Und es sollte für Entwickler in der Hinsicht doch auch interessant sein, dass OpenGL durch Linux für jeden zugänglich ist nicht dieser DX10 Vista only Kram.
 
Die ganzen "großen" Spiele à la Quake oder UT hab ich leider nicht probiert, aber man sehe sich z. B. Die doch relativ pixeligen Kanten des Beryl-Würfels an (da es für Windows nichts Vergleichbares gibt, kann es natürlich sein, dass ein Desktopmanager im Stil von Beryl unter DirectX genauso pixelig aussehen würde, aber wer weiß). Oder z. B. kleinere Spiele für Linux. http://vdrift.net/ zum Beispiel. Hat unter Windoof eine wesentlich bessere Grafik als unter Debian, obwohl es für Linux entwickelt wurde.
 
erstmal ein paar ding vorne weg: sowohl bei directx als auch bei opengl, rendert am ende die gleiche grafikkarte mit den gleichen funktionen. wenn du da unterschieden sehen kannst, so liegt es nicht an der schnittstelle selber, sondern daran, dass dinge wie antiallising evtl nicht eingeschaltet sind. so etwas vermute ich, ist dein problem mit beryl.
directx wird nicht wegen der lizenz unter etwas anderen systemen als windows nicht genutzt, sondern weil sie grundsätzlich nur auf der treiberarchitektur von windows läuft. cadega/wine klonen die api und setzen sie auf entsprechende treiberarchitektur von x11.
zu dem spiel, das du erwähntest, das verwendet unter allen platformen, auf denen es läuft, ausschließlich opengl+sdl. die beiden sind die erste wahl, wenn man platformunabhängig spiele o.ä. erstellen will.

damit bin ich auch endlich beim eigentlichen thema: direct x ist nicht nur die grafikschnittstelle, sondern ein generelles interface zur hardwarenahen programmierung. direct 3d und direct show kümmern sich um die grafik. directinput um den input. usw.
unter unixoiden gibt es kein system, das all diese anforderungen erschlägt. opengl ist ein reines grafiksystem, kümmert sich also im gegensatz zu direct 3d nicht um die datenformaten, sondern will bspw bei texturen direkt mit den pixeln gefüttert werden bzw. verfügt über kein speicherbares objektmodell. allerdings gibt es unzählige libs für opengl, die genau das nachrüsten.
von den technichen möglichkeiten besteht wenig unterschied zwischen directx und opengl. der hauptunterschied ist wohl, dass opengl verteilte systeme im standard vorsieht.
ansonsten ist opengl generell flexibler, wird aber seltener erweitert. das führt dann dazu, dass du bswp. mit opengl 1.2 shader programmieren kannst, also einer technik die bei erscheinen des standards noch in den sternen stand, dieses allerdings äußerst unelegant gelöst ist.
die meisten anderen teile von directx kann man mit sdl erschlagen. ich schreibe extra, die meisten, weil es auch teile wie die videoverabeitung gibt, für die man dann wieder eine extra lib wie etwa xine oder quicktime braucht.
andere wichtige libs sind allegro, das ist eine universal-lib und openal, das ist eine opengl angelehnte audio-lib. auch interessant ist libkdegames. insbesondere in der kommenden fassung.
 
Zuletzt bearbeitet:
Wieder was neues gelernt. ^^ Aber: Wird DirectX unter einer Opensource-Lizenz released? Nein. Also sogar wenn die Treiberarchitektur passen würde, würde DirectX nie in irgendeine Distribution kommen. Man erinnere sich da z. B. an Iceweasel (wobei natürlich Debian eher die Ausnahme darstellt).
 
du müsstest die größere hälfte des windowstreibermodells nachbauen, das ist das hauptargument... directx ist nicht irgendeine lib, die im userspace rumfliegt und nur ein "paar" systemcalls ausführt. directx besteht zu einem nicht unerheblichen teil aus treibern und ruft in anderen treibern eine ganze reihe von niederen, implementierungsspeziefischen funktionen auf. daher versuchen cadega und wine gar nicht erst das richtige directx auszuführen, sondern bauen nur die highlevel apis nach.

firefox steht unter eine opensource-lizenz, diese ist aber nicht gpl-kompatibel, daher ist es bei debian rausgeflogen. bei allen anderen wird es wohl ähnlich wie cdrecord drin bleiben.

directx ist als freeware erhältlich und könnte daher ohne probleme, auf die addon-cd bzw. in den addon-repos der jeweiligen distro liegen, wie es etwa auch der acrobat reader oder der realplayer tun.
 
len schrieb:
Ist es nicht so dass die OpenGL Unterstützung bei Windows-Systemen zwecks Vermarktung der eigenen Schnittstelle heruntergfahren wird? Oder lieg ich da falsch?

OpenGL samt Schnittstelle sollte urspruenglich tatsaechlich schon ab Windows Vista deutlich schlechter unterstuetzt werden - jedoch ist Microsoft davon noch einmal runtergesprungen.

OpenGL ist auf jedenfall nicht wirklich schlechter als DirectX. Im Grunde ist es wesentlich guenstiger weil es keine Lizenz-Kosten und sonstige anfallende Kosten inne hat. Das Problem mit OpenGL ist wohl das "Open" - denn bekanntlich kann man mit offenen Code nicht so viel Gewinn machen wie mit kommerziellen Code aber man kann damit erfolgreich sein, ID-Software hat mit Unreal, Doom und co das mit bravur bewiesen.
OpenGL ist auch wirklich schlanker - jedoch ist OpenGL nicht direkt eine komplette Grafikbibliothek, es sind noch kleine andere Dinge notwendig. Wer mehr wissen will, sollte bei Wikipedia einfach mal nach OpenGL suchen. ;)
 
Shader schrieb:
OpenGL ist auf jedenfall nicht wirklich schlechter als DirectX. Im Grunde ist es wesentlich guenstiger weil es keine Lizenz-Kosten und sonstige anfallende Kosten inne hat. Das Problem mit OpenGL ist wohl das "Open" - denn bekanntlich kann man mit offenen Code nicht so viel Gewinn machen wie mit kommerziellen Code aber man kann damit erfolgreich sein
wovon zum geier redest du? du zahlst für dx keine lizenzgebühren genau wie für opengl. das open bei opengl steht auch nicht für opensource, sondern dafür, dass es ein offener standard ist. mehr nicht. weder muss du deine quellcode, der opengl enthält, veröffentlichen oder als opensource bereitstellen, noch dafür entwickelte treiber oder irgendwelche extentions.
Shader schrieb:
OpenGL ist auch wirklich schlanker
schlanker im bezug auf was?
Shader schrieb:
jedoch ist OpenGL nicht direkt eine komplette Grafikbibliothek, es sind noch kleine andere Dinge notwendig.
??? es ist das und nur das.
Shader schrieb:
Wer mehr wissen will, sollte bei Wikipedia einfach mal nach OpenGL suchen.
das hättest du vllt mal tun sollen...
 
Photon schrieb:
weil DirectX einfach eine um Welten bessere Grafik liefert.
Gehts noch? :freak: Über OpenGL lassen sich exakt die selben Effekte erstellen, wie über Direct3D. Es handelt sich hierbei lediglich um verschiedene APIs.
 
ghorst schrieb:
wovon zum geier redest du? du zahlst für dx keine lizenzgebühren genau wie für opengl. das open bei opengl steht auch nicht für opensource, sondern dafür, dass es ein offener standard ist..

Auch das stimmt nicht, das open steht für die Erweiterbarkeit der API über Extensions, was es so bei DX nicht gibt.
 
hättest du dafür mal einen beleg? ich kannte es bisher nur als offene variante des vorgängers iris gl.
 
kisser schrieb:
Auch das stimmt nicht, das open steht für die Erweiterbarkeit der API über Extensions, was es so bei DX nicht gibt.
Richtig, und es gibt Extensions (bzw. sind einige noch in Entwicklung), die es erlauben (werden), unter OpenGL die gleichen Shader (4.0) Effekte wie unter DX10 zu nutzen. Der Vorteil des Prinzips der Extensions ist, daß Entwickler nicht auf ein neues Release des Gesamtpaketes OpenGL warten müssen, sie lassen sich auch problemlos in ältere Releases einbauen.
Shader schrieb:
OpenGL samt Schnittstelle sollte urspruenglich tatsaechlich schon ab Windows Vista deutlich schlechter unterstuetzt werden - jedoch ist Microsoft davon noch einmal runtergesprungen.
Das stimmt so nicht, Windows Vista bietet von sich aus keinen hardwarebeschleunigten OpenGL Support mehr an, der wird OpenGL Wrappern überlassen, die von den Grafikkartentreibern bereitgestellt werden.
 
Zurück
Oben