Games101-Cp4-Geometry

发布时间 2023-06-22 22:18:09作者: xkyl

几何表示方法

  • 隐式表达
    对应通过隐函数表示点的相对位置,而不是空间的具体位置。具体有:代数公式、水平集、分形/自相似(fractals)、CSG(constructive solid geometry):通过简单几何体的布尔运算获得复杂的几何体、距离函数:指的是到几何体点的最小距离,当两个几何体的点近,通过融合距离函数,生成新的几何体。
    优点:易于确定点是否处于面上、体的内部或者外部,直接通过代入就可以判断。
    坏处:对于一些复杂几何难以表示。
  • 显式表示
    将所有点的空间表示出来或者通过参数映射。点云、几何面。

曲线

  • 贝塞尔曲线
    这里介绍的是四个控制点的贝塞尔曲线。

\[b^n(t) = b^n_0 (t) = \sum_{j=0}^n b_j B_j^n(t) \\ B^n(t)=\sum_n^i t^i (1-t)^{n-i} \]

对应贝塞尔曲线的性质有 1)\(b(0)=b_0\) $ b(1)=b_3$. 2)曲线上的点被对应的得出的线相切。 3)仿射变换,对控制点做仿射变换与对曲线上的点做仿射变换一个效果。 4)凸包,曲线会在控制点的凸包内。

  • 逐段贝塞尔

  • Splines 样线

  • B-Splines

曲面

贝塞尔曲面

网格增量

网格增量实际上就是增加Mesh的点数以及三角形,在管线中对应着曲面细分阶段。

  • Loop细分
    主要分为两步:1.增加三角形 2.调整位置,使曲面光滑。Loop细分将一个三角形分成四个,并且根据权重重新分配新丁点位的位置。对应新顶点的位置由上下两个三角形四个顶点的位置确定,对应\(A,B\)为水平顶点,\(C,D为上下顶点\)

\[E = \dfrac{3}{8}(A+B) + \dfrac{1}{8}(C+D) \\ (1-n\cdot u)\cdot 原顶点坐标 + u \cdot 相邻顶点坐标之和 \\ n为顶点的度 \]

  • Catmull-Clark细分
    这是更普通的情况,不止用于三角面。对应取每条边的中点进行一次细化,细化后会在非四边形面中取得新的奇异点,但全部的非四边形面会消失。

曲面细减

  • 边坍缩
  • 二次误差度量
    二次误差确定新的顶点应该是最小化面积距离的总和(\(L2\)距离)

这里对应着作业四,就是贝塞尔曲线,就不拓展讲通过递归的方式就能得到对应的结果。
几何这里很多内容games102有对应的内容。看后面工作有没有用到再根据具体实现。感谢你看到这里,Cheers!