纹理映射:提高纹理映射的质量

  在这篇文章中我将介绍提高纹理映射质量地内容包括Mip map双线性过滤和 3线性过滤 
  当个多边形由近到远或有远到近进行变换时候, 其投影到屏幕上面积也会相应从大变小或从小变大如此便会有个屏幕象素对应多边形上多个点或者屏幕上多个象素对应多边形上个点如果这个多边形是贴上纹理则会是屏幕上个象素对应多个纹理元素(texel)或反的这会造成闪烁或马赛克等失真效果 Mip map技术可以用来处理屏幕象素对应多个纹理元素情况双线性过滤和 3线性过滤可以用来消除马赛克但也可和Mip map 起使用以达到更好映射效果我首先介绍下Mip map

  Mip map思想是在多边形距离观察者较近时候贴较高分辨率纹理较远时贴低分辨率纹理降低分辨率思路方法是将原纹理缩小为了计算简便通常是将原纹理按2幂次方不断缩小如果原来纹理是8×8则其Mip map为4×42×21×1为了在缩小纹理时候不产生严重失真我们需对原来纹理进行过滤具体做法如下

如果我们有个纹理A其大小为8×8每个纹理元素值用A来表示 纹理A 
A00 A10 A20 A30 A40 A50 A60 A70 
A01 A11 A21 A31 A41 A51 A61 A71 
A02 A12 A22 A32 A42 A52 A62 A72 
A03 A13 A23 A33 A43 A53 A63 A73 
A04 A14 A24 A34 A44 A54 A64 A74 
A05 A15 A25 A35 A45 A55 A65 A75 
A06 A16 A26 A36 A46 A56 A66 A76 
A07 A17 A27 A37 A47 A57 A67 A77 
 
我们将其过滤再缩小半后得到个4×4纹理B如下 纹理B 
B00 B10 B20 B30 
B01 B11 B21 B31 
B02 B12 B22 B32 
B03 B13 B23 B33 
 
其中B00 = (A00 + A10 + A01 + A11) / 4其他纹理元素也可用同样思路方法取得也就是纹理B中个纹理元素是其在纹理A中对应4个相邻纹理元素平均值我们还可对纹理B以相同思路方法缩小如此便得到了所要组Mip map我们可以根据多边形和观察者的间距离来选择适当Mip map 

  Mip map可以提高纹理映射质量但也有些不足般为了减少纹理所占存储空间我们只能对原纹理进行有限次分级然而多边形和观察者的间距离确可以有无数多种情况举例来说如果我们有个多边形其对应组Mip map为8×84×42×21×1而在某时刻对其最合适纹理大小应为可能为5.7×5.7但其对应Mip map里没有这种分辨率纹理如果我们选8×8或4×4话都不是很准确还有种情况就是这时该多边形最合适Mip map是9×9超过了这组Mip map 中最大个Mip map如果我们选8×8话就会造成马赛克效果

解决这些问题思路方法是双线性过滤和 3线性过滤我将先介绍双线性过滤假设我们有个多边形其对应Mip map为5.7×5.7那么我们将在8×8和4×4Mip map中选择我们选择较小那个也就是4×4当我们在用扫描线法来填充这个多边形时得到个纹理空间坐标(0.3,0.6)其对应 4×4Mip map纹理元素为(1.2,2.4)这时我们不是将其简单取整而是在它周围取4个点C1(1.0,2.0),C2(1.0,3.0),C3(2.0,2.0),C4(2.0,3.0) 然后对这4个点在XY方向上进行插值首先在X方向上对C1C3和C2C4进行插值我假设这个4×4Mip map如下 纹理B 
B00 B10 B20 B30 
B01 B11 B21 B31 
B02 B12 B22 B32 
B03 B13 B23 B33 
 
我们在X方向上对C1C3进行插值得到个新值P1其中
P1 = 0.8*B12 + 0.2*B22
对C2C4进行插值得到P2其中
P2 = 0.8*B13 + 0.2*B23
然后对P1P2在Y方向上进行插值得到
P3P3 = 0.6*P1 + 0.4*P2
其中P3就为进行双线性过滤后得到纹理元素 

   3线性过滤于双线性过滤差不多区别在于 3线性插值还要在两个Mip map 的间进行插值我们还以上面Mip map为例我们得到个多边形及其对应个 5.7×5.7Mip map这时我们不是取4×4Mip map而是同时取8×8和4×4 两个Mip map在用扫描线法填充多边形时分别计算个屏幕象素对应在这两个Mip map 上纹理元素然后对这两个纹理元素分别进行如前面介绍双线性插值后得到两个纹理元素 P44,P88然后对这两个纹理元素进行插值得到P其中
P = (1-5.7/(8+4))*p44 + 5.7/(8+4)*p88
其中P就为 3线性过滤后得到纹理元素
Tags:  端口映射 重新映射的扇区计数 照片纹理映射 纹理映射

延伸阅读

最新评论

发表评论