Depende do que você está fazendo. Se você estiver usando o Direct3D, o único motivo para mudar é obter acesso aos recursos de hardware que você não pode obter de outra maneira.
Para um jogo em 2D, é teoricamente possível que certos recursos possam interessá-lo. Por exemplo, OpenCL ou DirectCompute. O Civilization V aproveita o DirectCompute para descomprimir as texturas. Isso reduz drasticamente o tempo de carregamento, porque ele só precisa carregar dados compactados. E os jogos 2D geralmente têm muitas imagens. Se o tempo de carregamento for um problema, isso pode ajudar.
O OpneCL deve estar disponível em todo o hardware GeForce 8xxx e acima. Na ATI, está disponível no HD 4xxx e em hardware melhor.
Eu diria que o maior recurso que você pode usar no DX11 é a capacidade de ler e gravar arbitrariamente imagens em shaders. Isso pode ser útil para certos efeitos especializados. Não consigo pensar em nada agora ... o que deve lhe dizer a probabilidade de isso ser importante.
Em geral, eu diria que se você estiver usando o D3D, provavelmente não ganhará muito. E se você ainda não entende quais são os novos recursos e deseja usá-los em seu jogo, quase certamente não ganhará muito. A maioria deles será mais complexa.
O OpenGL é diferente por um dos principais motivos. O OpenGL 2.1 (o equivalente mais ou menos ao D3D9) é uma porcaria como uma API. O OpenGL 3.3 (além de algumas extensões mais recentes executadas no hardware 3.3) melhora bastante a API. Localização explícita de atributos, separação de programas de sombreador, tudo no pacote de idiomas de sombreamento 420 e assim por diante.
Alguns deles funcionam bem em extensão contra 2.1. Alguns deles ... não. Ainda não tenho certeza se não há problema em usar locais de atributos explícitos com attribute
declarações (antes da in
sintaxe atual ). O pacote de idiomas de sombreamento 420 diz especificamente que ele não funciona com as versões GLSL anteriores à 1.30 (aka: OpenGL 3.0).
Isso não quer dizer que o GL 2.1 seja inutilizável. É certamente funcional e reparável, mas não agradável. Embora alguns drivers que você implementa não sejam reparáveis. O hardware DX9 da ATI não está mais sendo suportado, portanto esses drivers são realmente ruins. E a Intel nunca se importou com o OpenGL, então usar shaders em seu hardware é uma questão de sorte.
Mas, pessoalmente, se sua base de usuários pretendida permitir, eu passaria para o GL 3.3 se você estiver usando o OpenGL. Caso contrário, você apenas terá que lidar com os problemas do 2.1.
Somente os sombreadores de geometria são um motivo para usar o D3D10 / 11, se você planeja ter um grande número de partículas ou sprites.
O DirectCompute também pode ser usado para obter alguns bons benefícios de velocidade.
Pessoalmente, simplesmente ter a API mais limpa e agradável do D3D10 / 11 é motivo suficiente para nunca mais tocar no D3D9 ou no OpenGL novamente para projetos modernos apenas para Windows. Realisticamente, porém, a necessidade de segmentar dispositivos móveis com GL | ES e a multidão ainda considerável de WinXP exige evitar o D3D10 / 11 e aderir ao D3D9 ou ao OpenGL.
Observe que seguir a rota do OpenGL permite obter shaders de geometria, OpenCL e outros recursos de hardware mais novos, mesmo no WinXP.
fonte