Ich möchte die gleiche Shader-Quelle für OpenGL ES und OpenGL (Windows) haben. Dazu möchte ich benutzerdefinierte Datentypen definieren und nur OpenGL ES-Funktionen verwenden.OpenGL ES und OpenGL kompatible Shader
Ein Ansatz ist, zu definieren:
#define highp
#define mediump
#define lowp
für Windows-Shader und den Shader zu schreiben, wie es für OpenGL ES ist.
Andere Ansatz ist, um benutzerdefinierte Datentypen, wie dies für OpenGL ES zu definieren:
#define hvec2 highp vec2
und wie diese für Windows
#define hvec2 vec2
Was denken Sie, ist besser? Haben Sie andere Lösungen für dieses Problem?
Weiß jemand, wie das funktioniert? Ich habe die Spezifikation überflogen, konnte aber nichts darüber finden, wie eine GLSL ES (Version 100) und GLSL (Version 150) überhaupt kompatibel wären. –
Für zukünftige Referenz entdeckte ich, dass unter OpenScape ES2_compatibility ein OpenGL 3.2> Kontext ES 2.0 Shader mit #version 100 an der Spitze laden kann. –