Durch C# bist du sowieso mehr oder weniger an Windows gebunden
Das ist doch totaler Quatsch. Mit Mono kannst du auf fast jeder Plattform programmieren. So weit ich weiß sogar auf mehr als mit Java. Da wären: Windows, Windows Phone 7, Xbox, OSX / iOS, Android, Linux, Chromes Native Client...
Das ist mir bewusst. Aber soweit ich weiß, gibt keine wirklich vollwertige alternative Implementierung des .NET Framework. Man kann auf anderen Plattformen also nur in eher begrenztem Umfang mit C# arbeiten, darum das "mehr oder weniger"...
EDIT: Wobei ich grad seh, dass Mono da offenbar doch schon sehr weit gediehen ist, das find ich natürlich toll
ist imo die bei weitem bessere API
Das einzige was besser ist, ist dass die API mehr High-Level Schnittstellen hat. Dafür eignet sich aber doch eigentlich viel besser ein Framework, dann hast du High-Level und Low-Level Schnittstellen. Und dann steht OpenGL DirectX auch in nichts mehr nach.
http://www.geeks3d.com/20100825/why-open…or-to-direct3d/ (Ok, schon etwas älter)
DirectX hatte doch seine beste Zeit...
Das seh ich anders. Vor allem was die High-Level Schnittstellen angeht liegst du imo falsch; OpenGL ist in vielen Bereichen (z.B. Buffer Management) sogar abstrakter als D3D.
Weil ich diese Diskussion grad vor ein paar Tagen
schonmal geführt hab, zitier ich mich jetzt einfach mal zu ein paar Punkten, die mir da spontan einfallen würden:
Ok. Anstatt mit "Tatsachen" um mich zu werfen, hier vielleicht ein paar Argumente was OpenGL angeht:
Pro
- Bedingt Portabel
- Man bekommt sehr schnell was gezeichnet (allerdings kommt man auf dem dabei notwendigerweise beschrittenem Weg nicht sehr weit)
Contra
- Es gibt kaum aktuelles Material im Internet, bzw. es ist, vor allem für einen Anfänger, sehr schwer aktuelles von all dem hoffnungslos veralteten Kram zu unterscheiden.
- Das Objektmodell ist schwer kaputt
- Globale Statemachine
- Multidisplay wird zum Alptraum
- Multithreaded Rendering kannst du praktisch knicken
- Es ist auch nach über 10 Jahren immer noch nicht möglich, Shader offline zu kompilieren.