一、重心坐标
因为很多值都是在顶点计算,所以在三角形内部需要插值。
eg:UV,法线...
为了平滑的过度,就引入了重心坐标。
AA,AB,AC是面积。三角形内部任意点的算法。
因为是重心,所以重心把三角形分成了3个等面积的三角形。就是下面:
二、纹理映射
使用UV采样纹理。
2.1.纹理被拉大
纹理分辨率少于显示器分辨率。
简单的采样 双线性插值 三次插值(取周围16个点)
2.2双线性插值
水平插值两次,再竖直插值一次。
2.3纹理太大
远处摩尔纹,近处锯齿。(走样)
点查询修正(MSAA),范围查询(MipMap)
Mipmap的范围查询:只能做近似的正方形的范围查询。
会多三分之一的存储量。
MipMap在采样时,会去查找这个像素在哪个纹理上对应的是一个像素(不包含别的像素)。
D = log2 L。若D是非整数,就需要在MipMap的不同层之间使用插值(三线性插值)
开销不大。
2.4MipMap的问题
OverBlur 过分模糊
2.5各向异性过滤
允许我们对非正方形的区域进行查询。(矩形查询)但是又不能解决斜着的查询。总开销是原本的3倍。
2.6 EWA过滤
EWA过滤可以解决斜着的查询,但是会多次查询。
三、纹理的应用
3.1环境贴图
3.2凹凸贴图(法线贴图)
存的是点的高度变化,先计算切线,再根据切线算法线。
3.3 位移贴图
存的也是点的高度变化。并实际去移动顶点。
3.4 3维噪声
3.5环境光遮蔽
注意:脸部的阴影。