Zitat von
chuckylein:
ich will mich nicht als Besserwisser hinstellen, aber Vertex und pixelshader werden bei DX auch erst ab einer DX8 fähigen Graka unterstützt
Natürlich, denn es handelt sich um ein DX8-Feature, wenngleich es für Vertexshader eine beschränkte Emulation gibt.
Dein letzter Punkt mag generell stimmen, für mich trifft er aber nicht zu da ich Visual-C++-Programmierer bin ;c) (und, wie du annahmst, D3D-Programmierer - ich habe aber auch schon mit
OpenGL gearbeitet und fand den Code, der dabei rauskommt, eher unsauber.)
Carmack bleibt bei
OpenGL, weil er sich damit sehr gut auskennt und die meisten id-Spiele auch unter Linux laufen sollen. Da er im Moment noch auf
OpenGL 1.3 geht, hätte er genauso gut (eigentlich besser) Direct3D nehmen können, weil
OpenGL 1.3 per Standard keine Shader o.ä. unterstützt, sondern nur per Extensions, während Direct3D wie gesagt bereits die High Level Shader Language implementiert hat.
Das ARB gibt ja schließlich selbst zu, dass es selbst für
OpenGL 2.0 schwierig wird, zu Direct3D 9 aufzuschließen, und
OpenGL 1.3 kommt ohnehin nur an Direct3D 7 an wg. der Fixed Function Pipeline.
Aber wie dem auch sei, so lange beide Schnittstellen weiterentwickelt werden, kann jeder verwenden, was er lieber mag. Ich empfehle dennoch, beides mal auszuprobieren, dann weiß man wenigstens, warum einem die eine Schnittstelle besser liegt...