gl.attachShader 不是对象
gl.attachShader is not an object
我已将 webGL2 添加为 canvas 的上下文,但出现错误提示:
Uncaught TypeError: Failed to execute 'attachShader' on 'WebGL2RenderingContext': parameter 2 is not of type 'WebGLShader'.
at CreateProgram (index.html:88)
at index.html:107
我也:
- 尝试在 "canvas.getContext..."
上使用 "webgl" 而不是 "webgl2"
我正在按照这里的教程进行操作:https://webgl2fundamentals.org/webgl/lessons/webgl-fundamentals.html
完整代码:
https://drive.google.com/file/d/1Nl10-ZEP8JujGXMwHHVGaDF6KdhvZcfg/view?usp=sharing
此处发现问题:
function CreateProgram(gl,vertexShader,fragmentShader) {
var program = gl.createProgram();
gl.attachShader(program, vertexShader);
gl.attachShader(program, fragmentShader);
gl.linkProgram(program);
var success = gl.getProgramParameter(program,gl.LINK_STATUS);
if(success) {
return program;
}
//Else delete program
console.log(gl.getProgramInfoLog(program));
gl.deleteProgram(program);
}
您的 GLSL 片段存在语法错误,导致类型错误。
注意第47行
你应该使用 outColour = vec4(1,0,0.5,1);
而不是 outColour = vec4{1,0,0.5,1};
我已将 webGL2 添加为 canvas 的上下文,但出现错误提示:
Uncaught TypeError: Failed to execute 'attachShader' on 'WebGL2RenderingContext': parameter 2 is not of type 'WebGLShader'.
at CreateProgram (index.html:88)
at index.html:107
我也:
- 尝试在 "canvas.getContext..." 上使用 "webgl" 而不是 "webgl2"
我正在按照这里的教程进行操作:https://webgl2fundamentals.org/webgl/lessons/webgl-fundamentals.html
完整代码:
https://drive.google.com/file/d/1Nl10-ZEP8JujGXMwHHVGaDF6KdhvZcfg/view?usp=sharing
此处发现问题:
function CreateProgram(gl,vertexShader,fragmentShader) {
var program = gl.createProgram();
gl.attachShader(program, vertexShader);
gl.attachShader(program, fragmentShader);
gl.linkProgram(program);
var success = gl.getProgramParameter(program,gl.LINK_STATUS);
if(success) {
return program;
}
//Else delete program
console.log(gl.getProgramInfoLog(program));
gl.deleteProgram(program);
}
您的 GLSL 片段存在语法错误,导致类型错误。
注意第47行
你应该使用 outColour = vec4(1,0,0.5,1);
而不是 outColour = vec4{1,0,0.5,1};