CD3D11_SAMPLER_DESC 结构是 Direct3D 11 中用于描述采样器状态的辅助类。它通常用于创建采样器状态对象。以下是 CD3D11_SAMPLER_DESC 结构的定义:
struct CD3D11_SAMPLER_DESC : public D3D11_SAMPLER_DESC
{
    CD3D11_SAMPLER_DESC();
    explicit CD3D11_SAMPLER_DESC(const D3D11_SAMPLER_DESC &o);
    explicit CD3D11_SAMPLER_DESC(CD3D11_DEFAULT);

    // 一些便利的设置函数
    CD3D11_SAMPLER_DESC& Filter(D3D11_FILTER Filter);
    CD3D11_SAMPLER_DESC& AddressU(D3D11_TEXTURE_ADDRESS_MODE Address);
    CD3D11_SAMPLER_DESC& AddressV(D3D11_TEXTURE_ADDRESS_MODE Address);
    CD3D11_SAMPLER_DESC& AddressW(D3D11_TEXTURE_ADDRESS_MODE Address);
    CD3D11_SAMPLER_DESC& MipLODBias(FLOAT MipLODBias);
    CD3D11_SAMPLER_DESC& MaxAnisotropy(UINT MaxAnisotropy);
    CD3D11_SAMPLER_DESC& ComparisonFunc(D3D11_COMPARISON_FUNC ComparisonFunc);
    CD3D11_SAMPLER_DESC& BorderColor(FLOAT BorderColor[4]);
    CD3D11_SAMPLER_DESC& MinLOD(FLOAT MinLOD);
    CD3D11_SAMPLER_DESC& MaxLOD(FLOAT MaxLOD);
};

这个结构继承自 D3D11_SAMPLER_DESC,并提供了一些便利函数,用于更容易地设置采样器状态的参数。你可以通过调用这些函数来配置 CD3D11_SAMPLER_DESC 对象,然后将其传递给创建采样器状态的函数。

以下是 CD3D11_SAMPLER_DESC 中一些常用的设置函数:

  •  Filter: 设置采样器的过滤器,例如线性过滤、点采样等。

  •  AddressU, AddressV, AddressW: 设置纹理坐标的寻址模式,例如 Wrap、Clamp 等。

  •  MipLODBias: 设置 Mip 层级的 LOD 偏移。

  •  MaxAnisotropy: 设置各向异性过滤的最大各向异性度。

  •  ComparisonFunc: 设置用于比较深度纹理的比较函数。

  •  BorderColor: 设置用于超出纹理范围时的边框颜色。

  •  MinLOD, MaxLOD: 设置采样器允许的最小和最大 LOD。


这个结构使得配置采样器状态的参数更加方便,而不需要手动设置结构的各个字段。


转载请注明出处:http://www.pingtaimeng.com/article/detail/25642/Win32 API/D3d11.h/CD3D11_SAMPLER_DESC