各向异性纹理筛选 (Direct3D 9)

其表面相对于屏幕平面的角度方向的 3D 对象的纹素中可见的失真称为各向异性。 当各向异性基元中的像素映射到纹素时,其形状就会失真。 Direct3D 测量像素的各向异性,作为反向映射到纹理空间的屏幕像素的拉伸,即,长度除以宽度。

你可以将各向异性纹理筛选与线性纹理筛选或 mipmap 纹理筛选结合使用,以改进呈现结果。 应用程序通过调用 IDirect3DDevice9::SetSamplerState 方法启用各向异性纹理筛选。 将第一个参数的值设置为要为其选择纹理筛选方法的纹理 (0-7) 整数索引号。 为第二个参数传递D3DSAMP_MAGFILTER、D3DSAMP_MINFILTER或D3DSAMP_MIPFILTER,以设置放大、缩小或 mipmapping 筛选器。 将第三个参数设置为 D3DTEXF_ANISOTROPIC。

应用程序还必须将各向异性程度设置为大于 1 的值。 为此,请调用 IDirect3DDevice9::SetSamplerState 方法。 将第一个参数的值设置为要为其设置各向性程度的纹理 (0-7) 整数索引号。 将D3DSAMP_MAXANISOTROPY作为第二个参数的值传递。 最后一个参数应为各向同性程度。

可以通过将各向性度设置为 1 来禁用各向同性筛选;任何大于 1 的值都启用它。 检查 D3DCAPS9 结构中的 MaxAnisotropy 标志,以确定各向异性程度的可能值范围。

纹理筛选