Plattformunabhängigkeit in Grafikentwicklungen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Plattformunabhängigkeit in Grafikentwicklungen

    Hey zusammen,

    ich sitze gerade an meinem Projekt und habe hier und da parallel im Internet gelesen und gesurft. Da ich momentan überwiegend an OpenGL-Entwicklungen sitze, unter anderen auch für mein Projekt, bin ich auf den EINEN oder ANDERENArtikel gestoßen, der mich doch etwas nachdenklich gestimmt hat.

    Ein Grund, warum ich mich für OpenGL entschieden hatte, war die Plattformunabhängigkeit beziehungsweise die einfache Integration einer Anwendung, die auf OpenGL basiert, in ein anderes Betriebssystem, wie Linux oder OS X. Ich empfinde diese Stärke schon sehr vorteilhaft gegenüber DirectX, wobei ich früher anderer Ansicht war. Sicherlich versucht Microsoft die Entwickler in Richtung DirectX-API zu steuern, auch wegen der großen Verbreitung von Windows auf dem Markt/Einfluss und weil eine größere Community auch gleichzeitig größere Macht verspricht. Aber sollte ich mich als Entwickler deswegen auf DirectX einlassen? Früher empfand ich gerade DirectX wegen der massiven Unterstützung von Microsoft als sehr stark im Rennen, weit vor OpenGL. Heute weiß ich, dass dieser Vorsprung ja eigentlich nur durch ein gewisses finanzielles Potenzial generiert wurde, was der OpenGL-Entwicklung nicht zur Verfügung stand. Dennoch hat dieses API so ihre Probleme. Wobei gesagt sei, dass natürlich beide Seiten ihre ganz speziellen Vor- und Nachteile haben.

    Für mich stellt sicher gerade die Frage, auch weil ich noch sehr am Anfang von meinem jetzigen Projekt stehe, ob ich mich nicht vielleicht doch lieber auf DirectX verlassen sollte? Aber dann würde mir gerade die Plattformunabhängigkeit flöten gehen. Mal abgesehen davon, dass sich DirectX wirklich sehr spärlich im Code verhält.

    Was denkt ihr denn darüber?
    Natürlich unabhängig davon, in welcher API man sich "zu Hause" fühlt. :)

    Beste Grüße,
    SKiD.
  • Hi,

    vorweg ist zusagen, egal für welche Schnittstelle du dich entscheidetst, es würde einen späteren Wechseln sehr erleichtern.
    Ich hab mich für OpenGL entschieden, da ich mit OSX arbeite und keine Lust habe, immer auf Win zu booten :whistling:

    Spätestens wenn du mit OpenGL bei der Shaderprogrammierung GLSL angekommen bist, welche zu einem Großteil die fixed-function-pipeline ersetzt (OpenGL >3), erkennst du starke Parallelen vom DX Pendant HLSL.

    Ob es ein Vorteil ist, dass man bei DX alles in einem Boot hat? Bei OpenGL muss man sich um den Sound, den Input (GLUT, GLFW) und die Mathlibrary selber kümmern. Der Aufwand hält sich in Grenzen ;)


    OpenGL 3 & 4 wurden sehr stark "professionalisiert" und an DX angepasst. Viele Funktionen wurden als deprecated markiert und alles auf die Shader ausgelagert so, dass der Einstieg erschwert wurde und alle Anfänge meist über OpenGL 1.1 laufen, was einen verwirrt, dass man mit deprecated Funktionen und Techniken arbeitet, es aber trotzdem ratsam ist, damit zu starten :wacko: und es auch nicht schlimm ist, wenn man es bei der fixed function pipeline belässt, oder du einen Misch-Masch von allem benutzt.

    Da scheiden sich die Geister, warum das ARB so entschieden hat, aber das Nutzen der Funktionalität (die Unterstützung der Grafikkarten) ist trotzdem vorhanden geblieben.

    Ich würde mich für die Schnittstelle entscheiden, welche für dich am "entspanntesten" ist und wo du den besseren Einstieg findest. Wenn du den einmal gefunden hast, dann kannst du später auch immer noch switchen.