D3D11_TEXTURE_ADDRESS_MODE(纹理寻址模式)
2014-10-22 11:49
405 查看
最近在学习D3D11,看到如下:
SamplerState samColor
{
Filter = MIN_MAG_MIP_LINEAR;
AddressU = Clamp;
AddressV = Clamp;
};
不太理解,查阅了相关的D3D11SDK 以及一些其他资料,总结如下:
在D3D11中,纹理坐标系统是由水平的u 轴和竖直的v轴构成的,由u、v坐标系确定纹理的每个像素;u、v的取值范围为[0,1]。实际上纹理坐标可以超出这个值,它通过Direct3D的寻址模式定义的。通常的寻址模式有5种,其定义的数据结构如下所示:
Identify a technique for resolving texture coordinates that are outside of the boundaries of a texture.
SamplerState samColor
{
Filter = MIN_MAG_MIP_LINEAR;
AddressU = Clamp;
AddressV = Clamp;
};
不太理解,查阅了相关的D3D11SDK 以及一些其他资料,总结如下:
在D3D11中,纹理坐标系统是由水平的u 轴和竖直的v轴构成的,由u、v坐标系确定纹理的每个像素;u、v的取值范围为[0,1]。实际上纹理坐标可以超出这个值,它通过Direct3D的寻址模式定义的。通常的寻址模式有5种,其定义的数据结构如下所示:
Identify a technique for resolving texture coordinates that are outside of the boundaries of a texture.
typedef enum D3D11_TEXTURE_ADDRESS_MODE { D3D11_TEXTURE_ADDRESS_WRAP = 1, D3D11_TEXTURE_ADDRESS_MIRROR = 2, D3D11_TEXTURE_ADDRESS_CLAMP = 3, D3D11_TEXTURE_ADDRESS_BORDER = 4, D3D11_TEXTURE_ADDRESS_MIRROR_ONCE = 5, } D3D11_TEXTURE_ADDRESS_MODE;
每个模式的作用如下:
WRAP:在超出[0,1]范围的坐标上不断重复原来的问题;
MIRROR:在超出[0,1]范围的坐标上原来纹理的镜像来代替;
CLAMP:在超出[0,1]范围的坐标上,用距离[0,1]范围内最近的一组纹理坐标(u,v)来代替;
BORDER:在超出[0,1]范围的坐标上,用一种边界颜色来代替,边界颜色需要在TextureAddress.Border中设置;
MIRROR_ONCE:在超出[0,1]范围的坐标上,其作用MIRROR和CLAMP的结合效果相似。取纹理坐标的绝对值,因此,是围绕原点进行镜像的,然后再截取其最大值;
相关文章推荐
- D3D11_TEXTURE_ADDRESS_MODE(纹理寻址模式)
- 纹理寻址DirectX入门 (8) --- TextureAddressMode
- 纹理寻址模式tex_address_mode
- 什么是纹理寻址模式?
- D3D 纹理寻址模式
- LBP (local binary mode)局部二值模式 纹理描述
- 纹理寻址模式
- 【寒江雪】四大纹理过滤方式和四大寻址模式
- 了解Hibernate的FlushMode.NEVER模式
- 两种通信模式(Ad hoc mode和Infrastracuture mode)的区别是什么?
- Cisco Switching Mode Discussion(五种交换模式辨析)
- 渲染到纹理(Render To Texture, RTT)详解
- AutoCAD系统变量: OSMODE --设置“对象捕捉”的运行模式
- 自然纹理的合成(synthesizing nature texture)
- WinAPI: SetBkMode - 设置背景模式
- 【转贴】Render to Texture(渲染到纹理)
- 保护模式下寻址
- extjs license is dual mode(extjs license现在包含两种模式)
- 异步传输模式 Asynchronous Transfer Mode
- ListBox多选模式(SelectionMode=Multiple)的使用_AX