纹理映射与aliasing
1 mipmapping
从左图可以看到,从image space到texture space的映射(边到边的映射,本质上是cube(pixel area)到area的映射)。规则的pixel映射到提供纹理信息的图片时,变形都比较严重。而每次都进行这样的计算(平均area中的值然后传给对应的在image space中的pixel),效率是很低的,因此mipmap预先算好值,存储,然后根据image pixel离视点的距离,选择相应的mipmap的等级,然后取值(retrieve value)。值得注意的是mipmap对应的area都是cube,而不是原来准确的area,因此有点不准确,但是已经能很好的解决alising的问题。
mipmap的技术是sample down原始问题图片,2*2不断的sample down,直到1*1,原始图像的分辨率是最高的。
2 发生alising的原因
当很多texel对应到一个fragment的时候,我们称之为minification,会发生alising。
原因是一个fragment对应到纹理图片中的一片area,但是opengl采用的是point to point 的映射,所以本来应该综合多个texel而得到的值,现在只用了一个texel的值,这样会造成在最终的image space(即最终显示的结果)出现不连贯,像素值过渡不连贯,形成alising。如下图
电脑中的像素(pixel)本质上是一个面积很小的cube。