0

我正在尝试用多边形网格制作光滑的表面。因此,为了进行所需的细分,我想使用由贝塞尔三角形组成的 N-Patches。据我了解,贝塞尔三角形可以由三角形多边形网格组成,这些多边形网格由三角形基元组成,如她所见:在此处输入图像描述

然而,这使任务复杂化。例如,如果我提供由三角形基元组成的多边形网格,我如何将贝塞尔三角形和 N 面片应用于多边形网格信息?对于三次贝塞尔三角形,我是否需要将所有多边形三角形绑定在一组 9 个三角形中,其中每个组代表一个更大的三角形,所以我得到了 9 个边界控制点,通过它我可以获得内部需要的控制点,用它对三次贝塞尔三角形执行 de Casteljau 算法,如下所示:

在此处输入图像描述

这似乎不实用,并且在许多情况下无法使用,例如多边形网格的 UV 贴图必须由这 9 个顶点三角形(一组 9 个基本三角形)构成。

对我来说,这似乎是贝塞尔三角形的唯一合乎逻辑的用法,但我认为贝塞尔三角形应该由每个基本多边形网格三角形构建而成,但这没有意义。如果您使用 de Casteljau 为 Bézier 三角形构建基本多边形网格三角形的内部控制点,那么有什么可以控制/平滑?构成多边形网格的基本三角形是完全平坦的,因为三角形的所有 3 个点都保证在同一平面上 - 因此即使使用贝塞尔三角形,三角形上的表面也会是平坦的,这是正确的行为。这就是为什么我推断贝塞尔三角形需要从许多基本三角形中创建出来。

一些快速参考:http ://www.gamasutra.com/view/feature/131389/b%C3%A9zier_triangles_and_npatches.php?print=1

4

1 回答 1

1

N-patch 是从网格的每个三角形创建一个三次三角形 Bezier 曲面。每个三角形由 3 个顶点和 3 个法线定义。因此,构造的三次三角形贝塞尔曲面通常不是平面的(除非 3 条法线都相互平行)。

于 2015-07-03T07:20:29.060 回答