Ich habe folgendes Fragment-Shader:GLSL ES Präzision Fehler und überläuft
precision highp float;
varying highp vec2 vTexCoord;
uniform sampler2D uColorTexture;
void main() {
highp vec4 tmp;
tmp = ((texture2D (uColorTexture, vTexCoord) + texture2D (uColorTexture, vTexCoord))/2.0);
gl_FragColor = tmp;
}
Ich weiß, das Shader nicht viel Sinn machen, aber es sollte noch richtig laufen und ich versuche, ein Problem damit zu reproduzieren. Wenn ich diesen Shader mit dem Xcode OpenGL-ES-Analysator analysieren zeigt es einen Fehler:
Overflow in implicit conversion, minimum range for lowp float is (-2,2)
und es zeigt nicht nur diesen Fehler, auch die Rendering-Ausgabe gebrochen zu überläuft tun. Es ist also nicht nur ein falsches positives Ergebnis vom Analysator, das tatsächlich überläuft.
Kann mir jemand erklären, warum Dis einen Überlauf erzeugt, obwohl ich überall Highp gewählt habe?