张培培 高顺喜
(1上海市岩土地质研究院有限公司上海200072;2上海市地矿工程勘察院上海200072)
纹理映射技术在三维场景可视化中的应用研究
张培培1高顺喜2
(1上海市岩土地质研究院有限公司上海200072;2上海市地矿工程勘察院上海200072)
在虚拟场景的构建中,纹理映射技术能快速提高三维虚拟现实环境的逼真度和场景绘制效率。在三维场景可视化中,纹理映射技术主要包括纹理校正、纹理坐标系统、纹理映射、纹理反走样、纹理烘焙等。本文以纹理映射步骤为路线,介绍了纹理映射的原理,纹理映射的步骤,大型三维场景建设中Mipmap技术的使用以平衡场景绘制效率和场景真实度间的矛盾,最后以构建某校园三维场景为实例,验证了纹理映射技术的实用性和优越性,总结了纹理映射的一般步骤和一些实践经验。
纹理映射纹理坐标虚拟现实可视化
三维建模和虚拟现实是数字城市的主要变现形式。目前,很多数字化场景都是在虚拟现实环境下创建的具有一定纹理照片的三维场景。纹理映射技术将丰富的纹理细节叠加在物体表面上,增强虚拟现实世界的真实感,弥补细节的不足;通过透视变化,纹理提供了良好的三维线素;同时使用纹理大大减少了环境模型的多边形数目,提高图形显示的刷新频率[1]。
纹理映射作为真实感图形的重要绘制技术就是将纹理图“贴到”光滑物体表面,达到对复杂结构物体表面精细建模和精确光照计算的同样效果,不但可以提升建模的效率还可以解决因模型顶点数目过多导致系统和显卡运算负荷的不足,从而增加场景的真实性。
2.1纹理图像采集及纠正
纹理映射技术中使用的纹理图可以是任何图像。现场实地采集纹理图片时要求尽量采集非倾斜、明亮的照片。若现场条件有限,可先获取局部影像资料,再利用后期图像处理软件拼接。
现场采集的原始图像往往存在图像倾斜、变形、拍摄时相差异导致的图像色调不一致等问题不符合贴图要求,需要对这些相片进行预处理和正射纠正。其中,预处理包括对相片的裁剪、均衡、压缩、无缝拼接等一系列工作;正射纠正是针对像片拍摄的角度、像片变形等问题而做的处理工作。如图1是采集图片处理前后对比图。
图1 纹理校正
2.2纹理映射技术
纹理映射的本质就是二维纹理平面到三维物体表面的一个映射。将二维数字纹理视为一个m×n的连续数组,坐标范围[0,1],如图2所示,将其中的每一个数据(RGB颜色以及Alpha值)作为一个纹素。
图2 一幅256×512图像的纹理坐标与纹理数组
在建模时为每个顶点都定义纹理坐标,s和t取值都在[0,1]。这样可得到每个顶点对应的纹理像素颜色。多边形内部像素的纹理坐标在显示阶段由插值得到,从数学的观点纹理映射可用下式描述:
其中,(s,t)、(x,y,z)分别表示纹理空间和物体空间中P点的坐标,上式表达了物体空间到纹理空间的纹理映射关系。
再以此为基础建立物体空间P和屏幕空间q的映射关系
式中P和q分别表示物体空间中点P及其在屏幕空间中对应的位置q。
具体的映射关系如图3所示。
图3 纹理空间、景物空间及屏幕空间之间的映射关系
但这种方法在遇到无参数化曲面时其映射函数就很难确定,在实际应用中为解决无参数化曲面的情况,采用两步法纹理映射技术,将纹理空间到景物空间的映射分解为S映射和O映射这两个简单映射的复合。首先引进一个包围景物的中介三维曲面作为中间映射媒介,如球面、圆柱面、立方体等,将二维纹理空间映射到该三维中介物体表面,建立如下的S映射:
再将上述三维中介物体表面上的纹理映射到目标景物表面,具体可表示为如下的O映射:
在两步纹理映射法的基础上,人们提出了很多改进的方法,如基于能量最小化思想的不同纹理映射算法[3][4][5]、在隐式曲面上通过用户交互的方式实现纹理的实时映射[6]、过程纹理合成方法[7]等,从不同角度提高纹理映射的真实感效果。场景建设中可根据场景对象的不同特点选择合适的纹理映射方法。
2.3纹理优化
采用反走样、多分辨率纹理图像等方法优化纹理映射效果并提高纹理内存使用效率。
2.3.1反走样
当纹理像素分辨率高于屏幕像素分辨率时,为提高图形加载速率,通常采用普通纹理结合细致纹理的方法描述近景[8],其中常用的是Mipmap(Multi-image pyramid Map,Mipmap)技术[9],这个方法可在平面像素的绘制过程中实现实时纹理反走样和支持多级纹理细化映射过程。Mipmap方法相当于纹理LOD,利用双线性插值和三线性插值将低一级图像每边的分辨率取为高一级图像每边分辨率的二分之一。这样MipMap就构成一个分辨率逐级减少的图像分辨率金字塔,如图4所示。其中0层是原始图片也是分辨率最高、占用内存最大的层,每层图像所占的存储空间是下一层的四分之一。
图4 Mipmap结构和纹理示意图
2.3.2纹理烘焙
在可视化场景中,人眼更倾向于寻找对象的细节,因此,为增加图片的真实感和自然属性,通常利用纹理烘焙技术处理映射纹理图片。纹理烘焙就是将整个空间场景的模型分别渲染成具有全局光照信息的烘焙贴图,以便更换场景摄像机时可缩短场景渲染的时间。
图5是某大学医疗废品回收站使用纹理贴图前后效果对比图。
图5 纹理映射及优化前后对比图
3.1系统开发环境
该系统的整个开发过程是在Windows XP操作系统和Visual C++6.0平台下进行的,图形用户界面部分应用了MFC和Open Inventor图形库,最终完成的原型系统可在Windows平台下运行。
3.2纹理映射技术在三维场景构建中的应用
图6 三维场景可视化效果图
根据上述纹理映射的原理与方法,在某三维场景建设中发现,纹理映射技术的利用,可以有效模拟现实环境,增强场景的真实感。下图是使用纹理映射技术的三维场景其中两帧。
在三维场景构建中场景复杂度的提高、大量纹理库存的使用,也会影响系统显示运行的速度、占用大量CPU内存和处理时间,这对场景的可视化效果有很大影响,也会大大降低系统的执行效率。因此,需要注意纹理的优化、压缩和裁剪,在保证可视化效果不受影响的前提下,应尽可能使用可重复利用的同一纹理图片。
[1]施贵刚,程效军.基于VRML构建虚拟校园场景中纹理映射技术的应用.遥感技术. 2007,(5)86~90
[2]E A Bier,K R Sloan.Two-part texture mappings[J].IEEE ComputerGraphics and Application(S0272-1716),1986,6(9):40-53.
[3]B Levy,J L Mallet.Non-Distortion Texture Mapping For ShearedTriangulated Meshes[C] //In:Computer Graphics Proceedings,Annual Conference Series(SIGGRAPH98),1998:343-352.
[4]J Maillot,H Yahia,AVerroust.Interactive Texture Mapping[C]//In:Computer Graphics Proceedings,Annual Conference Series(SIGGRAPH93),1993:27-34.
[5]D Piponi,G Borshukov.Seamless Texture Mapping of SubdivisionSurfaces by Model Pelting and Texture Blending[C]//In:ComputerGraphics Proceedings,Annual Conference Series (SIGGRAPH2000),2000:471-478.
[6]H K Pedersen.Decorating Implicit Surfaces[C]//In:ComputerGraphics Proceedings,Annual Conference Series(SIGGRAPH95),1995:291-300.
[7]林茂庸,柯有安.雷达信号理论[M].北京:国防工业出版社,1984.
[8]张小超,王精业.虚拟场景漫游系统的体系结构分析.系统仿真学报.2005,vol.17 (4):917~919.
[9]Lance Williams.Pyramidalparametrics.Computer Graphics(SIGGRAPH'83 Proceedings. 1983.
P2[文献码]B
1000-405X(2015)-7-296-2
张培培(1989~),女,毕业于同济大学,硕士,助理工程师,研究方向为摄影测量与遥感。