Direct3D 12——纹理——寻址模式

news/2025/2/12 8:53:53/

可将经过常数插值或线性插值的纹理定义为一个返回向量值的函数T(u, v) = (r,g,b,a),即给 定纹理坐标(u,v)∈[0,1]^2,则上述纹理函数T将返回颜色(r,g, b, a)。 Direct3D允许我们采用下列4 种不同方式(即寻址模式,address mode)来扩充此函数的定义域(解决输入值超出定义域这一问 题),它们是重复寻址模式(wrap)、边框颜色寻址模式(border color,也有译作边界颜色寻址模式)、 钳位寻址模式(clamp )与镜像寻址模式(mirror )。

1.重复纹理寻址模式
在 Wrap 纹理寻址模式下,Direct3D 可以在每个整数点重复纹理。

例如,假设应用程序创建平方基元并指定纹理坐标为 (0.0,0.0)、(0.0,3.0)、(3.0,3.0) 以及 (3.0,0.0)。 将纹理寻址模式设置为“Wrap”会使纹理在 u 和 v 方向应用三次,如下图所示。
在这里插入图片描述
2.镜像纹理寻址模式
在镜像纹理寻址模式下,Direct3D 可以每个整数为界映射纹理。

例如,假设应用程序创建平方基元并指定纹理坐标为 (0.0,0.0)、(0.0,3.0)、(3.0,3.0) 以及 (3.0,0.0)。 将纹理寻址模式设置为“镜像”会使纹理在 u 和 v 方向应用三次。 纹理应用到的所有其他行和列均为前一行或前一列的镜像,如下图所示。
在这里插入图片描述
3.Clamp 纹理寻址模式

在 Clamp 纹理寻址模式下,Direct3D 可以将纹理坐标固定到 [0.0, 1.0] 范围;在 Clamp 模式下应用纹理一次,边缘像素颜色会变模糊。

例如,假设应用程序创建了一个平方基元,并将 (0.0,0.0)、(0.0,3.0)、(3.0,3.0) 以及 (3.0,0.0) 纹理坐标分配至该基元的顶点。 将纹理寻址模式设置为"Clamp"会使纹理应用一次。 列顶部和行结尾的像素颜色将分别延伸到基元的顶部和右侧。

下图所示为固定的纹理。

在这里插入图片描述
4.边框颜色纹理寻址模式

在边框颜色纹理寻址模式下,对于超出 0.0-1.0(包括这两者)范围的任何纹理坐标,Direct3D 可以使用任意颜色(称为边框颜色)。

在下图中,应用程序指定必须将纹理应用到使用红色边框的的基元。
在这里插入图片描述
在Direct3D中,寻址模式由枚举类型 D3D12_TEXTURE_ADDRESS_MODE 来表示:

enum D3D12_TEXTURE_ADDRESS_MODE{D3D12_TEXTURE_ADDRESS_MODE_WRAP	= 1,  //重复纹理寻址模式D3D12_TEXTURE_ADDRESS_MODE_MIRROR	= 2,//镜像寻址模式D3D12_TEXTURE_ADDRESS_MODE_CLAMP	= 3,//钳位寻址模式D3D12_TEXTURE_ADDRESS_MODE_BORDER	= 4,//边框颜色寻址模式D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE	= 5} 

设备限制

尽管系统一般情况下支持超出 0.0-1.0(包括这两者)范围的纹理坐标,但硬件限制通常会影响纹理坐标可超出的范围。 当你检索设备功能时,呈现设备将显示对设备所允许的所有纹理坐标的限制。

例如,如果限值为 128,则输入的纹理坐标必须控制在 -128.0 至 +128.0 的范围内。 使超出该范围的纹理坐标通过顶点是无效的。 相同的限制适用于因纹理坐标自动生成以及纹理坐标变换而生成的纹理坐标。

纹理重复限制取决于按纹理坐标编索引的纹理的大小。 假设在此情况下,纹理大小为 32,设备允许的纹理坐标的范围为 512,则实际有效的纹理坐标范围应为 512/32 = 16,也就是说,该设备的纹理坐标范围必须介于 -16.0 至 +16.0。


http://www.ppmy.cn/news/905560.html

相关文章

基于DDPG、TD3的UR5装配仿真及其对比

本项目为上海交通大学2020年度秋季学期,乐心怡老师讲授的《最优控制》课程的大作业,大部分内容基于方晓猛学长的工作《基于神经网络算法的多机械臂协同控制技术研究》,最近因为开题所以重新温习了一下强化学习,这里分享一下课程所…

基于ODX的工程诊断仪 — DDS

概述 经纬恒润基于 ODX 的工程诊断仪 INTEWORK-DDS(Diagnostic Development System,以下简称DDS)是一款用于新车型/ECU 研发的诊断工具,集多种标准协议和多种功能于一体,支持 ISO14229 (UDS)、ISO13400(DOIP)、ISO229…

DirectX12 3D游戏开发实践(龙书)第六章 利用Direct3D的绘制几何体

利用Direct3D的绘制几何体 利用Direct3D的绘制几何体顶点与输入布局顶点缓冲区索引和索引缓冲区代码实例: 利用Direct3D的绘制几何体 顶点与输入布局 顶点除了存储控件位置,还可以存储其他属性,下面列出了俩种不同的顶点格式,一…

如何使用ublox ZED-F9P 配置基准站、移动站+差分电台实现RTK定位

格林恩德F9P-RTK模块,集成高精度板卡(ZED-F9P)可同时接收GPS,北斗,GALILEO,GLONASS 卫星系统的L1,L2频点,结合高精度天线一体化设计,体积小,重量轻,只需外部5V供电,外接配合数传电台数传模块&am…

TI原版方案 | 研旭YXDSP-XDS560V2PLUS仿真器 支持网口远程调试

产品概述 研旭YXDSP-XDS560v2plus 是 XDS560 系列高性能 TI 处理器调试探针(仿真器)的最新型号。XDS560v2 具有整个系列中最快的速度和最多的功能,对于 TI 微控制器、处理器和无线连接微控制器的调试来说,它是最全面的解决方案。…

ADAU1860调试心得(2)硬件和软件的详细说明

硬件 一台 64 位的 PC ,一块 ADAU1860EVB 开发板,一个LARK-1860 专用仿真器,音频线若干,mini USB线一根,一个到三个输入音源,可以是 PC 或者手机或者其他模拟音频输入设备, 一个输出音源设备&am…

usb3.0信号的仿真和布线设计要求

usb3.0信号速率为5Gbps,相对于usb2.0高速信号480Mbps来说几乎是10倍的增长。采用的8b/10b的编码方式,这种编码方式只有80%的效率,所以在以后usb3.1的时候采用了128b/132b的编码。 usb3.0规范中针对usb3.0的连接器,线缆&#xff0c…

快速上手dva

Dva 是一个基于 redux 和 redux-saga 的前端框架,它简化了 redux 和 redux-saga 的使用,并且内置了 react-router 和 fetch,所以也支持路由和异步操作。以下是一些基本的 Dva 使用方法: 快速上手 安装:首先&#xff…