各向异性过滤

来自testwiki
imported>Kunjinkao2025年2月11日 (二) 13:36的版本 (使用HotCat已移除Category:抗鋸齒
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转到导航 跳转到搜索

Template:NoteTA 各向异性过滤Template:Lang-en,简称AF)是一种3D显示技术,如其名称所示,它是对周围各个方向上的像素进行取样计算后映射到目标像素上的技术。与双线性过滤和三线性过滤相比,它在大角度显示方面具有更高的精度,令画面更逼真,但计算量也更大,对显示卡的要求也更高。[1]

Template:Link-en和各向异性过滤效果对比

實作

OpenGL 擴展規範[2]中說明了可能的實作方式,首先定義以下符號:

Px=ux2+vx2Py=uy2+vy2Pmax=max(Px,Py)Pmin=min(Px,Py)N=min(PmaxPmin,maxAniso)λ=lgPmaxN

其中 Px,Py 和 mipmapping 中的定義相同,代表紋理座標對螢幕座標的微分。不同的是引入了變數 N 代表 anisotropic 的比例(一般不超過 16),並且只在λPmin 的 mipmap 層級取樣(無視向上取整以及限制最大 anisotropic 程度的 min 的話,則λ=Pmin)。

Anisotropic filter 的結果 τaniso 可以用平均多個 mipmap 的採樣 τ 求出。

τaniso=1N1Nτ(u+ux2iN12(N+1),v+vx2iN12(N+1))

可以看到這個方式需要存取比原本多出 N 倍的紋理記憶體,而且跟原本的 mipmap 方法是正交的,也就是我們可以任意的 mipmap 方法,配合任意的 maxAniso

優化

  • 相鄰的像素點通常存在於快取裡面。
  • 一般來說高度各向异性的點很少(通常小於10%),而需要材质过滤的點也不需要各向异性过滤

参考文献

Template:Reflist

Template:计算机图形学