Itu tergantung pada apa yang Anda lakukan. Jika Anda menggunakan Direct3D, satu - satunya alasan untuk beralih adalah untuk mendapatkan akses ke fitur perangkat keras yang tidak bisa Anda dapatkan sebaliknya.
Untuk gim 2D, secara teori dimungkinkan bahwa fitur tertentu mungkin menarik bagi Anda. Misalnya, OpenCL atau DirectCompute. Civilization V mulai memanfaatkan DirectCompute untuk mendekompresi tekstur. Ini secara dramatis mengurangi waktu pengambilan, karena hanya memuat data yang dikompresi. Dan game 2D sering memiliki banyak gambar. Jika waktu buka adalah masalah, ini mungkin membantu.
OpneCL harus tersedia di semua perangkat keras GeForce 8xxx ke atas. Pada ATI, tersedia di HD 4xxx dan perangkat keras yang lebih baik.
Saya akan mengatakan fitur terbesar yang mungkin Anda gunakan di DX11 adalah kemampuan untuk lebih banyak membaca dan menulis gambar secara acak dalam shader. Itu bisa berguna untuk efek khusus tertentu. Saya tidak bisa memikirkan apa pun sekarang ... yang seharusnya memberi tahu Anda seberapa besar kemungkinan ini menjadi penting.
Secara umum, saya akan mengatakan bahwa jika Anda menggunakan D3D, Anda mungkin tidak akan mendapatkan banyak. Dan jika Anda belum memahami apa saja fitur-fitur baru itu dan ingin menggunakannya dalam gim Anda, Anda hampir pasti tidak akan mendapatkan banyak. Kebanyakan dari mereka akan menjadi lebih kompleks.
OpenGL berbeda karena satu alasan utama. OpenGL 2.1 (kurang lebih setara dengan D3D9) mengisap sebagai API. OpenGL 3.3 (ditambah beberapa ekstensi baru yang berjalan pada perangkat keras 3.3) banyak meningkatkan API. Lokasi atribut eksplisit, pemisahan program shader, semuanya dalam paket bahasa shading 420 , dan sebagainya.
Beberapa di antaranya berfungsi cukup baik dalam bentuk ekstensi terhadap 2.1. Beberapa dari mereka ... tidak. Saya masih tidak yakin apakah boleh menggunakan lokasi atribut eksplisit dengan attribute
deklarasi (sebelum in
sintaksis saat ini ). Paket bahasa Shading 420 secara khusus mengatakan bahwa itu tidak bekerja dengan versi GLSL sebelum 1,30 (alias: OpenGL 3.0).
Itu tidak mengatakan bahwa GL 2.1 tidak dapat digunakan. Ini tentu fungsional dan bisa digunakan, hanya saja tidak menyenangkan. Meskipun beberapa driver yang Anda temukan mengimplementasikannya tidak dapat diperbaiki. Perangkat keras AT9 DX9 tidak lagi didukung, sehingga driver-driver tersebut benar-benar bermasalah. Dan Intel tidak pernah peduli dengan OpenGL, jadi menggunakan shader pada perangkat keras mereka adalah keberuntungan.
Tetapi secara pribadi, jika basis pengguna yang Anda inginkan memungkinkan, saya akan mendorong ke GL 3.3 jika Anda menggunakan OpenGL. Jika tidak, Anda hanya harus berurusan dengan masalah 2.1.
Shader geometri saja merupakan alasan untuk menggunakan D3D10 / 11, jika Anda berencana memiliki sejumlah besar partikel atau sprite.
DirectCompute juga dapat digunakan untuk beberapa manfaat kecepatan yang bagus.
Secara pribadi, hanya memiliki D3D10 / 11 API yang jauh lebih bersih dan lebih baik adalah alasan yang cukup untuk tidak pernah menyentuh D3D9 atau OpenGL lagi untuk proyek modern-Windows saja. Namun, secara realistis, kebutuhan untuk menargetkan perangkat seluler dengan GL | ES dan kerumunan WinXP yang masih cukup besar mengharuskan untuk menghindari D3D10 / 11 dan tetap menggunakan D3D9 atau OpenGL.
Perhatikan bahwa menggunakan rute OpenGL memungkinkan Anda mendapatkan geometri shader, OpenCL, dan fitur perangkat keras lainnya bahkan di WinXP.
sumber