Vacsina enginov (neviem, ako to prelozit) vie pracovat ako s DX, tak aj s OpenGL, cize v tom problem nebude. Problem ale nastava pri pisani shaderov, bez ktorych sa ziadna moderna hra nezaobide. Je sice moznost pisat ich v Cg, ale to nie je ono, takze na vyber je bud pisat v HLSL pre DX alebo v GLSL pre OpenGL. Vacsina vyvojarskych studii je leniva pisat obe verzie, takze proste napisu len HLSL (kedze ich cielovka je Windows/Xbox) a hra potom bezi len pod DX.
Cize nie je to o moznostiach alebo lahkosti prace s danymi API, ale len cisto o lenivosti.
Musim sa priznat, ze objektivne neviem posudit. Ono to dost zalezi od samotneho pristupu programatora. Povodne OpenGL funguje ako stavova masina, do ktorej sa tlacia nejake stavy a medzi to sa posielaju nejake prikazy, ktore sa vacsinou okamzite realizuju. Cize je dolezite optimalizovat kod uz priamo pri pisani, kedze poradie prikazov moze velmi vyrazne ovplyvnovat vykon. Pre ludi, ktori nie su odchovani na cistom C a ASM to moze byt casto nepohodlne.
DX zasa prinasa objektovy pristup ku vsetkemu, takze casto je menej narocne produkovat pomerne rychlo beziaci kod, aj ked na druhu stranu neumoznuje sa vyhrat s optimalizaciou.
OpenGL od verzie 3 (resp. OpenGL ES 2) prinasa to najlepsie z toho pristupu, pricom zachovava aj niektore dobre stare vlastnosti. Niektori DX programatori tvrdia, ze s novym OpenGL sa im pracuje lepsie, niektori to odsudzuju este viac ako povodny pristup. Je to proste zlozite.
Kazdopadne, sam Carmack kedysi davno volil prave OpenGL pre svoje hry, nasledne povedal, ze mu pripada DX lepsie a presiel na to, potom sa opat vratil k OpenGL a tak dookola. Z mojho laickeho pohladu (kodim v tom uz roky rokuce, ale nic som este realne nenaprogramoval) sa mi OpenGL 3 pozdava najviac a robi sa mi s tym najprijemnejsie. Co sa tyka vykonu (win masina, nvidia karta), tak dokazem v OpenGL napisat rychlejsi kod ako v DX, ale ide o pomerne jednoduche veci. Ak by som skusil nieco zlozitejsie, tak mozno narazim na vykonnostny strop jednej alebo druhej technologie.
Zhrniem to teda tak, ze podla mna pri zvoleni spravneho programatorskeho pristupu daju vo vysledku obe technologie rovnaky vysledok, ale bezny programator asi viac vytrieska z DX v tomto momente.