3D编程:Texture Addressing Modes

Texture Addressing Modes

你可能已经注意到了在TextureMapping.fx中对SamplerState对象成员AddressU = WRAP和AddressV = WRAP的赋值。这就是纹理寻址模式,当纹理坐标超出范围[0, 1]时,你可以自行控制应该怎么显示。Direct3D支持四种纹理寻址模式:Wrap,Mirror,Clamp,Border。

Wrap

在Wrap寻址模式下,在范围[0, 1]之外的部分,纹理会被当作vertex coordinates重复映射。例如,把一个纹理映射到一个四边形上,该四边形的UVs坐标是(0.0,0.0),(3.0,0.0),(0.0,3.0),(3.3,3.3),映射的结果是在UV两个坐标轴上方向都重复3次。图5.8说明了这种情况。

图5.8 A textured quad in wrap texture address mode. (Texture by Brian Maricle.)

注意:

在图5.8中,纹理贴图周围的黑色边框是实际纹理的一部分,而不是在wrap寻址过程中创建的。该黑色边框只是用于wrap寻址时标出整数边界。

Mirror

Mirror寻址模式与wrap寻址模式很相似,不同之处是在整数边界处,相邻的纹理成镜像显示而不是重复显示。图5.9中显示了在同一个纹理四边形中,使用mirror寻址模式的结果。

图5.9 A textured quad in mirror texture address mode. (Texture by Brian Maricle.)

更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/extra/

时间: 2024-11-05 02:22:58

3D编程:Texture Addressing Modes的相关文章

J2ME 3D编程——第一个3D程序

编程|程序 J2ME 3D编程--第一个3D程序(附源代码) 更多文章请访问:http://blog.csdn.net/mailbomb 参考WTK2.2提供的demo,完成了第一个3D程序,虽然很简单,而且有些问题还不是很清楚,还是把代码共享出来和愿意学习J2ME 3D编程的朋友一起学习. 关于3D编程的资料,可以查阅我的blog. 关于代码的编译和运行说明如下: 1. 以下代码在J2ME WTK2.2下面编译通过. 2. 代码分为两个文件:First3DCanvas.java和First3D

J2ME 3D编程——第一个3D程序(附源代码)

参考WTK2.2提供的demo,完成了第一个3D程序,虽然很简单,而且有些问题还不是很清楚,还是把代码共享出来和愿意学习J2ME 3D编程的朋友一起学习. 关于3D编程的资料,可以查阅我的blog. 关于代码的编译和运行说明如下: 1.以下代码在J2ME WTK2.2下面编译通过. 2.代码分为两个文件:First3DCanvas.java和First3DMIDlet.java. 3.使用J2ME WTK2.2建立新的工程,主MIDlet类为:first3d. First3DMIDlet 4.将

《OpenGL超级宝典(第5版)》——第1章,第1.4节3D编程的基本原则

1.4 3D编程的基本原则 现在,我们对实时3D的基本概念已经有了相当程度的认识.我们讨论了一些术语以及PC上的一些示例应用程序.那么,如何在自己的计算机上创建这样的图像呢?好吧,这正是本书剩余部分的任务所在.不过,读者还需要知道一些基础知识,这正是我们接下来将要讨论的. 1.4.1 并非工具包 OpenGL基本上是一种底层渲染API(应用程序接口).我们不能告诉它"在什么地方绘制什么"--我们需要自己动手,通过载入三角形,应用必要的变换和正确的纹理.着色器并在必要时应用混合模式来组合

3D编程:第五章 Texture Mapping

第五章 Texture Mapping 纹理映射就是在3D object表面添加细节的过程.可以比喻成包装礼品的过程,包装纸就是一种2D纹理.纹理映射是现代渲染的基础,并用于多种有趣的图形技术中. An Introduction to Texture Mapping 相比如上一章使用HelloShaders和HelloShaders effects产生的纯色效果,通常情况你会期望在3D objects中渲染更多的细节.正如之前所讲的,3D模型由vertices组成,并组织成三角形,这些verti

3D编程:Texture Filtering

Texture Filtering 在讨论纹理坐标和采样时,你可能已经注意到了,没有一种纹理映射object能够做到使纹理图上的元素与渲染到屏幕上的像素之间一一对应.Camera位于textured object任意的位置,并从任意的角度观看.想像下这种情形,camera相对textured object进行放大,Rasterizer阶段确定哪些pixels会发送到pixel shader中,并对纹理坐标进行插值计算,此时纹理坐标表示的位置在纹理中的元素之间.换句话说,就是以比纹理图片本身分辨率

手机上J2ME的3D编程-简单创建3D立方体(1)

编程|创建 参考文档:JSR-184 工具:Eclipse3.0+Eclipseme API:Mobile 3D Graphics API 模拟器:Sony Ericsson 分析: 在现实生活中,我们所看到的是一个3维系统.透过双眼,可以看到的是一个丰富多彩的世界.我们所用的照相机,能够拍出很多漂亮的图片.拍摄每张图片时,可以根据拍摄距离的远近可以调整所拍摄画面上的内容. 在虚拟的世界里,可以模拟真实世界.欲将虚拟世界展示出来,就要利用一个虚拟的照相机,将虚拟的世界拍摄出来. 在JSR-184

3D编程:The Direct3D 11 Graphics Pipeline

Direct3D 11图形管线 个人电脑一般都有两个处理器:CPU和GPU,你需要对每一个处理器编写代码.这两个部件拥有完全不同的架构和指令集.在图形编程中,你需要对两个处理器都都编写软件,对于CPU应用程序使用通用的语言,比如C++,对于GPU则使用HLSL.DirectX是系统之间的桥梁.大部分关于图形编程的文章都集中讲述CPU部分或者GPU部分,但是这两部分都是非常难懂的.本书两个部分都会讲解.         在DirectX里面我们主要学习Direct3D.简单来说,Direct3D是

3D编程:第九章 Normal Mapping and Displacement Mapping

第九章 Normal Mapping and Displacement Mapping 本章主要讲述两种图形学技术,支持在不增加objects的poly primitive的情况下,在场景中增加更多的细节.第一种是normal mapping,通过创建一些"fake" geometry(虚设的多边形图元)模拟光照作用.第二种是displacement mapping,根据纹理数据moving vertices actually(与"fake"相对应,这里指真实的移动

3D编程:Environment Mapping

Environment Mapping Texture cubes的另一种应用是environment mapping.Environment mapping也称为reflection mapping,用于近似模拟reflective surfaces(反光表面),比如汽车上的镀了一层金属物的保险杠. Environment mapping的处理过程比skybox稍微复杂一些,因为需要计算光线与表面的反射向量.反射向量主要由view direction(限入射角向量)和表面的法向量计算得到.具体