GAMES101-计算机图形学学习笔记-几何

原视频教程链接:https://www.bilibili.com/video/BV1X7411F744

几何

表示

隐式
形式: f ( x , y , z ) = 0 f(x,y,z) = 0 f(x,y,z)=0

可以很好地判断一个点是否在几何面上,但是不能很直观地看出几何形体
显式
形式: f ( u , v ) = ( , , ) f(u,v) = (,,) f(u,v)=(,,)

通过将u, v坐标映射到x, y, z坐标上,可以容易地给出几何形体,但是难以判断一个点是否在几何面上。

隐式几何

几何之间可以通过并、交、差的方式得到复杂的几何。

距离函数: 表示所有点到边界的距离
通过将两个距离函数相加,可以将为值0的点还原得到融合后的几何

显式几何

点云
多边形网格
贝塞尔曲线
GAMES101-计算机图形学学习笔记-几何_第1张图片
用多个控制点表示一条贝塞尔曲线并不直观,通常采用逐段表示的方法,每四个控制点表示一段贝塞尔曲线,然后连接起来。

贝塞尔曲面
GAMES101-计算机图形学学习笔记-几何_第2张图片

网格操作

网格细分

Loop细分
将每个三角形分割成四个三角形,生成新的顶点并更改旧的顶点位置。
GAMES101-计算机图形学学习笔记-几何_第3张图片
新的顶点: 3 / 8 ∗ ( A + B ) + 1 / 8 ∗ ( C + D ) 3/8*(A+B) + 1/8*(C+D) 3/8(A+B)+1/8(C+D)
GAMES101-计算机图形学学习笔记-几何_第4张图片
旧的顶点: ( 1 − n ∗ u ) ∗ V + o r i g i n a l _ p o s i t i o n ∗ n e i g h b o r _ p o s i t i o n _ s u m (1 - n*u) * V + original\_position * neighbor\_position\_sum (1nu)V+original_positionneighbor_position_sum
n: 顶点的度
n = 3 n=3 n=3 时, u = 3 / 16 u=3/16 u=3/16 ,否则 u = 3 / ( 8 n ) u=3/(8n) u=3/(8n)

Catmull-Clark细分
Loop细分只能用于三角面,Catmul-Clark适用范围更广

新的顶点:
GAMES101-计算机图形学学习笔记-几何_第5张图片
旧的顶点:
GAMES101-计算机图形学学习笔记-几何_第6张图片

网格简化

边坍缩算法:
二次误差度量:
找到一个点,使其到原本周围的面距离的平方和最小,以此作为边的坍缩影响程度。
可以使用贪心的思想进行坍缩,又因为边坍缩后会影响到周围的边,所以需要使用带修堆来存储所有的边。
GAMES101-计算机图形学学习笔记-几何_第7张图片

你可能感兴趣的:(计算机图形学,图形学)