0%

GAMES101——Geometry

本文章是关于GAMES101课程的笔记。

课程链接:GAMES101-现代计算机图形学入门-闫令琪

一、曲线(Curves)

贝塞尔曲线: 重复对切线进行线性插值得到光滑曲线。

image-20231216190419104

image-20231216190437090

卡斯特里奥算法: 给定了系数的金字塔。

image-20231216190550025

贝塞尔曲线本质: 多项式加权求和

image-20231216190715027

image-20231216190731569

贝塞尔曲线性质:

  • 插值末端点;
  • 与末端段相切;
  • 仿射变化:控制点在进行仿射变换后绘制的贝塞尔曲线与之前的贝塞尔曲线相同;
  • 凸包性质:曲线位于控制点的凸包内。

分段贝塞尔曲线的两种连续性:

  1. $C^0$ 连续: 前一段末端端点和下一段第一端点相等

    image-20231216191558831

  2. $C^1$ 连续:前一段末端端点和下一段第一端点相等,同时前一段倒数第二控制点和下一段第二控制点关于最后控制点对称。

    image-20231216191716120

样条: 构造为穿过给定点集并具有一定数量的连续导数的连续曲线。

B-样条: 构成样条的基本单元(类似基函数)。

二、曲面(Surfaces)

贝塞尔曲面: 对一个二维平面进行两次贝塞尔变化。(以 $4\times4$ 为例)

  1. 使用 de Casteljau 计算 $u$中 4 条贝塞尔曲线中每一条上的点 $u$。 这为“移动”贝塞尔曲线提供了 4 个控制点;
  2. 使用一维 de Casteljau 评估“移动”曲线上的 v 点。

image-20231216192308737

image-20231216192321157

三、细分(Subdivison)

Loop Subdivision: 分割三角形的一种方法,对每条边的新的顶点进行 加权平均 , 形成新的三角形。

image-20231220214228741

image-20231220214239280

Catmull-Clark Subdivision:

  1. 在每个平面添加新的端点;
  2. 在每条边添加中点;
  3. 连接所有新的端点。

奇异点(Extraordinary vertex): 度不为 4 的点

image-20231220214537606

  1. 每个非四边形面会产生新的奇异点;
  2. 奇异点对应的度小于 4;
  3. 增加了新的四边形面。

image-20231220214830278

更新公式:

image-20231220214929354

四、简化(Simplification)

边缘塌陷(Edge Collapsing): 将多条边进行合并

image-20231220215054933

二次误差度量(Quadric Error Metrics): 如何进行边缘塌陷的一种优化方法——最小化二次误差。

image-20231220215235175