目录
(该做完作业3)
1. 不同几何表示方法
1.1 隐式几何
空间中任一点,为表述几何的一个面,隐式表示方法:不说点具体在哪,而说点满足的关系,比如满足特定关系的点,认为点在一个表面上。如下:
缺陷
- 无法表示复杂几何。
- 很难说整个一个函数表示什么形状(不直观)。如下,很难看出函数表示一个圆环。
好处
- 对存储有利,
- 容易做物体和光线求交。
- 能判断点在不在这个平面上。(带入函数即可)
其他隐式表示方法
(1) 代数表示(上面提到的)
(2) CSG
通过一系列基本几何的基本运算定义新的几何。
(3) 距离函数
对于任何一个几何,不直接描述表面,而描述任何一个点到这个表面的最近距离(距离函数,有正有负,比如点在物体内部,认为点到物体表面距离为负)。
如下,把两个物体的距离函数算出来,把两个距离函数做融合blend,再恢复成原来的物体:
例子,如下:A B 表示物体移动,分别挡住视口A B 左边的1/3 和2/3,要求出物体从左到右移动的所有中间状态。
如果认为AB是两个图,直接线性融合,得到右边,黑灰白的状态。无法得知中间过程的运动信息。
而如果用距离函数,得到两张图,是渐变的颜色。两图blend得到右边,如果把这个东西恢复成原本对应的形状,那么0的地方就是边界。也就是通过blend两个SDF等同于blend边界。
距离函数应用:
1.
2.
距离函数blend后如何恢复成表面
通过解析式,或水平集(如下,双线性插值计算值),计算距离函数SDF等于0的地方,就是物体表面。
水平集在三维空间中的应用:
水平集定义在三维空间中<——>三维纹理(如表示人体不同位置的密度,令密度fx = 5.0,找到所有满足密度函数的点就可以找到一个表面)
通过水平集/DF,水滴和水滴blend:
(4) 分型 fractals
分型:自相似(自己部分和整体长得很像,类似递归)
中间的图,渲染的时候引起强烈的走样(变化频率高)
1.2 显式几何
- 直接给出
- 参数映射方法定义表面。如下,马鞍面
把所有的u v都找一遍,就知道空间上长什么样。
缺点
难以判断点在面上 or 面内:
除非把形状画出来,才知道是否在面上。