【发布时间】:2016-12-07 05:21:11
【问题描述】:
我正在使用glClipPlane - Is there an equivalent in webGL? 此处的答案实现剪辑。
我已经尝试过全局和每个对象的裁剪。我的 raycaster 与对象的裁剪部分相交。有没有办法保证光线投射器只与物体的可见部分相交?
【问题讨论】:
标签: three.js
我正在使用glClipPlane - Is there an equivalent in webGL? 此处的答案实现剪辑。
我已经尝试过全局和每个对象的裁剪。我的 raycaster 与对象的裁剪部分相交。有没有办法保证光线投射器只与物体的可见部分相交?
【问题讨论】:
标签: three.js
if (renderer.clippingPlanes.length > 0) {
objs = objs.filter(function(elem) {
return renderer.clippingPlanes.every(function(elem2) {
return elem2.distanceToPoint(elem.point) > 0;
});
});
}
【讨论】:
剪辑发生在 GPU 上。正常的光线投射发生在 CPU 上。
您必须在应用程序级别的光线投射逻辑中实现剪辑。
另一种方法是使用 GPU 拾取。您将需要花一些时间来了解它是如何工作的,以及它是否适合您的用例。
Here 是 GPU 拾取的三个.js 示例。
three.js r.82
【讨论】: