D3D11_TEXTURE_ADDRESS_MODE(纹理寻址模式)

最近在学习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.

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的结合效果相似。取纹理坐标的绝对值,因此,是围绕原点进行镜像的,然后再截取其最大值;
 
    
    



时间: 2024-11-29 05:12:30

D3D11_TEXTURE_ADDRESS_MODE(纹理寻址模式)的相关文章

解决 cocos2dx iOS/mac 设置纹理寻址模式后纹理变黑的问题

sprite:getTexture():setTexParameters(gl.LINEAR,gl.LINEAR,gl.REPEAT,gl.REPEAT) 在安卓设备上,设置了纹理自定义寻址模式,纹理图片的宽高大小可以任意设置,但在ios或者mac设备上,纹理图片的大小一定要是2的n次方,不然渲染出来的 精灵就会成黑色.

X86/X64处理器体系结构及寻址模式

由8086/8088.x86.Pentium发展到core系列短短40多年间,处理器的时钟频率几乎已接近极限,尽管如此,自从86年Intel推出386至今除了增加一些有关流媒体的指令如mmx/sse之外,其他新增的大多数指令都可以从最初的指令集中组合实现同样的功能,整个编程模型维持了约有20多年. 1. 处理器体系结构 1.1. 处理器简要结构 我们都知道CPU的根本任务就是执行指令,对计算机来说最终都是一串由"0"和"1"组成的序列.CPU从逻辑上可以划分成3个模

Intel 80x86 寻址模式

随着进一步的研究,我们会逐渐接触到你的电脑配置模式的内在联系,和设计原则.在这些,解决计算机是一个非常重要的概念,我们需要很好地理解了什么. 一.预赛: (1)作数 在接触寻址方式之前,我们还要先了解一下操作数的概念,依据操作数存放方式的不同,我们能够将操作数分成3类, 1.马上操作数:操作数包括在本条指令中. 2.寄存器操作数:操作数存放在CPU的某个寄存器中. 3.存储器(内存)操作数:操作数存放在存储器中: (2)逻辑地址 逻辑地址 = 段地址(存储单元所在逻辑段地址)左移4位 + 偏移地

七寻址模式寄存器

一.寄存器 总共同拥有14个16位寄存器,8个8位寄存器 通用寄存器: 数据寄存器: AH(8位)  AL(8位)  AX(16位)   (AX和AL又称累加器) BH(8位)  BL(8位)  BX(16位)   (BX又称基址寄存器,唯一作为存储器指针使用寄存器) CH(8位)  CL(8位)  CX(16位)   (CX用于字符串操作,控制循环的次数,CL用于移位) DH(8位)  DL(8位)  DX(16位)   (DX一般用来做32位的乘除法时存放被除数或者保留余数) 指针寄存器:

纹理(讲得比较详细的文章)

纹理是增强计算机生成的三维图像的真实感的有力工具.Microsoft® Direct3D®支持广泛的纹理特性,并使开发人员可以很方便地使用高级纹理技术. 本节讲述如何使用纹理. 纹理的基本概念 纹理坐标 纹理过滤 纹理资源 纹理环绕 纹理混合 表面 以下主题将更详细地介绍另外的纹理功能. Mipmap的自动生成 自动纹理管理 压缩纹理资源 使用纹理时需要考虑的硬件问题 立体纹理资源 要提高性能,可以考虑使用动态纹理.动态纹理在每一帧都可以被锁定,写入及解锁.更多信息请参阅使用动态纹理. 纹理的基

HLSL学习笔记(一):基础

http://www.cnblogs.com/rainstorm/archive/2013/05/04/3057444.html 前言 五一在家无事,于是学习了一下HLSL,基于XAN4.0的.学习完了也就总结一下,纯粹是新手学习的经验之谈,纰漏之处还望见谅,不喜勿喷. HLSL是一种使用GPU渲染出图像的技术,不仅可以改变最终呈现的颜色,还可以物体的大小.胖瘦和位置等.例如物体的碎裂效果就可以使用HLSL来渲染得到. 数据类型 数据类型有值类型.向量.矩阵.采样器.和结构体. 1.值类型 bo

【转载】Direct3D纹理映射

原文:Direct3D纹理映射 创建纹理对象 1: HRESULT CreateTexture( 2:   UINT Width,//宽度 3:   UINT Height,//高度 4:   UINT Levels,//多级渐进纹理序列级数 5:   DWORD Usage,//用途 6:   D3DFORMAT Format,//像素格式 7:   D3DPOOL Pool,//内存池类型 8:   IDirect3DTexture9** ppTexture,//创建的纹理对象指针 9:  

高级着色语言简介

HLSL中提供的true和false关键字与C++相同. int:32位有符号整数 half:16位浮点数 float:32位浮点数 double:64位浮点数 float2 float3 float4 分别为 2D 3D 4D向量. 复合分量:(以下为复制操作)不一定要复制每个分量,可以只复制x.y分量. float4 u = {1.0f, 2.0f, 3.0f, 4.0f}; float4 v = {0.0f, 0.0f, 5.0f, 6.0f}; v = u.wyyx; // v = {4

《逐梦旅程 WINDOWS游戏编程之从零开始》笔记7——DirectInput&纹理映射

第15章 DirectInput接口 DirectInput作为DirectX的组件之一,依然是一些COM对象的集合.DirectInput由IDirectinput8.IDirectInputDevice8和IDirectInputEffect这3个接口组成.其中IDirectInput8作为DirectInput API中最主要的接口,用于初始化系统以及创建输入设备接口,DirectInput中其他所有接口都需要依赖于我们的IDirectInput8之上,都是通过这个接口进行查询的.而Dir