天天看点

Directx11教程41 纹理映射(11)

1、第一副图我们采用各性异性的滤波方式,并设置最大各性异性值为8.

    samplerDesc.Filter =  D3D11_FILTER_ANISOTROPIC;

    samplerDesc.MaxAnisotropy = 8;

Directx11教程41 纹理映射(11)

   第二副图我们用了常用的3线性差值滤波方式

  samplerDesc.Filter =  D3D11_FILTER_MIN_MAG_MIP_LINEAR;

Directx11教程41 纹理映射(11)

      按道理说,对于远处的纹理贴图,第一副图要好些,但我看起来,似乎这两个效果差不多,第二副效果也还可以,对于远处的贴图,我并没有发现模糊的效果。按照文档的介绍,它们之间应该有些区别的,比如像下面这个图:

Directx11教程41 纹理映射(11)

     下面是把cube在z方向放大10倍,比较这两种滤波方式的效果,好像区别也不是特别大。难道是现在的显卡对三线性差值有什么特殊的处理?我的显卡是amd的5630显卡。

Directx11教程41 纹理映射(11)

完整的代码请参考:

工程文件myTutorialD3D11_36

代码下载:

<a href="http://files.cnblogs.com/mikewolf2002/d3d1127-28.zip">http://files.cnblogs.com/mikewolf2002/d3d1127-28.zip</a>

<a href="http://files.cnblogs.com/mikewolf2002/pictures.zip">http://files.cnblogs.com/mikewolf2002/pictures.zip</a>