Base-几何的显式与隐式表示
同一个球既可以是一组三角形,也可以是一条方程。前者方便交给光栅管线,后者方便判断内外与构造布尔运算。几何表示决定了哪些查询容易,哪些转换昂贵。
原笔记同时记录了点云、网格、曲线、细分和减面。这里把它们放回各自层次:先说对象怎样表示,再说怎样加工,不把所有“生成更多点”的方法混为一谈。
1. 隐式表示:给定点,检查关系
球面可以写为 F(x,y,z)=x²+y²+z²-r²=0。代入一个点可以检查它是否在表面上,正负号还能用于区分内外。
但 F 的数值不是到表面的真实距离。球的有符号距离是 length(p)-r,而不是平方项减 r²。把任意隐式函数当 SDF 进行安全球体追踪,可能跨过表面。
隐式表示不一定难以理解形状,球和圆柱都很直观;真正的取舍在于求交、离散化、编辑与渲染方式。

原笔记配图:隐式方程的零集合可以表示球面、环面等形状;函数值本身未必是距离。

原笔记配图:隐式几何的并、交与差,展示几何组合与显式网格布尔的不同组织方式。

原笔记配图:距离函数构造形状过渡的教学示意;一般混合后的函数未必仍是精确距离。
2. 显式与参数表示
网格列出顶点、索引以及法线、UV 等属性,把表面离散成图元。它方便编辑与光栅化,但判断一个点是否在封闭体内部,需要额外算法和拓扑条件。
参数曲面 p(u,v) 直接把二维参数映射到三维表面。UV 规则和导数可用于生成切线与法线;反过来从空间点找到参数位置,通常不是直接代入就能完成。
点云只给样本点,未必包含连接关系、内外定义或连续表面。可视化点云与重建封闭网格,是不同任务。

原笔记配图:参数域中的二维坐标映射到三维曲面。

原笔记配图:参数环面的具体例子,直接代入 u、v 得到曲面位置。

原笔记配图:点云只记录离散表面样本,不自动提供网格连接与封闭体内外关系。
3. 贝塞尔曲线不要求超过三个点
n 次贝塞尔曲线使用 n+1 个控制点。两个点可以构成一次直线,三个点构成二次曲线,四个点构成三次曲线。原笔记中“大于三个点”的限制应去掉。
三次形式为:
1 | |
它经过首尾控制点,通常不经过中间控制点。权重非负且和为 1,因此曲线落在控制点凸包内;仿射变换可作用于控制点后再求值。
de Casteljau 算法用重复线性插值求值,也能在任意参数处拆分曲线。这里的插值层级有明确权重,并不是随便平滑控制折线。

原笔记配图:de Casteljau 逐层插值构造三次贝塞尔曲线。

原笔记配图:Bernstein 基表示的贝塞尔曲线及三维控制点例子。
4. 从曲线到曲面
双三次贝塞尔曲面可以由 4×4 控制点构成,在两个参数方向分别应用三次基函数。16 个是这种曲面的控制点数,不是所有参数曲面的统一要求。
曲面最终通常要离散成三角形才能进入传统光栅管线。离散精度应根据曲率和屏幕误差选择;均匀增加网格会把预算花在不需要的区域。

原笔记配图:沿另一个参数方向移动曲线,形成双参数曲面的直觉。
5. 细分、减面与 LOD
Loop、Catmull-Clark 等细分方案定义了拓扑更新与顶点位置规则。它们不只是将一个三角形拆成四个,边界与特殊价数顶点也需要规则。
减面则减少图元,同时控制形状、轮廓和属性误差。二次误差度量边折叠是一类方法,不代表所有网格都能无代价压缩成任意低面数。
LOD 系统进一步决定运行时选择哪一级。选择、几何简化与过渡是三个独立问题;Dither 可以缓和切换感,却不保证法线、高光与阴影也连续。

原笔记配图:细分使网格更密,并按细分规则调整表面形状。

原笔记配图:减面与边折叠的效果示例;面数减少会改变形状与属性误差。
总结
选择几何表示,本质上是在选择查询与编辑成本。方程、参数、点云和网格各有优势;细分与减面加工它们,LOD 决定何时使用它们。先分清层次,才容易组织正确的数据流。