gpt4 book ai didi

javascript - 程序无效且属性设置不正确

转载 作者:行者123 更新时间:2023-11-30 17:39:40 24 4
gpt4 key购买 nike

这是我初始化程序的代码;

function initializeProgram() {
vertexShader = util.createShader(gl.VERTEX_SHADER, vertexShaderSource);
fragmentShader = util.createShader(gl.FRAGMENT_SHADER, fragmentShaderSource);
shaderList = [vertexShader, fragmentShader];

shaderProgram = util.createProgram(shaderList);
}

这是我的循环;

function loop() {
gl.clearColor(1.0, 1.0, 1.0, 1.0);
gl.clear(gl.COLOR_BUFFER_BIT);

gl.useProgram(shaderProgram);

gl.bindBuffer(gl.ARRAY_BUFFER, positionBufferObject);
gl.enableVertexAttribArray(0);
gl.vertexAttribPointer(0, 4, gl.FLOAT, gl.FALSE, 0, 0);

gl.drawArrays(gl.TRIANGLES, 0, 3);

gl.disableVertexAttribArray(0);
}

我在这里遇到的问题是在两个点上出现两个错误;

gl.useProgram(shaderProgram); // WebGL: INVALID_OPERATION: useProgram: program not valid

gl.drawArrays(gl.TRIANGLES, 0, 3); // WebGL: INVALID_OPERATION: drawArrays: attribs not setup correctly

我不确定为什么会收到这些警告,我一直在尝试将 C OpenGL 移植到 WebGL,所以我的主要猜测是存在命名/参数差异

完整代码位于;

script.js - http://pastebin.com/zYyQY3Biutil.js - http://pastebin.com/ihEFQxaB

最佳答案

gl.useProgram(shaderProgram); 
// WebGL: INVALID_OPERATION: useProgram: program not valid

很可能意味着您的着色器没有编译,因为它们有错误。你可以得到错误

gl.getShaderInfoLog(shader)

也有可能

gl.getProgramInfoLog(program);

他们每个人都返回一个字符串,所以这样的事情很常见

if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) (
console.log(gl.getShaderInfoLog(shader));
// exit? alert?
}

关于javascript - 程序无效且属性设置不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21354676/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com