1. D3D11_TEXTURE_ADDRESS_WRAP: 纹理坐标被包裹(wrap)。即当纹理坐标大于1时,将其回绕到0;当纹理坐标小于0时,将其回绕到1。
2. D3D11_TEXTURE_ADDRESS_MIRROR: 纹理坐标被镜像。即当纹理坐标大于1时,将其反向回到0;当纹理坐标小于0时,将其反向回到1。
3. D3D11_TEXTURE_ADDRESS_CLAMP: 纹理坐标被夹在 [0, 1] 范围内,超过范围的部分被截断。
这些模式用于在采样纹理时确定纹理坐标的取值范围,以适应不同的纹理使用场景。在创建采样器状态时,可以指定这些模式之一,以确定纹理坐标越界时的行为。
以下是一个示例,演示了如何在创建采样器状态时使用 D3D11_TEXTURE_ADDRESS_MODE 枚举:
// 创建采样器状态描述
D3D11_SAMPLER_DESC samplerDesc = {};
samplerDesc.Filter = D3D11_FILTER_MIN_MAG_MIP_LINEAR; // 采样过滤器
samplerDesc.AddressU = D3D11_TEXTURE_ADDRESS_WRAP; // U轴的取值模式
samplerDesc.AddressV = D3D11_TEXTURE_ADDRESS_WRAP; // V轴的取值模式
samplerDesc.AddressW = D3D11_TEXTURE_ADDRESS_CLAMP; // W轴的取值模式
// 其他采样器状态描述...
// 创建采样器状态
ID3D11SamplerState* samplerState;
HRESULT hr = device->CreateSamplerState(&samplerDesc, &samplerState);
在这个例子中,samplerDesc.AddressU、samplerDesc.AddressV 和 samplerDesc.AddressW 分别表示了采样器在 U、V 和 W 轴上的取值模式。
转载请注明出处:http://www.zyzy.cn/article/detail/25757/Win32 API/D3d11.h/D3D11_TEXTURE_ADDRESS_MODE