我正在一個WebGL的實驗即完成後,將有希望可播放的合成器「浮動的常量lowp 3成分的矢量」:WebGL的iOS的錯誤:分配非恆定到
https://mysterypancake.github.io/Waveform
問題是,我在着色器上很垃圾。我的着色器都是純文本的位置:
https://github.com/MysteryPancake/Waveform/blob/master/scripts/Shader.js
問題在於液滴片段着色器:
void main(void) {
lowp vec2 circCoord = 2.0 * gl_PointCoord - 1.0;
if (dot(circCoord, circCoord) > 1.0) discard;
const lowp vec3 lightDir = normalize(vec3(0, -1, -0.5));
const lowp vec3 ambient = vec3(0.5, 0.2, 0.1);
const lowp vec3 lightDiffuse = vec3(1, 0.5, 0.2);
lowp vec3 normal = vec3(circCoord, sqrt(1.0 - dot(circCoord, circCoord)));
lowp float color = max(dot(normal, lightDir), 0.0);
gl_FragColor = vec4(ambient + lightDiffuse * color, 1);
}
在iOS上,這個shader給了我這個錯誤:
ERROR: 0:5: '=': assigning non-constant to 'const lowp 3-component vector of float'
我無法弄清楚如何解決這個問題。我甚至不能搞清楚,如果這指的是7號線:
lowp vec3 normal = vec3(circCoord, sqrt(1.0 - dot(circCoord, circCoord)));
或線路8:
lowp float color = max(dot(normal, lightDir), 0.0);
錯誤消息menas,您將一個非常量值賦值給用'const'聲明的變量值。也許是這一行:'const lowp vec3 lightDir = normalize(vec3(0,-1,-0.5));' - 嘗試它沒有'const'。 – Rabbid76
@ Rabbid76非常感謝你,這真的有用!你可以添加這個答案,以便我可以接受它嗎? – MysteryPancake
不客氣。 – Rabbid76