Three.js InstancedBufferGeometry相交未发生
我尝试了Instancedbuffergeometry,效果非常好, 在InstancedBufferGeometry中未发生相交,我在threejs(r85)库中进行了检查,checkBufferGeometryIntersection函数仅具有位置值,我认为偏移和方向值需要与位置一起使用 我还有一个疑问,我只使用了一种rawshadermaterial,那么我如何突出显示选定的几何体 有人能在里面指路吗Three.js InstancedBufferGeometry相交未发生,three.js,Three.js,我尝试了Instancedbuffergeometry,效果非常好, 在InstancedBufferGeometry中未发生相交,我在threejs(r85)库中进行了检查,checkBufferGeometryIntersection函数仅具有位置值,我认为偏移和方向值需要与位置一起使用 我还有一个疑问,我只使用了一种rawshadermaterial,那么我如何突出显示选定的几何体 有人能在里面指路吗 提前感谢。就cpu而言(在进行光线投射时),这些实例并不存在。但是,您的主几何图形可用。
提前感谢。就cpu而言(在进行光线投射时),这些实例并不存在。但是,您的主几何图形可用。您可以做的是,创建另一个
BufferGeometry
实例,然后使用该几何体实例创建相同数量的Mesh
对象。使用相同的实例化逻辑将其放置到场景中。不渲染它们,因此节省了多次绘制调用的开销。它们确实可以用于相交,但就好像它是普通几何体一样,因为它是(您只是不渲染它)。如前所述,使用实例化几何体的光线投射无法工作
实现相同目标的另一种方法是使用所谓的GPU拾取。为此,可以使用一个特殊的着色器将场景渲染到帧缓冲区中,该着色器只会为每个实例输出一个唯一的颜色值
然后可以从该帧缓冲区中对光标下的点进行采样,并根据颜色值计算实例id
您可以看到此技术的示例,或者。基于CPU的光线投射与基于GPU的实例不兼容,除非您编写自定义代码来处理它。three.js r.85这里的答案有什么问题,你希望在github上得到什么?@pailhead。正如WestLangley所说,我正在尝试使用自定义着色器编程。他还说不要在github上发布并使用SO。