Quiero tener la misma fuente de sombreado para OpenGL ES y OpenGL (Windows). Para hacer esto, quiero definir tipos de datos personalizados y usar solo funciones de OpenGL ES.OpenGL ES y sombreadores compatibles con OpenGL
Un método consiste en definir:
#define highp
#define mediump
#define lowp
para Windows shader y escribir el shader como lo es para OpenGL ES.
Otro enfoque es definir tipos de datos personalizados como este para OpenGL ES:
#define hvec2 highp vec2
y como este para Windows
#define hvec2 vec2
¿Qué le parece que es mejor? ¿Tienes otras soluciones para este problema?
¿Alguien sabe cómo funciona esto? He revisado la especificación pero no he podido encontrar nada relacionado con la compatibilidad de GLSL ES (versión 100) y GLSL (versión 150). –
Para referencia futura, descubrí que en ES2_compatibility, un contexto OpenGL 3.2> puede cargar sombreadores ES 2.0 con #version 100 en la parte superior. –