低像素的图像纹理映射到高像素图像上,采用的几种纹理映射方式:

取相近像素颜色(Nearest)
取所在像素块内的颜色
双线性插值取周围像素的插值颜色(Bilinear)
红点位置的像素颜色,若取所在像素块内的颜色则为u11;
若采用双线性插值的话做三次lerp取颜色得到周围四个像素的插值颜色;
(Bicubic)
取周围16个像素做插值
非常大的纹理映射在屏幕上,导致走样的解决办法
出现的问题:在一个像素内,有多个纹理(信号变化快,采样点少),导致走样;
解决办法:使用mipmap,不采样;
mipmap特点:
- 允许做范围查询
- 快速
- 缺点:不准确
- 只能做正方形范围查询
- 占用内存是原来的4/3(计算方式:1 + 1/4 + 16/1 + …)
以2*2的倍数缩小分辨率
较远的物体,计算纹理的时候可以取当前像素在下一层LOD上区域内的颜色,就是当前区域的近似颜色,物体离得越远,取得LOD层级越高;
不同层取不同的LOD;
缺点:不能取层级中间的颜色;例如1.5层的LOD
解决办法:三线性插值
两层分别做双线性插值,结果再做一次插值
结果:
各向异性过滤
对于太远的物体,采用三线性插值会导致远处像素模糊
红色框内采用了1*1的图片,导致不准确
mipmap计算结果是红框内的图片
各向异性过滤则计算出矩形图片(可计算单独边缩小2^n倍数的图像,例如128128,12864)
2X,计算一次,到边长/2;4X,计算两次,到边长、4;
缺点:只能是正方形或矩形范围
EWA Filter
多次查询圆形区域,取近似值