图形学mipmap/ripmap/SAT原理详解 |
您所在的位置:网站首页 › 最大各向异性2k什么意思 › 图形学mipmap/ripmap/SAT原理详解 |
参考来源: TA百人计划/GAMES101 屏幕光栅化后对采样后,如果不是1:1对应,会出现两种情况 像素分辨率>纹理分辨率 一个texel对应多个pixel,顶点的uv映射到纹理上不是整数值 (纹理被拉伸) 1.取最近邻方法时,相邻的pixel会对应到相同的texel上 2.双线性插值时,会计算映射到纹理中上下左右四个texel进行混合 无论如何,都不能得到11对应的关系,即像素会出现模糊(blur)
像素分辨率像素分辨率的情况 这里省略mipmap的原理,详情参考b站GAMES101中的纹理章节
以下两种情况为mipmap映射完全正常的情况,即pixel:texel=1:1,每个像素都能在mipmap对应层数中找到11对应的纹理进行采样
当pixel:texel不为1:1时,传统的mipmap做法: 以长边为基准选择mipmap层数,此处因为竖直方向上pixel:texel=1:2所以选择第1层 竖直方向上第0层mipmap为1:2,第1层mipmap为1:1,正确采样 水平方向上第0层mipmap为1:1,第1层为2:1,一个pixel对应2个texel,所以采样到了纹理中对应位置更远的texel,而这个texel可能也同时被与2相邻的pixel也采样到了,所以pixel2和其他pixel可能共同对应同一个texel.就造成了过度模糊(overblur) 针对mipmap只能解决正方形映射的解决方法1:
各向异性过滤
在横竖各压缩2倍的mipmap的基础上,额外生成横竖压缩比不同的图
uv长度不同时查询到对应的map就能实现1:1映射
解决方法2:通过额外存储一张SAT纹理表
SAT纹理上记录了纹理某位置(u,v)距离原点(0,0)所包围的矩形中覆盖了多少texel
计算时通过取4个顶点的uv值在SAT图中查询就可以得知4个顶点所包围的任意矩形内的texel数量,从而在插值时精确的计算出1:1的结果
对于各向异性过滤中不能采样有角度的矩形的解决方法1:
解决办法2:
现代GPU会在MipMap的基础上通过多次采样近似RipMap的效果,而不是存一张ripmap的纹理图
所以在解决各向异性过滤的同时仍然只占用mipmap额外空间的大小(1/3)而不是3倍
具体如下图
|
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |