Depende de lo que estés haciendo. Si está utilizando Direct3D, la única razón para cambiar es obtener acceso a las funciones de hardware que de otro modo no podría obtener.
Para un juego en 2D, es teóricamente posible que ciertas características puedan interesarle. Por ejemplo, OpenCL o DirectCompute. Civilization V obtiene algún uso de DirectCompute para descomprimir texturas. Esto reduce drásticamente el tiempo de carga, ya que solo tiene que cargar datos comprimidos. Y los juegos 2D a menudo tienen muchas imágenes. Si el tiempo de carga es un problema, esto podría ayudar.
OpneCL debería estar disponible en todo el hardware GeForce 8xxx y superior. En ATI, está disponible en HD 4xxx y mejor hardware.
Diría que la característica más importante que puede usar en DX11 es la capacidad de leer y escribir imágenes de forma más arbitraria en sombreadores. Eso podría ser útil para ciertos efectos especializados. No puedo pensar en ninguna en este momento ... que debería decirle qué tan probable es que esto sea importante.
En general, diría que si estás usando D3D, probablemente no ganarás mucho. Y si aún no comprende cuáles son las nuevas funciones y desea utilizarlas en su juego, seguramente no ganará mucho. La mayoría de ellos serán más complejos.
OpenGL es diferente por una razón importante. OpenGL 2.1 (el equivalente más o menos a D3D9) apesta como API. OpenGL 3.3 (más algunas extensiones más recientes que se ejecutan en hardware 3.3) mejora mucho la API. Ubicación explícita de atributos, separación de programas de sombreado, todo en el paquete de idioma de sombreado 420 , etc.
Algunos de estos funcionan lo suficientemente bien en forma de extensión contra 2.1. Algunos de ellos ... no lo hacen. Todavía no estoy seguro de si está bien usar ubicaciones de atributos explícitas con attribute
declaraciones (antes de la in
sintaxis actual ). El paquete de idioma de sombreado 420 dice específicamente que no funciona con versiones GLSL anteriores a 1.30 (también conocido como: OpenGL 3.0).
Eso no quiere decir que GL 2.1 sea inutilizable. Ciertamente es funcional y útil, simplemente no es agradable. Aunque algunos controladores que encontrará que lo implementan no son reparables. El hardware DX9 de ATI ya no es compatible, por lo que esos controladores son realmente defectuosos. E Intel nunca se preocupó por OpenGL, por lo que usar sombreadores en su hardware es una suerte.
Pero personalmente, si su base de usuarios prevista lo permite, me inclinaría a GL 3.3 si está utilizando OpenGL. Si no, solo tendrá que lidiar con los problemas 2.1.
Los sombreadores de geometría por sí solos son una razón para usar D3D10 / 11, si planea tener una gran cantidad de partículas o sprites.
DirectCompute también se puede usar para obtener buenos beneficios de velocidad.
Personalmente, simplemente tener la API mucho más limpia y agradable de D3D10 / 11 es razón suficiente para no volver a tocar D3D9 u OpenGL nuevamente para cualquier proyecto moderno solo para Windows. Sin embargo, de manera realista, la necesidad de apuntar a dispositivos móviles con GL | ES y la multitud aún considerable de WinXP requiere evitar D3D10 / 11 y adherirse a D3D9 u OpenGL.
Tenga en cuenta que seguir la ruta OpenGL le permite obtener sombreadores de geometría, OpenCL y otras características de hardware más recientes, incluso en WinXP.
fuente