Shaders y múltiples render backends

Uno de los problemas de tener un motor que permite usar D3D y OpenGL es que no hay forma de asegurarse que los shaders funcionen bien en ambos. El caso es que si usas GLSL, no funcionará en Direct3D y si usas HLSL, lo mismo. En teoría Cg es neutro, porque proporciona varios perfiles. En la vida real, solo hay compatibilidad asegurada entre tarjetas/APIs cuando usas el perfil más básico, de shader model 2 hacia arriba te puedes encontrar que, casualmente, las cosas no funcionan en una ATI. La solución es brindar programas Cg para diferentes perfiles, lo cual, me parece a mí, es un lío.
La otra solución, suponiendo que estés escribiendo tu propio motor, es usar un solo API: OpenGL o Direct 3D. En ambos casos es un poco limitado.

Comentarios

  1. me quedo con OpenGl por temas de portabilidad recorda que hay una especificacion esta para celulares

    ResponderEliminar

Publicar un comentario