Three.js剪辑和光线投射

时间:2016-12-06 18:44:18

标签: three.js

我正在使用glClipPlane - Is there an equivalent in webGL?中的答案实现剪辑。

我尝试了全局和每个对象剪辑。我的raycaster与剪切的物体部分相交。有没有办法保证raycaster只与对象的可见部分相交?

2 个答案:

答案 0 :(得分:0)

GPU上发生剪辑。正常的光线投射发生在CPU上。

您必须在应用程序级别的光线投射逻辑中实现裁剪。

另一种方法是使用GPU挑选。您将不得不投入一些时间来了解其工作原理,以及它是否适合您的用例。

Here是GPU挑选的三个例子。

three.js r.82

答案 1 :(得分:0)

if (renderer.clippingPlanes.length > 0) {  
  objs = objs.filter(function(elem) {  
    return renderer.clippingPlanes.every(function(elem2) {  
      return elem2.distanceToPoint(elem.point) > 0;  
    });  
  });  
}