EnvironmentMap — 环境光贴图
纹理本质上就是提供了一个快捷的查询,不只局限于图像,光照也能同理进行查询

光照贴图认为光照是无限远的,忽略了光的位置信息
怎样描述环境光?

如果在房间中有一光滑的金属球,我们观察他就会发现它反射出来的就是环境光。
那我们就可以把环境光储存在球上面,并且也能把它展开成平面
但展开后发现球形图的上下会扭曲。
虽然我们能描述球上不同的位置,但无法均匀的描述

所以我们可以将信息记录在这个球的外接立方体,这样信息就变得均匀了—CubeMap


BumpMapping — 法线贴图
法线贴图是为了在不增加三角形面数的情况下,在着色时显示更多细节
对某一点进行着色时,需要判断该点的法线方向,从而计算光照和颜色
需要从原本的模型表面映射到法线贴图中,查询新的法线位置

法线贴图如何知道法线的方向呢?
先看一维中的简单示例
- 先算该点切线
- 切线可以用该点与下一个点的位置差计算出来
- 将切线逆时针旋转90°,求归一化,得到法线

二维的贴图(3D空间)中如何求法线?
对u、v坐标分别求导,算出切线,旋转得到法线

位移贴图
环境光遮蔽也能预先计算好,存储到纹理中

几何
隐式几何
隐式几何用来表达该几何点之间的关系
隐式表达的函数f(x,y,z)很难从函数看出函数形成的面是什么形状的
但可以轻松的知道某一点是否在这个平面上,或物体内外

显式表达
给定:点的空间坐标uv,遍历所有点就可以在空间中画出该物体
用平面中的uv去映射到空间中,表示空间上的面
优点就是可以看出函数形成的面是什么形状的
但无法轻松的知道某一点是否在这个平面上


两种表达各有各的用途,没有好坏之分,根据需要选择
Constructive Solid Geometry - CSG
隐式几何
通过基本几何的布尔运算,得到新的几何

DistanceFunctions (距离函数)
不直接描述几何表面,描述空间中的每一点到几何表面的最短距离

blend 是混合, 这里是想将 A 与 B 混合为一体.
阴影处是物体, 阴影与留白一起, 构成物体所处的空间
A 与 B 的混合, 不仅混合了物体(1/3+2/3=1), 还混合了空间(1+1=2), 最终效果应该是混合后的物体在混合后的空间中的占比是 1/2
例示中比较反直觉的是, blend(A, B) 所处空间的大小, 看起来依旧是 1

基本思路:求出距离函数———> 进行blend操作————> 恢复平面
对于两个物体,Blend两个物体的距离函数即可得到如下效果
SDF很难用式子表达出来,那如何把SDF恢复成表面呢?
水平集 — LevelSet
将函数的表述写在格子上
只要找到所有f(x)= 0的地方就能尝试描述这个物体的表面
概念等同于地理上的等高线
