我有以下片段着色器:
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;
}
我知道这个着色器没有多大意义,但它仍然应该运行正确,我尝试重现它的问题。当我用 Xcode OpenGL-ES 分析器分析这个着色器时,它显示一个错误:
隐式转换溢出,lowp float 的最小范围为 (-2,2)
它不仅显示此错误,而且渲染输出也因溢出而损坏。所以它不仅仅是分析仪的误报,它实际上溢出了。
谁能向我解释为什么 dis 会产生溢出,尽管我到处都选择了 highp ?