我是一个有点新的HTML和Javascript和我的HTML中,我有以下代码:JS - 未声明的标识:GLSL脚本 '变种'
<script id="fragmentShader" type="x-shader/x-fragment">
precision mediump float;
//varying vec3 fragmentColor; //not needed?
varying vec3 fragmentNormal;
varying vec3 fragmentLight;
varying vec3 fragmentView;
uniform vec3 modelColor;
uniform vec3 lightColor;
void main() {
var m = normalize(fragmentNormal);
var l = normalize(fragmentLight);
var v = normalize(fragmentView);
var h = normalize(l + v);
var d = Math.max(l * m , 0);
var s = Math.pow(Math.max(h * m, 0), 10);
fragmentColor = modelColor * lightColor * d + lightColor * s;
gl_FragColor = vec4(fragmentColor, 1.0);
}
</script>
然而,返回
Failed to compile shader: ERROR: 0:13: 'var' : undeclared identifier
ERROR: 0:13: 'm' : syntax error
我不允许在HTML中的脚本标记中声明/定义变量吗?
即使它是一个'script'元素,它不会作为一个处理,因为您已经指定了一个自定义的'type'值,而是由'shader'编译器处理,而'var'不是一个有效的语法从而出错。 –
啊,我明白了。感谢您的解释! – TacoB0t