【发布时间】:2020-11-01 09:48:09
【问题描述】:
我正在尝试将一些 OpenGL 代码移植到 WebGL2,但我遇到了 Uniform Buffers 的一些问题。我使用缓冲区附加到的着色器渲染的所有内容都不再显示。我在控制台中没有收到任何错误或警告。这是我的代码:
var data = new Float32Array(1);
data[0] = 1.0;
var uniformBuffer = gl.createBuffer();
gl.bindBuffer(gl.UNIFORM_BUFFER, uniformBuffer);
gl.bufferData(gl.UNIFORM_BUFFER, 4, gl.STATIC_DRAW);
gl.bindBufferRange(gl.UNIFORM_BUFFER, 0, uniformBuffer, 0, 4);
gl.uniformBlockBinding(mapShader.getProgram(), gl.getUniformBlockIndex(mapShader.getProgram(), "test"), 0);
gl.bindBuffer(gl.UNIFORM_BUFFER, uniformBuffer);
gl.bufferSubData(gl.UNIFORM_BUFFER, 0, data);
gl.bindBuffer(gl.UNIFORM_BUFFER, null);
一旦我将它添加到我的着色器中,我之前描述的问题就会出现:
layout (std140) uniform test {
float testFloat;
};
【问题讨论】:
标签: javascript webgl webgl2