目录
2.1 隐式表示(“Implicit” Representations of Geometry)
2.2 显式表示(“Explicit” Representations of Geometry)
2.4.1 代数曲面(Algebraic Surfaces (Implicit))
2.4.2 CSG(Constructive Solid Geometry (Implicit))
2.4.3 距离函数(Distance Functions (Implicit))
2.6.3 Wavefront Object File(.obj)格式
Introduction to geometry
1 几何案例
玻璃杯的形状描述 发动机的齿轮叶片等部件,大小,位置
车子的不同部件,曲面的定义 衣服布料,如何织成
水滴飞溅的形状、力的模拟 城市众多建筑如何存储,如何渲染
狗的毛流,十分复杂 病毒、蛋白质,显微建模
树木枝干
这么多复杂的情况不能全用三角形面来表示!
2 几何的不同表示方法
几何的表示方法可以分为两类:隐式几何、显式几何。
根据不同的任务选择最合适的表示方法即可。
2.1 隐式表示(“Implicit” Representations of Geometry)
不给出实际点在哪,而告诉你这些点所满足的关系式。
eg:描述一个球,可以用 来约束球的形状大小。
更一般的情况,可以构造任何一个函数 来表示点所满足的关系。
eg:在描述球面的时候,可以构造函数 f 让球内部的点代入表达式后的结果为负数,外部为正数,球面为0。
下面两张图说明了隐式表示的优缺点:
隐式表示的缺点:不直观,某些结果难以求解。
隐式表示的优点:容易判断任何一个点位于物体内部或者物体外部。
2.2 显式表示(“Explicit” Representations of Geometry)
常见的显式表示方法:模型三角形面直接定义点的位置;参数映射。
定义(u,v)和函数f,将通过将二维坐标代入f,从而将二维信息映射到三维空间。
(这个形状叫马鞍面)。
举个例子:这个显式方程表示了游泳圈面,其中,x,y,z项是关于u,v的函数。
显式表示的缺点:判断某一点在表面内还是表面外非常难。
2.3 几何问题没有通解
没什么好办法能完全解决几何问题,只能在实际中根据需求选择合适的。
2.4 隐式表示的例子
2.4.1 代数曲面(Algebraic Surfaces (Implicit))
这个方法只能用代数方程表达一些简单的形状,无法处理过于复杂的图形。
2.4.2 CSG(Constructive Solid Geometry (Implicit))
构造立体几何,采用了集合的交并差运算思想,可以表示稍微复杂一点的形状。
2.4.3 距离函数(Distance Functions (Implicit))
(1)定义
对于任何一个几何,都不直接描述表面,而是描述任何一个点出发到这个物体表面的最近距离。
直接blend无法表示运动过程
距离函数SDF:Signed Distance Function,Signed 表示有符号,也就是有正负。
SDF 为 0 : 点位于物体表面
SDF 为正数:点在物体的外部
SDF 为负数:点在物体的内部
eg:有图片A和图片B,A中的灰色物体占1/3,B中的灰色物体占2/3 。
问两物体混合的中间状态是什么样的?
· 如果直接线性混合,那么就会出现1/3黑色物体、1/3灰色物体、1/3没有物体。过渡得很生硬。
· 构造A、B中灰色物体的SDF
然后线性混合两张图的SDF,这步操作在直观上相当于在blend边界。
然后再把blend后的构造函数SDF恢复成图片,此时,边界(SDF=0)基本处于图片中央。
可以得到平滑的融合结果。
(2)特点
距离函数的表示能力非常强,下面这张图的很多部分都是由距离函数定义。
如何从距离函数恢复到物体表面?一般来说,求出距离函数=0的位置就是物体表面。
(3)水平集
距离函数的定义方式也不局限于数学表达式,还可以用网格来存储距离信息,那么网格值为0的地方就是物体的表面了。使用这种方式可以描述一些代数表达式无法描述的复杂形状。这个概念在地理中称作等高线(不同位置上的同一个值)。
· 当水平集定义在三维空间上的格子
· 用水平集做物理模拟
2.4.4 分型(Fractals (Implicit))
用来描述一些具有自相似形的物体,雪花,微生物,植物,入海口形状等等。
2.5 隐式表示的优缺点
优点
·描述紧凑
·判断边界内外容易
·便于做光线和表面的相交(后面讲)
·对于简单的形状,精确的描述/无采样误差
·易于处理拓扑变化(例如,流体)
缺点
·难以描述复杂形状
2.6 显式表示的例子
2.6.1 点云
点云的密度足够大的时候,就可以看作面了。
一般人们在做三维空间的扫描的时候,输出都是点云。
有许多研究在研究:如何把点云变成三角形面。
采样密度比较低的地方难以画出形状,比如下图中金色雕塑的下半部分。因此在现在的一些工作中,很少使用点云,一般都是扫描出来的原始数据是点云。
2.6.2 多边形网格
储存顶点和多边形(通常是三角形和四边形)。
这种方法几乎是在图形学中最广泛应用的方法。
2.6.3 Wavefront Object File(.obj)格式
通常用于图形研究
只是一个文本文件,指定顶点,法线,纹理坐标和f开头的数字组合来表示这三者之间的连接,表示三角形。