Це залежить від того, що ти робиш. Якщо ви використовуєте Direct3D, єдиною причиною переключення є доступ до апаратних функцій, які ви не можете отримати в іншому випадку.
Для 2D гри теоретично можливо, що певні функції можуть вас зацікавити. Наприклад, OpenCL або DirectCompute. Цивілізація V отримує деяке використання від DirectCompute для декомпресії текстур. Це різко скорочує час завантаження, оскільки воно має завантажувати лише стислі дані. І 2D ігри часто мають багато зображень. Якщо час завантаження - це проблема, це може допомогти.
OpneCL має бути доступним на всіх пристроях GeForce 8xxx та вище. На ATI він доступний на HD 4xxx та кращому обладнанні.
Я б сказав, що найбільша функція, яку ви можете використовувати в DX11, - це можливість більш довільно читати і записувати зображення в шейдерах. Це може бути корисним для певних спеціалізованих ефектів. Зараз я не можу придумати жодного ... що повинно сказати вам, наскільки це можливо.
Взагалі, я б сказав, що якщо ви використовуєте D3D, ви, ймовірно, не наберете багато. І якщо ви вже не розумієте, що таке нові функції, і хочете використовувати їх у своїй грі, ви майже точно не наберете багато. Більшість із них будуть складнішими.
OpenGL відрізняється однією з основних причин. OpenGL 2.1 (більш-менш еквівалентно D3D9) засмоктує в якості API. OpenGL 3.3 (плюс деякі новіші розширення, що працюють на апаратному забезпеченні 3.3) значно покращує API. Явне розташування атрибутів, розділення програм шейдерів, все , що є в мові 420 затінення , тощо.
Деякі з них працюють досить добре у формі розширення проти 2.1. Деякі з них ... ні. Я все ще не впевнений, чи нормально використовувати явні атрибути з attribute
деклараціями (перед поточним in
синтаксисом). Мовний пакет 420 затінення спеціально говорить, що він не працює з версіями GLSL до 1.30 (він же: OpenGL 3.0).
Це не означає, що GL 2.1 є непридатним. Це звичайно функціонально і справно, просто не приємно. Хоча деякі драйвери, які ви знайдете, що реалізуєте це , не корисні. Апаратне забезпечення DX9 ATI вже не підтримується, тому ці драйвери насправді неполадки. І Intel ніколи не піклувалася про OpenGL, тому використання шейдерів на їх апараті є удачею.
Але особисто, якщо ваша призначена база користувачів дозволяє це, я б перейшов до GL 3.3, якщо ви використовуєте OpenGL. Якщо ні, то вам просто доведеться розібратися з питаннями 2.1.