几何杂记

隐式几何表示

往往通过一个方程来定义,不够直观,但存储量小,运算简单。

显示几何表示

要么直接定义,要么通过一些参数来定义。

点云

一堆点,要构成面需要极大的密度。

通常用于三维扫描,后续再通过其他方法将点云转化为其他表示方法。

多边形网格

使用三角形或其他多边形表示(最常用)

贝塞尔曲线

通过参数来显示表示几何的实例

几何意义:很好理解但不太好描述,百度找图(

代数表示(用参数 \(t\) 来表示时间/比例,\(t\in [0, 1]\))推导:

  • \(n+1\) 个控制点 \(b_{0..n}\),控制一条 \(n\) 次贝塞尔曲线。
  • 首先对于任意点 \(A\)(非两边的点),在一次取点过后,会将 \(tA\) 分配到一边,\((1-t)A\) 分配到另一边。
  • 那么一个点 \(A\) 最终能分配到答案中多少,可以看做是一个金字塔状的路径选取的问题。
  • 然后就不难从中发现二项式了。
  • 最终结论为:\(ans = \sum_{i=0}^{n}C_n^ib_it^i(1-t)^{n-i}\)

贝塞尔曲线性质:

  • 仿射变换不变性:对贝塞尔曲线仿射变换,等价于对几个控制点仿射变换后再生成贝塞尔曲线
  • 贝塞尔曲线始终在控制点的凸包内
  • 贝塞尔曲线的阶次等于控制点数-1,曲线的起点/终点与第一个/最后一个控制点重合。

分段贝塞尔曲线

贝塞尔曲线的一大缺点是没有局部控制能力,任一控制点的变化都会影响到整个曲线(B样条曲线能解决这个问题),有时也会用分段贝塞尔曲线解决。

如PS的钢笔工具就是每段使用四个控制点,每段画三次贝塞尔曲线(Cubic Bezier Curve)

两端段贝塞尔曲线交接的部分,相交处的控制点连线若平行,即可平滑连接,若连线长度也相同,就能使二阶导数也连续。

显然,曲线应当可以表示成关于 \(t\)\(n\) 阶多项式 \(G(t)\)

例如对于 \(n = 3\)\(G(t)=(1-t)^3b_0+3t(1-t)^2b_1+3t^2(1-t)b_2+t^3b_3\) \[ \begin{bmatrix} -1&3&-3&1\\ 3&-6&3&0\\ -3&3&0&0\\ 1&0&0&0 \end{bmatrix} \times \begin{bmatrix} b_0\\ b_1\\ b_2\\ b_3 \end{bmatrix} = \begin{bmatrix} p_3\\ p_2\\ p_1\\ p_0 \end{bmatrix} \] 我们可以用矩阵计算得出各次系数 \(p\)\(G(t)=p_3t^3+p_2t^2+p_1t+p_0\),此处的系数为一个vec2。

后面我们可以把其他形式的曲线(如B样条)也写成这种矩阵形式,然后轻松在两者之间转化。

B样条曲线

三次B样条曲线的矩阵表达如下: \[ \frac1{6}\begin{bmatrix} -1&3&-3&1\\ 3&-6&3&0\\ -3&0&3&0\\ 1&4&1&0 \end{bmatrix} \times \begin{bmatrix} b_0\\ b_1\\ b_2\\ b_3 \end{bmatrix} = \begin{bmatrix} p_3\\ p_2\\ p_1\\ p_0 \end{bmatrix} \]

贝塞尔曲面

以4x4控制点为例:先将四列分别画出贝塞尔曲线,然后每一行取出四个点作为新贝塞尔曲线的控制点,得到一行贝塞尔曲线,扫出一个曲面。

贝塞尔曲面可以用参数 \(u,v\) 来表示。

网格细分

用于将网格变得更平滑,本质上是一种模糊操作,并没有更多的信息量。在已有网格能大致表示物体轮廓时,用网格细分使得它更平滑。

Loop 细分

Loop是人名

细分:在每条三角形边上取一个新的顶点,形成 4 倍顶点。

调整:对顶点位置进行一个“模糊”,思路如下:

对于新顶点,它在两个三角形的重边上,设重边上的两个点为 \(A,B\),重边对的两个点为 \(C,D\),新顶点的位置为 \(3/8\times (A+B)+1/8 \times (C+D)\)

系数取决于调参经验,总之就是加权平均。

对于原顶点,它由相邻的原顶点和自身加权平均得来,具体设 \(n\) 为度数,\(u\) 为相邻顶点的比例系数,通常设 \(u = 3/(8n)\),特别当 \(n=3\) 时设 \(u=3/16\)

最终位置为 \((1-nu)ori+u\sum adj\)

Catmull-Clark细分

多边形网格的细分

每轮细分在每条线上产生一个点,每个面上也产生一个点。

以一定的权值来调整新点的位置。

其特点是:经过一轮变换后,所有面都会变成四边形。

网格简化

在尽可能保留信息的前提下简化网格,常用于LOD。

边坍缩

几何杂记
http://www.lxtyin.ac.cn/2023/02/26/笔记/几何杂记/
作者
lx_tyin
发布于
2023年2月26日
许可协议