2013-04-23 68 views
2

當使用mimaps時,OpenGL會根據曲面的最終轉換大小選擇一個mipmap,還是僅基於局部空間中曲面的大小?換句話說,如果我縮放一個更大的多邊形,當多邊形的所有其他方面保持不變時,這可能會影響選擇哪個mipmap?mipmap對縮放轉換做出反應嗎?

回答

2

它基於最終的轉換大小。或者更準確地說,它基於正在處理的片段的屏幕空間座標。所以是的,如果你的變換使得你的多邊形非常小,它將選擇一個較小的圖像進行紋理化,而如果變換使你的多邊形變大,它將選擇更詳細的mip級別。

它甚至可以正確處理多邊形覆蓋從觀察者附近到遠處的範圍的情況。 (就像如果圍繞x或y軸旋轉多邊形一樣,所以一端非常接近觀看者,而另一端很遠。)附近的像素將使用更詳細的mip級別,而遠處的像素相同的多邊形將使用較不詳細的級別。

+1

通過紋理座標梯度的屏幕空間斜率來選擇具體的mipmaping級別。常規微映射選擇兩個偏導數的最大值,而*各向異性*過濾則根據偏導數選擇兩個單獨的映射級別,並相應地調整混合內核。 – datenwolf 2013-04-23 12:30:26