Tôi là một chút mới sang HTML và Javascript và trong html của tôi, tôi có đoạn mã sau:JS - Undeclared định: 'var' trong kịch bản 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>
Tuy nhiên, nó sẽ trả
Failed to compile shader: ERROR: 0:13: 'var' : undeclared identifier
ERROR: 0:13: 'm' : syntax error
Tôi không được phép khai báo/xác định các biến bên trong thẻ tập lệnh trong HTML?
Mặc dù nó là một phần tử 'script', nó không được xử lý như một vì bạn đã chỉ định giá trị' type' tùy chỉnh, nó được xử lý bởi trình biên dịch 'shader' trong đó' var' không phải là cú pháp hợp lệ do đó lỗi. –
Ah, tôi hiểu rồi. Cảm ơn lời giải thích! – TacoB0t