Three.js剪辑和光线投射
问题描述:
我正在使用这里的答案实现剪辑glClipPlane - Is there an equivalent in webGL?。Three.js剪辑和光线投射
我已经尝试过全局和每个对象剪辑。我的raycaster正在交叉剪辑的部分对象。有没有办法保证raycaster只与物体的可见部分相交?
答
剪切发生在GPU上。正常的光线投射发生在CPU上。
您将不得不在应用程序级别的光线投射逻辑中实施剪裁。
另一种方法是使用GPU拾取。你将不得不花费一些时间来理解它是如何工作的,以及它是否适合你的用例。
Here是GPU挑选的three.js示例。
three.js所r.82
答
if (renderer.clippingPlanes.length > 0) {
objs = objs.filter(function(elem) {
return renderer.clippingPlanes.every(function(elem2) {
return elem2.distanceToPoint(elem.point) > 0;
});
});
}
+1
尽管这段代码可能解决了这个问题,但应该总是给它添加一个解释。 – BDL
谢谢。我使用平面到点距离检查在应用层实现了它。 – Patrick