DirectX vs OpenGL - welche API ist die bessere?

Hallo zusammen,

Im Vorraus: ich weiß, dass diese und ähnliche Fragen schon einige Male hier gestellt wurden, aber diese sind eben schon etwas älter und gerade bei Computern stellt ein Jahr eben eine Ewigkeit dar, weshalb ich sie hier bezüglich der aktuellsten Versionen von DirectX und OpenGL erneut stellen möchte.

ich als mittlerweile erfahrener Hobbyprogrammierer würde gerne in die Grafikentwicklung ohne Hilfsmittel wie Unity3D o. ä. einsteigen, wobei sich dabei für mich die Frage stellt, ob ich DirectX oder doch lieber OpenGL lernen soll. Die verwendete Programmiersprache dabei ist natürlich C++.

Ich weiß, dass Fragen wie diese immer einen Glaubenskrieg auslösen, dennoch wüsste ich gerne von beiden Seiten (für die es sicher jeweils Verfechter geben wird), inwiefern sich OpenGL und DirectX (eigentlich ja Direct3D, wenn man es mit OpenGL vergleicht) in ihrem Funktionsumfang, ihrer Leistungsfähigkeit aber auch ihrer Struktur und hinsichtlich ihrer Unterstützung mittels Hard- und Software unterscheiden. Wie sieht es mit der Portierung von der einen API auf die jeweils andere aus, wie mit der Unterstützung bestimmter Plattformen.

Außerdem würde ich gerne wissen, mit welcher API die meisten Computerspiele geschrieben sind (wobei ich vermute, dass dies DirectX ist). Zudem stellt DirectX ja neben der Grafik-API (Direct3D) auch noch DirectInput, DirectSound, etc. bereit. Wie sieht es hier bei OpenGL aus?

Über Antworten würde ich mich sehr freuen!

Viele Grüße und Danke im Voraus!

...zum Beitrag

Leider kann ich dir nix genaues sagen,da frag doch bitte mal im Forum bei Spieleprogrammierer.de und erkundige dich schon mal über Wiki,was DX und OpenGl ist. OpenGl ist eine offene Grafik API, die mit Direct3D von Microsoft konkurirert. Meistens werden Spiele in DirectX, programmiert,weil dies Tool von Microsoft wohl einfacher zu handhaben ist und man dort alles aus einer Hand bekommt. Der Nachteil ist, es ist nur auf Windows beschränkt. Durch die Entwicklung einer neuen API von AMD namens Mantle,wird im Moment wieder Forschung in Richtung OPenGL seitens Valve betrieben,auch weil sie Linux und den Mac zum Spielen pushen wollen,damit sie mehr Umsatz machen können. Vorteil Opengl ist ,das es duch herstellerspez. Extensions , beliebig erweiterbar ist, Nachteil es ist das pure Chaos und man einigt sich sehr spät auf einen Standard und die Treiber von den Grafikherstellern genießen gegenüber DirectX keine hohe Aufmerksamkeit und angeblich ist es schwieriger sich da zurecht zu finden. Wenn du ein Opensource Spiel unter Linux programmierst,musst du auch an OpenAL(Sound), OpenCl(Physik) denken und musst bei jedem Hersteller schaun,ob er bestimmte Standards erfüllt(OpenGL 3.3 und OpenCL 1.1 ). Da hat Microsoft alles in einem. aber ich bibn auf den Gebiet auch nur Laie und kann dir programmiertechnisch nicht weiter helfen,frag dort im Forum,die wissens besser!.

...zur Antwort

Bitte aktualisiere deinen Grafiktreiber,da dort die OpenGL Treiber mit drin sind,scheint bei dir ein OpenGL Treiber Bug zu sein. Am besten du lässt das Spiel die Einstellungen für dich vornehmen(wird wahrsch. DirectX ,anstatt OpenGL unter Windows sein),dazu musst du unter Dokumente die config Datei für dieses Spiel löschen, vorher startest du das Spiel im Safe Mode. C:\Users\Dein Name\Documents\Euro Truck Simulator 2

...zur Antwort

Der Unterschied ist der ,das beim Kophörer bei Stimmen eine In Kopf Ortung da ist,also die Stimmen kommen über Kopförer nicht von vorn,direkt aus deinem Kopf(bei MONO). Was bei Stereolautsprechern ) nicht der Fall ist, da diese ja vor dir stehen und bei Kophörern befremdlich wirken kann.. Hier wird mit Algorithmen ,das Gehirn mit HRTF ausgetrickst,damir du beim Kophörer den Glauben hast,es komme das Flugzeug direkt hinter dir oder die Stimmen direkt vor dir aus den "Bildschirm",trotz 2 Membranen im Kopförer. So sollte das angeblich im Spiel sein,was aber nicht immer der Fall ist. Bei Spiel "Shadowgrounds" stelle ich kein Unterschied fest,da wahrscheinlich EAX und HardwareSound fehlt, um dies anzuschalten,da fällt es dann bei alten Spielen mit Directsound Schnittstelle alles auf auf Stereo zurück,da ab Vista (http://www.heise.de/newsticker/meldung/Windows-Vista-wuergt-EAX-Raumklang-ab-119021.html) eine neue Soundschnittstelle Xaudio2 eingeführt wurrde,wo der Hardwaresound gekappt wurde. Es gibt noch Optionen wie 5.1,Quadro, QSound ,Surround und 7.1. Bei Surround ist es ein Stereosummensignal,wo die Surroundinformation im Stereosignal versteckt ist,die für alte Dolby Surround Anlagen gedacht war. Heute gibt es aber meistens diskrete Mehrkanaltechnik,wo alle Kanäle getrennt sind. bei QSound war es eine Technik die ähnlich Dolby Surround(aus 2 Kanäle werden 4-7.1 berechnet) funktionierte,um die Stereobasis zu verbreitern. Bei 5.1 und 7.1, die sind da falls man solche Kopförer oder aber solche Boxen/Verstärker besitzt. Hier wird nix berechnet,sondern direkt an die Kanäle verteil, da gleiche vorhanden sind. Das Thema ist wirklich sehr tiefgründig,sonst google doch mal nach den Begriffen. Falsche Einstellungen können Ergebnisse fehlender Toninformation(fehlende Stimmen/Umgebungsgeräusche) oder Artefakte hervorrufen.(Kanäle vertauscht,Rauschen,abrupte Wechsel des Tons,Stottern) .Tip BEi alten Spielen ungefähr bis 2006 meistens alles auf Stereo stellen,da unter Vista kein Surround möglich ist. (Bitte schau in Wikipedia nach den Fachbegriffen oder ergoogle dies,da ich die Links hier nicht einfügen darf)

...zur Antwort

Das Spiel läuft auch auf ATI/AMD Karten ab der X700 Serie. Physx ist eine Physik-API wo einige! starke Effekte (z.B. Rauch,flüssiges Wasser ,bewegte Kleidung,Funken Explosionen) die die CPU nicht berechnen kann auf Ageia oder später auf Nvidia Hardware ausgelagert werden. Hast du keine Physx Hardware,werden entweder einige Effekte abgeschaltet und die CPU berechnet nur die rudimentäre Physik (Ragdoll, Zerstörung von Umgebung,wenn fürs Gameplay wichtig) Letzlich ist Physx eine API, wie Havok,kann! auch ohne entsprechende Hardware komplett auf der CPU berechnet werden,wenn das Spiel dafür programmiert ist. Du solltest damit solche Spiele funktionieren,auch wenn du die Hardware nicht hast,immer Physx mit installieren, da jedes Spiel unterschiedliche Physx Versionen/Bibliothen hat. Beispiele kann man hier sehen: http://www.pcgameshardware.de/PhysX-Software-229957/Videos/Spiele-mit-und-ohne-Physx-Nvidia-zeigt-Vergleichsvideo-1122240/

...zur Antwort