博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DirectX11 寻址模式
阅读量:4089 次
发布时间:2019-05-25

本文共 1241 字,大约阅读时间需要 4 分钟。

寻址模式

1. 寻址模式是什么?有哪几种?

纹理必须与常量插值或线性插值一起使用以形成一个向量值函数T(u,v) = (r,g,b,a)。也就是,当给定一个纹理坐标(u,v)∈[0,1]2时,纹理函数T返回颜色(r,g,b,a)。Direct3D允许我们以4种不同的方式扩展该函数的值域(称为寻址模式):重复(wrap)、边框颜色(border color)、截取(clamp)和镜像(mirror)。

2. 寻址模式图示

1.重复:通过在每个整点连接处重复图像来扩展纹理,见下图。

这里写图片描述

2.边框颜色:通过将每个不在[0,1]2区间内的(u,v)映射为程序员指定的某个颜色来扩展纹理,见下图。

这里写图片描述

3.截取:通过将每个不在[0,1]2区间内的(u,v)映射为颜色T(u0,v0)来扩展纹理。其中,(u0,v0)∈[0,1]2,(u0,v0)是与(u,v)距离最近的点,见下图。

这里写图片描述

4.镜像:通过在每个整点连接处镜像图像来扩展纹理,见下图。

这里写图片描述

由于寻址模式始终驻留在Direct3D设备中(重复模式为默认值),所以当纹理坐标超出[0,1]区间时,我们仍然可以得到采样颜色。

重复寻址模式可能是最常用的寻址模式;因为它可以把纹理平铺在物体表面上,使我们在不提供额外数据的情况下有效地提高纹理分辨率(虽然些额外的分辨率是重复的)。当使用平铺时,我们通常希望纹理是无缝的(seamless)。例如,板条箱纹理不是无缝的,因为你可以清楚地看到它的每个副本(参见下图)。图8.14展示了将一幅无缝的墙砖纹理在平铺 2×3次后的结果。

这里写图片描述

(将一幅墙砖纹理平铺2×3次。由于该纹理是无缝的,所以很难一下就看出它的重复图案。)

3. 寻址模式表示

我们在采样器对象中指定寻址模式。

SamplerState samTriLinear{    Filter = MIN_MAG_MIP_LINEAR;    AddressU = WRAP;    AddressV = WRAP;};SamplerState samTriLinear{    Filter = MIN_MAG_MIP_LINEAR;    AddressU = BORDER;    AddressV = BORDER;    // Blue border color    BorderColor = float4(0.0f, 0.0f, 1.0f, 1.0f);};SamplerState samTriLinear{    Filter = MIN_MAG_MIP_LINEAR;    AddressU = CLAMP;    AddressV = CLAMP;};SamplerState samTriLinear{    Filter = MIN_MAG_MIP_LINEAR;    AddressU = MIRROR;    AddressV = MIRROR;};

注意:可以单独控制u、v方向上的寻址模式。读者可以亲自试验一下。

你可能感兴趣的文章
n多边形面积
查看>>
BaseAdapter的优化
查看>>
Spring 的IOC和DI
查看>>
xml格式文件读取(读取网站自定义配置文件)
查看>>
SU Demos-05Sorting Traces-02Demos
查看>>
Vector 二维数组 实现
查看>>
【剑指Offer】26、二叉搜索树与双向链表
查看>>
JavaScript面向对象
查看>>
一个带重试次数的curl 函数
查看>>
Oracle基本语法及例子
查看>>
JS基础知识梳理--setTimeout()&setInterval()
查看>>
(转载)o(1), o(n), o(logn), o(nlogn) 时间复杂度
查看>>
js加密解密 base64
查看>>
LeetCode(1) -Two Sum
查看>>
级数展开
查看>>
20165333 学习基础和C语言学习基础
查看>>
Properties工具类学习
查看>>
Manjaro下Steam无法启动
查看>>
Vim和Neovim安装YouCompleteMe
查看>>
用BaseAdapter实现酷我音乐中点击ListView的弹出效果
查看>>