Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 表面消除在我的webgl代码中不正确_Javascript_Opengl Es_Webgl_Depth Buffer - Fatal编程技术网

Javascript 表面消除在我的webgl代码中不正确

Javascript 表面消除在我的webgl代码中不正确,javascript,opengl-es,webgl,depth-buffer,Javascript,Opengl Es,Webgl,Depth Buffer,三个三角形绕y轴顺时针旋转。但是,当三角形重叠时,存在一些“曲面消除”问题。一直以来,前面只剩下一个三角形。我已经启用了或ED、深度缓冲区位和深度任务,因此深度缓冲区是可写的。但这并不能解决我的问题 我无法在这里粘贴完整项目的代码,但我可以提供下面的绘图功能 function draw() { if (objects.length != 0) { gl.clearColor(0, 0, 0, 1) gl.depthMask(true) gl.clear(gl.COL

三个三角形绕y轴顺时针旋转。但是,当三角形重叠时,存在一些“曲面消除”问题。一直以来,前面只剩下一个三角形。我已经启用了
ED、
深度缓冲区位
深度任务
,因此深度缓冲区是可写的。但这并不能解决我的问题

我无法在这里粘贴完整项目的代码,但我可以提供下面的绘图功能

function draw() {

  if (objects.length != 0) {
    gl.clearColor(0, 0, 0, 1)
    gl.depthMask(true)
    gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)

    for (var index = 0; index < objects.length; index++) {
      gl.uniformMatrix4fv(program.perspectivePointer, false, program.perspectiveMatrix)
      gl.uniformMatrix4fv(program.worldTransformPointer, false, program.worldTransformMatrix)
      gl.bindBuffer(gl.ARRAY_BUFFER, masterVertexBuffer)
      gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(objects[index].getVertexList()), gl.STATIC_DRAW)
      gl.bindBuffer(gl.ARRAY_BUFFER, colorBuffer)
      gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(objects[index].getColorList()), gl.STATIC_DRAW)
      gl.drawArrays(gl.TRIANGLE_STRIP, 0, 3)
    }
  }
  requestAnimationFrame(draw, program)
}
函数绘图(){
如果(objects.length!=0){
gl.clearColor(0,0,0,1)
总帐深度任务(真实)
总图清除(总图颜色缓冲区位总图深度缓冲区位)
对于(var index=0;index
如果需要的话,请索要其他物品。 我也尝试过深度排序,但没有成功。

gl.enable(gl.depth\u测试)。但这只是一个猜测;这个问题需要完整的代码发布在这里。如果它太长,简化它以显示问题。你说的“表面消除”是指Z战斗吗?