Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.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
Three.js 3.网格被模型部分遮挡_Three.js - Fatal编程技术网

Three.js 3.网格被模型部分遮挡

Three.js 3.网格被模型部分遮挡,three.js,Three.js,我打算用一些颜色来填充两行和三行之间的空间。我试着用三个。从上往下看,它看起来很好,但如果从上往下看,则网格区域部分被阻塞()。其他三个.js对象(如红点和红线)不受模型的影响,而三个.mesh则会出错。以下是我对Three.mesh的代码: // push vertices geom.vertices.push((new THREE.Vector3()).fromArray(borepoint)); // add faces to mesh for(let i =0; i &

我打算用一些颜色来填充两行和三行之间的空间。我试着用三个。从上往下看,它看起来很好,但如果从上往下看,则网格区域部分被阻塞()。其他三个.js对象(如红点和红线)不受模型的影响,而三个.mesh则会出错。以下是我对Three.mesh的代码:

  // push vertices 
  geom.vertices.push((new THREE.Vector3()).fromArray(borepoint));
  // add faces to mesh
  for(let i =0; i < geom.vertices.length-2; i++){
    for(let j = i + 1; j < geom.vertices.length-1; j++){
      for(let k = j + 1; k < geom.vertices.length;k++){
        geom.faces.push(new THREE.Face3(i,j,k));
      }
    }        
  }
  const fillMesh = new THREE.Mesh(geom , new THREE.MeshBasicMaterial({
    side: THREE.DoubleSide,
    color: 0x2f92d7,
    transparent: false,
    opacity: 0.5,

  }));
//推送顶点
geom.vertices.push((新的THREE.Vector3()).fromArray(borepoint));
//将面添加到网格
对于(设i=0;i

有人知道这件事吗?谢谢

在这种情况下,问题是.depthTest。由于z缓冲(也称为深度测试),对象隐藏在地形几何体后面

禁用蓝色对象材质上的.deptest,已修复该问题

Setting.transparent=在材质上为true,在透明度过程中第二个要渲染的标志。如果未设置,绘图顺序可能正确,也可能不正确,问题仍然存在


确保其始终在顶部渲染的一种方法是将几何体置于渲染器所渲染的不同场景中。在地形场景之后进行渲染,但对于这种场景来说,这可能会有点过分。

能否尝试材质中的depthTest:false、transparent:true、opacity:1?depthTest:false解决了问题。非常感谢你!你能回答这个问题吗?这样我就可以结束这个问题了