【发布时间】:2020-06-23 22:27:11
【问题描述】:
我有一个由顶点和三角形组成的 3D 网格。我知道顶点的位置和平滑法线,以及三角形的平面法线。 我想计算通过 2 个给定顶点的曲线段,仅使用它们的位置和法线。
现在,我使用的是Catmull Rom spline,但它需要 4 个点来绘制 1 个曲线段,如下图所示的简单网格的切片视图:
要绘制 B 和 C 之间的黄色曲线段,对应于红色边缘的估计曲率,我必须使用顶点 A、B、C 和 D 的位置 其他青色部分也是用同样的方法绘制的。
-
我想仅使用线段顶点中的数据来计算每个曲线段。这里只使用 B 和 C 的位置和法线作为输入数据来计算黄色曲线段......并且在计算所有段的曲线时仍然保持均匀的整体形状
-
我不确定这条曲线是否适合表示网格的平滑法线显示的模拟曲率,同时使用简单的 3D 漫反射着色进行渲染,因此我想知道其他类型的曲线可能是在这种精确的情况下更好的匹配。 也许还有一种更适合仅使用两个点的位置和法线作为输入的约束。
谢谢! :)
【问题讨论】:
-
目前还不清楚每个顶点的平滑法线将如何影响曲线的形状。你想让曲线在顶点的切线垂直于法线吗?
-
在这种情况下,我不在乎切线是否垂直于法线。在我的照片中,它们不是,结果很好......但曲线不是从我想要关注的数据中生成的。我正在这里尝试。所以假设我对任何解决方案都很好,只要它只涉及 2 点位置和法线作为生成曲线段的起点。
-
如果你坚持顶点B和C之间的曲线段只能从顶点B和C处的位置和法线构造,那么曲线段很可能不会与它的平滑连接。相邻段。
-
是的,这也是我的猜测。但我还不确定是否真的需要这种连续性,所以我会先尝试从这个起点得到的任何曲线。
标签: 3d polygon mesh curve smoothing