与平面相交的任意网格(在 THREEJS 中)
Intersection arbitrary mesh with plane (in THREEJS)
目前是否可以在 THREEJS 中显示如下所示的网格和平面的交集:
以红色、绿色、黄色显示网格与带有纹理的背板的交集。
如果没有,最好的方法是:
- 在 JavaScript 中的网格和平面的交点处计算一个 "line geometry",然后对其进行渲染
- 将自定义着色器 material 应用到网格(将平面参数作为统一参数),仅在当前三角形与平面相交时才为像素着色
对于选项 #2,是否已经有一些此类着色器的在线演示?
谢谢,
尼古拉斯
=== 2022 年更新 ===
THREE-Mesh-BVH 提供了创建轮廓的新有效方法。这就是我目前的做法:
- 将您的几何调整为 BVH 树
- 计算每个三角形到平面的交点,因为它非常快,这要归功于 BVH 树。
- 实例:https://gkjohnson.github.io/three-mesh-bvh/example/bundle/clippedEdges.html
====
AMI 现在支持它 (https://fnndsc.github.io/ami/#viewers_quadview)
步骤是:
显示网格与平面的交点
Post 处理交叉点以显示等高线。
有不同的技术来显示 mesh/plane 交叉点:
所有这些技术在计算上都是昂贵的,因为它需要 3 个渲染通道来显示 1 个网格的轮廓,可能有更好的方法,但不确定什么是最好的选择。
HTH
目前是否可以在 THREEJS 中显示如下所示的网格和平面的交集:
以红色、绿色、黄色显示网格与带有纹理的背板的交集。
如果没有,最好的方法是:
- 在 JavaScript 中的网格和平面的交点处计算一个 "line geometry",然后对其进行渲染
- 将自定义着色器 material 应用到网格(将平面参数作为统一参数),仅在当前三角形与平面相交时才为像素着色
对于选项 #2,是否已经有一些此类着色器的在线演示?
谢谢,
尼古拉斯
=== 2022 年更新 ===
THREE-Mesh-BVH 提供了创建轮廓的新有效方法。这就是我目前的做法:
- 将您的几何调整为 BVH 树
- 计算每个三角形到平面的交点,因为它非常快,这要归功于 BVH 树。
- 实例:https://gkjohnson.github.io/three-mesh-bvh/example/bundle/clippedEdges.html
====
AMI 现在支持它 (https://fnndsc.github.io/ami/#viewers_quadview)
步骤是:
显示网格与平面的交点
Post 处理交叉点以显示等高线。
有不同的技术来显示 mesh/plane 交叉点:
所有这些技术在计算上都是昂贵的,因为它需要 3 个渲染通道来显示 1 个网格的轮廓,可能有更好的方法,但不确定什么是最好的选择。
HTH