Games101 笔记 09 着色(插值、高级纹理映射)

Interpolation Across Triangles: Barycentric Coordinates (重⼼坐标)

为什么需要插值, 因为我们有些操作时定义在顶点上的, 需要平滑插值三角形内部的点

什么东西可以插值, 纹理坐标, 颜色, 法线向量.

Games101 笔记 09 着色(插值、高级纹理映射)

三角形内部的任意一个点 都可以通过3个顶点描述出来,   

3个系数和时1. 在三角形内部的画,

3个系数都大于0

Games101 笔记 09 着色(插值、高级纹理映射)

比如a点 1,0,0 

Games101 笔记 09 着色(插值、高级纹理映射)

任意一个点的坐标, 

Games101 笔记 09 着色(插值、高级纹理映射)

三角形的重心

Games101 笔记 09 着色(插值、高级纹理映射)

简化的公式

Games101 笔记 09 着色(插值、高级纹理映射)

任何属性根据3个系数来插值.

在投影之后的三角形, 重心坐标可能不一样.  三维空间的点来插值

Games101 笔记 09 着色(插值、高级纹理映射)

Applying Textures 纹理应用

Games101 笔记 09 着色(插值、高级纹理映射)

Texture Magnification 纹理方法

(What if the texture is too small?)

双线性插值

Games101 笔记 09 着色(插值、高级纹理映射)

Games101 笔记 09 着色(插值、高级纹理映射)

Games101 笔记 09 着色(插值、高级纹理映射)

水平上2次, 垂直上1次

Games101 笔记 09 着色(插值、高级纹理映射)

Texture Magnification (hard case) 

(What if the texture is too large?) 纹理大了怎么办
Games101 笔记 09 着色(插值、高级纹理映射)

超采样,  可以解决但是消耗太大

还可以怎么做呢. 不采样,  但是需要获取一个范围的平均值

Mipmap

Allowing ( fast, approx., square ) range queries   允许 快速, 不准, 仅仅时方形的 快速查询. 
所有其他的图全部加起来, 增加了1/3. 
Games101 笔记 09 着色(插值、高级纹理映射)
查找纹理空间的点 
查找D层的mipmap 上对应的唯一像素

Games101 笔记 09 着色(插值、高级纹理映射)

三线性插值

如果要查找的时一个1.8层的这种点, 那么可以从1,2 层插值得到.

Games101 笔记 09 着色(插值、高级纹理映射)

mipmap 在远处过度糊掉

Games101 笔记 09 着色(插值、高级纹理映射)

各向异性过滤

相对于矩形区域, 比mipmap好, mipmap 只能正方形, 但是对于斜着的还是不行

Games101 笔记 09 着色(插值、高级纹理映射)

各项过滤开销时原图的3倍,  只是显存的开销. 

EWA 过滤 

不规则形状都可以拆成圆型,  多次查询就可以覆盖这个形状.

Games101 笔记 09 着色(插值、高级纹理映射)