如何判断物体的是否被遮挡

发布于 2023-04-06 10:26:29

利用射线判断物体旋转时是否被遮挡,此物体被遮挡时隐藏css2DObject的文字标签,出现计算遮挡关系错误,且文字标签闪烁,

function getScreenPos(meshObj) {
  let pos = meshObj.position.clone();
  camera.updateProjectionMatrix();
  pos.project(camera);
  return new THREE.Vector2(pos.x, pos.y);
}

//
function isOccluded(mesh) {
  const obj = getScreenPos(mesh);
  const raycaster = new THREE.Raycaster();

  raycaster.setFromCamera(obj, camera); //通过物体的位置和相机更新射线
  const intersects = raycaster.intersectObjects( scene.children );//计算物体与射线的焦点

  if (intersects[0] && intersects[0].object === mesh) {
    return false;
  } else {
    return true;
  }
}

查看更多

关注者
0
被浏览
862
kindgardenlily
kindgardenlily 2023-04-06
这家伙很懒,什么也没写!

冰老师再微信中已解答:整个旋转是一个圆形,实时计算出所走距离和圆形周长做比例,判断物体是否被遮挡。
感谢冰老师百忙之中微信中的回复。

1 个回答

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览