您的当前位置:首页正文

基于VRML构建虚拟校园场景中纹理映射技术的应用

2021-01-27 来源:好走旅游网
维普资讯 http://www.cqvip.com Microcomputer Applications Voi.23,No.10,2007 开发应用 微型电脑应用 2007年第23卷第1O期 文章编号:1007—757X(2007)1O一0036一O4 基于VRML构建虚拟校园场景中 纹理映射技术的应用 施贵刚,程效军 摘要:在基于VRML构建的某虚拟校园实践中,纹理映射技术使三维虚拟现实环境达到了良好的逼真效果。在VRML中 表面纹理映射技术中主要有纹理元素、纹理坐标系统、纹理映射切割器、纹理贴图的控制。在阐述它们原理过程中,首先分析了纹 理坐标系统的建立与纹理映射切割器的形成;其次着重探讨了纹理贴图控制的技术,对纹理映射的实现,纹理坐标的回旋、锁定、 变换作了深入的研究。并分别附以丰富的实例且编程实现。最后,以构建某虚拟校园三维场景为实例,验证了纹理映射技术的实 用性和优越性,总结了纹理映射的一般步骤和一些实践经验。 关键词:VRML;纹理坐标;纹理映射;贴图控制;虚拟校园场景 中图分类号:TP391.10 文献标识码:A 1引言 型上以此为纹理;此外还可通过采用TextureCoordinate节点 转换、旋转和缩放纹理坐标以形成新的纹理映射。从而生成直 众所周知,三维模拟和虚拟现实是数字城市主要表现的 观逼真的城市景观效果。 形式。目前,用虚拟现实建模语言(Virtual Reality Modeling 纹理映射可以像把墙纸贴到墙上一样映射到一个表面 Language,VRML)创建的具有照片纹理的三维城市模型(3 上,VRML中的Texture节点有三种:第一种是图像纹理(Iar— Dimensional City Modeling Language,3DCM),可以使人们身 ageTexture),它指定一个JPEG、GIF、BMP、TIFF、PNG等格 临其境般地感受数字城市,其在城市规划管理、场地选址、旅 式图像文件的URL;第二种是影片纹理(MovieTexture),它包 游等领域应用广泛 】]。为了营造逼真的三维虚拟环境,纹理映 含有MPEG影片文件的URL,可产生动画式样的纹理;第三 射技术的应用至关重要。纹理映射将丰富的纹理细节叠加在 种是像素纹理(PixelTexture),它容许在节点内直接以十六进 物体表面上,增强虚拟现实世界的真实感,弥补细节的不足; 制数定义象素形成纹理。大多数的图象处理软件中自带的调 通过透视变换,纹理提供了良好的三维线素;同时使用纹理大 色板程序都是采用以十进制表示一个字节来计量颜色值,即0 大减少了环境模型的多边形数目,提高图形显示的刷新频率。 ~255。此时可利用Windows的计数器方便实现十六进制和十 进制的转化。用十进制表示的颜色值只要除以255就可以转 2 VRML表面纹理映射 化为VRML文件中的RGB颜色表示法。 2.1纹理元素 纹理映射技术产生在2O世纪7O年代,是模拟自然景物表 纹理可以包含1至4个元素。单元素纹理,包含一个强度 面细节的一种有效方法,在生成真实感图形中得到了大量的 值,用来调整物体的颜色;2元素纹理,包含强度值和透明度 应用。纹理数据的来源主要有三种途径,分别来自于航空影 值;3元素纹理,包含红、绿、蓝三种颜色;4元素纹理,包含三 像、近景摄影相片或已经有的纹理数据库。在特殊情况下,我 种颜色和透明度值。常见的JPEG纹理是3元素纹理,PNG纹 们也可以通过图像处理软件自己定制纹理,建立系统的纹理 理是1~4元素,而且是唯一支持单元素纹理格式,GIF可使 数据库。 用3和4元素纹理 2]。为了利用最小的内存需求达到较好的效 利用VRML提供的纹理节点,可以把地面研究对象如: 果,可尝试对物体用单元素纹理和逐个顶点着色。这样的组合 房屋,每个侧面的数字影像(通过数码相机实地获取)或对象 可以达到比单独重复RGB纹理更丰富的效果。对于不同纹理 顶面影像(通过航空遥感获取)等纹理要素映射到对象模型 格式的处理和转换的工具很多,功能比较弱的有Windows的 上;把遥感影像、专题地图和地形要素映射到地形造型上。并 画图、Microsoft Photo Editor等;功能强大的如本文使用的 可以拉伸、缩小和旋转该纹理,也可在一个造型的表面上多次 Photoshop,它在图像编辑方面优势非常明显。此外还有Equi— 放置一个纹理图像;也可从纹理图像中抽取一部分,在整个造 librinm’DeBobelizer。 作者简介:施贵刚,同济大学测量与国土信息工程系,讲师,博士研究生,上海200092 程效军,同济大学测量与国土信息工程系,教授,博导,上海200092 ・36・ 维普资讯 http://www.cqvip.com Microcomputer Applications Vo1.23,No.10,2007 2.2纹理坐标系统 开发应用 微型电脑应用 袁1 2007年第23卷第10期 纹理是一个2D图像,它被数字化成颜色数据元素矩阵, 序号 O 1 2 l 3 是一种将2D图像映射到一个几何图形上并产生特殊效果或 真实感的一种技术,它并不是实际的几何模型。纹理图像被定 义成2D坐标平面,这个平面被映射到一个几何模型的2D坐 标上。当3D模型转换和投影到屏幕时,映射后的纹理也被旋 转和改变大小,并在屏幕上绘制出来,就好似位于模型的表面 匕。 ~ 纹理坐标 (O.0,0.O) (1.0,0.O) (1.0,1.O)l(O.0,1.O) 袁2 VRML中所有的几何类型,包括Box、Cone、Cylinder、Sh— pere、Text、IndexedFaeeSet、ElevationGrid和Extrusion都能 自动生成各自的纹理坐标。当采用IndexedFaceSet和Eleva— tionGrid节点描述造型的几何坐标时,可以采用用户的纹理 坐标替代自动生成的纹理坐标[4]。用户的纹理坐标可在Tex— ture—Coordinate节点中定义,并作为IndexedFaceSet和Ele— vationGrid节点中texCoord域的值[5]。如上图1中的C和E纹 理的生成就是用TextureCoordinate节点中定义用户的纹理 坐标,下面是E的核心代码: texCoord TextureCoordinate(#用户定义纹理坐标 n{j【¨r I、2移边 t E 1,Z 2 l^杯 的缎删 旧f lrt川 I VRMI, ̄ Ill pointE0.1 0.1,0.6 0.2,0.9 0.7,0.5 0.9,0.2 0.7]) #纹理坐标值 图1纹理坐标系统的使用 图1中A图所示的为纹理坐标系统。在该系统中,距离是 以S(水平)和T(垂直)来表示的,纹理坐标系统的原点是纹理 图像的左下角。可在水平和垂直方向取0到1之间的值。S和 T值的范围与纹理图像实际长和宽的象素的点数无关,如:纹 理坐标(1.0,1.O)总是表示图像的右上角,(O.5,0.5)表示图 像的中心。采用上述纹理坐标系统,可使纹理图像中位置的确 定与图像的大小无关。 2.3纹理映射切割器的形成 一texcoordIndex[O 1 2 3 4])#点的序号 3表面纹理贴图控制 3.1纹理映射的实现 采用纹理切割器的纹理坐标可从纹理图像中截取出所需 的一块纹理图像。要将该块图像映射到造型的一个表面时,该 块图像的每个角要与该表面的一个三维坐标对应。如果该块 图像和三维表面的大小不同,该块纹理图像要扩展或压缩以 致与表面吻合。为使一块纹理图像和一个造型的表面吻合,纹 理图像块和该表面一定要有相同数目的坐标点。如将图1中E 的纹理图像映射到表3所示的多边形面域时,每一个纹理坐 标要和面的坐标一一对应。通常按序号对应如表4(见图2中A 图),但也可不必如表4那样相同序号对应,也可如表5那样对 应。图2中B是将截取的纹理图像旋转并根据表5与面的坐标 对应。实现图2中B的表面纹理的核心 个纹理图(texture map)是一个二维图像,二维纹理映 射切割器的形状采用一系列的二维坐标描述。每个二维坐标 指定了在纹理坐标系统中的一个位置。VRML的Texture节 点texCoord和texCoordlndex域,决定了纹理坐标点对几何体 顶点的映射方法。浏览器通过对覆盖在几何体表面的纹理的 拉伸处理,使几何体顶点处像点在纹理坐标系上的坐标,符合 texCoord引用的Texture Coordinate节点的指定,同时决定出 在几何体其他位置的纹理像点,完成从二维图像纹理坐标系 (图1中A图)到三维VRML空间坐标系(图1中F图)的转 变嘲。 如果要截取一个正方形的纹理,可以定义一个如表1的 正方形的切割器。其中序号0是纹理图像的左下角,序号1坐 标表示右下角,序号2表示右上角,序号3表示左上角。定义了 此序列的图像边界,将得到一块含整个图像的纹理。由图1中 B图可知,由表1的正方形切割器得到图1中C图的纹理图 像。除了定义正方形的图像边界外,由图1中D图可知,也可定 义如表2的任意多边形的图像边界,纹理图见图1中E图。B、 D图表示切割图像的边界。 A表4映射图 B表5映射图 图2不同纹理映射形成的各表面 ・37・ 维普资讯 http://www.cqvip.com Microcomputer Applications Vo1.23,No.10,2007 袁3 开发应用 微型电脑应用 2007年第23卷第1O期 序号 O 1 (6,2) 袁4 2 l 3 (9,7)l(5,9) 4 (2,7) 点中的repeatS和repeatT域以关闭S或T或S和T两个方向 的回绕功能。 3.3纹理坐标锁定 面坐标点 (1,1) 锁定纹理坐标能防止其回绕,这样使得在造型上只出现 面序号 O 纹理序号 O 面序号f 0 1 1 袁5 2 l 3 2 j 3 4 次,而不能重复复制。可在S或T或S和T方向上分别锁定 当S方向的纹理坐标值小于0.0或大于1.0的坐标被锁定到 一相应的边。如(一1.3,0.5)和(2.5,0.O)被分别锁定到边界上 (O.0,0.5)和(1.0,0.O)。T方向的锁定与S方向类似。这样就 可在S或T或S和T方向上限制纹理图像的无限复制。此时会 在纹理图像的周围产生拖影的效果,可在纹理图像的边缘添 加颜色来控制拖影效果。当纹理图像在平面上产生拖影时,是 以边界上的象素点填充拖影部分的。纹理坐标锁定是由Im- ageTexturePixelTexture和MovieTexture节点中repeatS和 1 2 I 3 {4 纹理序号I 4 O 1 { 2 I 3 代码如下: IndexedFaceSet{coord Coordinate{#形成一个面形 pointE1 1 0.0,6 2 0.0,9 7 0.0,5 9 0.0,2 7 0.O]) #面形顶点的坐标值 coordlndex[0,1,2,3,4]#面序号 texCoord TextureCoordinate repeatT域确定的。它们的值为TRUE时采用纹理坐标回绕, 为FALSE时进行锁定。 {pointE0.1 0.1,0.6 0.2,0.9 0.7,0.5 0.9,0.2 0.7]) #纹理坐标 texCoordIndex[4 0 1 2 3])#纹理序号 3.2纹理坐标回绕 在纹理坐标系统中,纹理图像在S和T方向总是从0.0到 1.0。前面采用纹理坐标从纹理图像的区域之中选取一块。其 实也可选择纹理图像之外的区域,如在图像的左右上下之外。 当选取较大区域时,纹理坐标点就会回绕。这样在图像上部之 上的坐标回绕到图像的底部,在图像底部之下的坐标回绕到 图像的上部。同样纹理坐标在图像左侧的坐标回绕到纹理图 像右部,纹理坐标在图像右侧的坐标回绕到纹理图像的左部。 例如下面代码设计: [一1—1 0,3—1 0,3 3 0,一1 3 O]) IndexedFaceSet{coord Coordinate{#形成一个面形point #面形顶点的坐标值 coordlndex[0,1,2,3]#面序号 texCoord TextureCoordinate{#纹理坐标 point[-一0.5—0.5,1.5—0.5,1.5 1.5,一0.5 1.5 ) texCoordIndex[O 1 2 3])#纹理序号 蠢 嚣 器 C 锁定T方向 D图4纹理坐标锁定原理 锁定T和S方向 图4表明了纹理锁定所产生的效果,下面给出其中D图的 核心代码: texture ImageTexture{#纹理映射 url”brick.jPg”#纹理图片 repeats FALSE#水平方向锁定 repeatT FALSE)#垂直方向锁定 3.4纹理坐标变换 采用TextureTransform节点可以生成一个新的纹理坐 I一 一 一 一 标系统以描述纹理图像切割器的形状。通过改变Texture— Transform节点中translation、rotation和scale域的值,可在截 取图像并映射到造型之前,定位、旋转和缩放所要截取图像的 形状 。图5正确地反映了纹理坐标的变换,其中生成H的贴 图的主要代码为: Texture ImageTexture{#纹理贴图 url”eden.jPg”)#纹理图片 textureTransform TextureTransform{ l k A纹理回绕坐标 B 纹理回绕形成的贴图 图3纹理回绕原理 图3中A图描述了该纹理坐标的位置,其中的B图是形成 的纹理图像在面域上的贴图。纹理坐标回绕可以在造型上多 次重复一个纹理。在缺省情况下,纹理坐标回绕的功能是打开 的。可以设置ImageTexture、PixelTexture和MovieTexture节 ・38・ #纹理坐标变换 Translation 0.5 0#纹理坐标系水平方向 移动0.5个单位 rotation 0.785#切割器旋转45度 维普资讯 http://www.cqvip.com Microcomputer Applications Vo1.23,No.10,2007 开发应用 微型电脑应用 2007年第23卷第10期 scale 2 2))#切割器水平和垂直方向放大2倍 一些经验和方法,可以为以后的工作提高效率。总之,在 VRML中表面纹理贴图可总结为以下几个步骤: 4在某虚拟校园构建中纹理映射技术的应用 (1)采用一个ImageTexture,PixelTexture或MovieTex— ture节点,并确定纹理图像;飞  4.1系统开发环境 (2)采用二维纹理坐标描述纹理映射切割器; 在构建某虚拟校园中,采用的操作系统为Microsoft Win— (3)截取一块映射图像; dows XP Professiona1)VRML编辑器VrmlPad2.0;Java编辑 (4)在造型的表面上扩展纹理图像,并与造型的表面吻 器EditPlus2.0中文版)JDK1.2.2包;VRML浏览器Comso— 合,使纹理图像的每一个角与面上的相应坐标点对应。 Player2.1;3DS Max6.0;Tomcat4.1版本;VRML97.JAR; GZip等。 A T B T ‘  ‘‘’ i 矗 ’毒0t ^ ・ l^靠” J 毒 一 一 一 一1 !,●¨ ,枷* ‘ ●,l1● L _ 1 1 ’ j, ^“ ^^ , ^ .  ... ! .\ ’ D § 图7纹理映射处理后虚拟校园场景一帧 !^靠,一 ‘ : 叫;^ 可以重复上面步骤在造型的不同面上进行纹理映射。对 — ,l1 于立方体、锥体、球体、圆柱体以及拉伸形体等只能使用各自 的缺省纹理映射方式,此时纹理坐标系的水平轴为造型的最 长边,并用次长边为垂直轴。但对使用标号平面集或标高网格 构建的形体可以指定纹理映射的具体方式。 . 5结束语 在开发某虚拟校园过程中,由于需要在网络上发布,所以 图5A创建了正方形纹理切割器 在纹理映射实践过程中,大幅的高质量的纹理通过网络下载 B水平向右移动纹理坐标系; 会很慢。对某些系统而言显示起来也很慢,并且内存的使用较 C放大纹理切割器2倍; 大。因此,需要注意纹理的优化、压缩和裁剪,在保证纹理效果 D旋转纹理切割器45度; 足够好的情况下,应尽量使纹理幅面小些和尽可能地重复使 E、F扣G分别是纹理变换后映射到正方形面的贴图; 用同一纹理。 H是三种变换的联合使用生成的贴图 4.2纹理映射技术在某虚拟校园中的应用 参考文献: 在基于VRML构建的某虚拟校园三维场景建模中,根据 上述纹理映射的原理与方法,在开发某虚拟校园过程中,由于 E1-]黄铁军,柳健译.VRML国际标准与应用指南EM-].北京: 纹理映射的很好的利用,从而有效的模拟了现实校园环境,具 电子工业出版社,1999. 有较强的真实感。图6是采用纹理映射技术处理的楼房变面 E23宗志方,季晖,谭江天等译.VRML资源手 ̄EM-].北京:电 的效果图;图7是整个虚拟校园环境建成后,校园场景的一 子工业出版社,1998. 帧。 [33黄野,常歌.VRML技术在城市景观交互显示中的应用 _ _l [J].信息工程大学测绘学院学报,2001,(9):18—20. E4-]赛博科技工作室.VRML与Java缩程技术EM-].北京:人 民邮电出版社,2002. E53ISO/IEC DIS 14772—1.VRML97 Specification Es3 EEB/ OL].httpt://www.vrm1.org/. E63The Virtual Reality Modeline Language Specification Ver— sion 2.0,ISOI/IECCD14772Ez3. 图6采用纹理映射技术处理的楼房表面 (收稿日期:2007—1—31) 4.3纹理映射的步骤 在基于VRML构建的某虚拟校园的实践过程中,得到了 ・39・ 

因篇幅问题不能全部显示,请点此查看更多更全内容