javascript - WebGL渲染忽略位置?

标签 javascript webgl

我一直在关注learningwebgl.com,并在3D part of the tutorial上遇到了一些问题。 。据我所知,我已经完成了相同的代码,但由于某种原因我无法让它工作。两个三 Angular 形均已渲染,但其中一个三 Angular 形的颜色会渗透到另一个三 Angular 形中。 Here is a simplified version只有两种颜色和两个三 Angular 形。如果我的代码有任何问题,请告诉我。谢谢!

下面是我将数据加载到着色器的代码。

 //initialize buffer objects
triangleVertexPositionBuffer = gl.createBuffer();
gl.bindBuffer(gl.ARRAY_BUFFER, triangleVertexPositionBuffer);
gl.bufferData(
    gl.ARRAY_BUFFER,
    new Float32Array([
        0.0, 1.0, 0.0,
        -1.0, -1.0, 1.0,
        1.0, -1.0, 1.0,
        0.0, 1.0, 0.0,
        1.0, -1.0, 1.0,
        1.0, -1.0, -1.0
    ]),
gl.STATIC_DRAW);
triangleVertexPositionBuffer.itemSize = 3;
triangleVertexPositionBuffer.numItems = 6;


triangleVertexColorBuffer = gl.createBuffer();
gl.bindBuffer(gl.ARRAY_BUFFER, triangleVertexColorBuffer);
gl.bufferData(
gl.ARRAY_BUFFER,
new Float32Array([
        // front face
        1.0, 1.0, 0.0, 1.0,
        1.0, 1.0, 0.0, 1.0,
        1.0, 1.0, 0.0, 1.0,
        1.0, 0.0, 0.0, 1.0,
        1.0, 0.0, 0.0, 1.0,
        1.0, 0.0, 0.0, 1.0
    ]),
gl.STATIC_DRAW);
triangleVertexColorBuffer.itemSize = 4;
triangleVertexColorBuffer.numItems = 6;

最佳答案

问题是 OP 没有启用深度测试。不要忘记启用它:P。

关于javascript - WebGL渲染忽略位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32288187/

相关文章:

javascript - 未捕获的类型错误 : Cannot read property 'openModal' of undefined at onClick React

image - WebGL - 如何渲染大纹理?

javascript - 如何加载外部文件并确保它首先在 JSFiddle 中运行?

javascript - 所有 ajax 调用完成后的事件

Javascript:.push 不是函数

opengl-es - 实例化在 webgl 中做什么

WebGL:是否禁止在顶点着色器和片段着色器中绑定(bind)相同的制服?

memory-management - 删除 WebGL 上下文

javascript - 微信(WebGL)小游戏无法在设备上运行,但可以在 devtool 中运行

javascript - 使用 jQuery 为元素设置动画并调用 stop()