如何使用边缘和内部曲面细分因子完成三角形曲面细分?

时间:2016-06-05 21:57:21

标签: opengl graphics direct3d

我只是在学习曲面细分,我在下面的例子中看到了三角形曲面细分,但我不确定如何生成几何体。任何人都可以帮我解决这个问题吗?我基本上不确定边缘曲面细分和内部曲面细分是如何形成这个数字的。enter image description here

1 个答案:

答案 0 :(得分:4)

曲面细分级别指定将生成的边数。因此,曲面细分级别1表示一个边缘。 AKA:没有镶嵌。

所以这解释了外层。根据标准中的规定,在外部曲面细分级别数组中为每个边分配一个索引。您提供了曲面细分级别1,2和3.因此,一个边缘被细分为"进入一个边缘。第二个被细分为2个边,第三个被细分为3个。

我认为令人困惑的部分是内部曲面细分级别的工作原理。基于在外三角形内生成同心三角形来定义三角形镶嵌。但是生成的同心三角形的数量是内部曲面细分级别的一半,向下舍入。

设N为内部曲面细分级别。让K从1变为N / 2,向下舍入。因此,K表示每个同心内三角形,K = 1表示最外面的内三角形(但不是外三角形)。

内三角形的边缘始终细分为相同数量的边。内三角形边缘镶嵌的边数为N - 2K

因此,如果我们的内部曲面细分级别为5,那么将有2个内部三角形。第一个内三角将有3个边,第二个将有1个。

但是当N是偶数时,在这个等式中发生了奇怪的事情。如果你有,如你的情况,N = 4,那么将有2个内部三角形。第一个内三角将被细分为4 - 2 * 1 = 2个边。第二个将被细分为4 - 2 * 2 = 0个边缘。

现在我们有一个Zen Koan:没有边缘的三角形是什么样的?

它看起来像一个顶点。哪个完全你在中心的东西。你有一个顶点,它有围绕它的三角形的边缘。

至于三角形之间的边缘,这就是它如何转换各种曲面细分点以创建一整套三角形。

下图显示了一个用各种内部和均匀外部因素镶嵌的三角形: enter image description here