Games101-Cp4-Geometry
几何表示方法
- 隐式表达
对应通过隐函数表示点的相对位置,而不是空间的具体位置。具体有:代数公式、水平集、分形/自相似(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!