基于OGRE的大规模森林场景可视化研究
张 敏
(核工业计算机应用研究所,北京100048)
摘要:利用动态impostor技术的树木绘制方法,不仅可以快速地绘制树木,而且具有较高的真实感效果,而分页技术提供高度优化的方法来渲染大量的覆盖在无限区域上的树木模型,PLSM技术为大区域地形提供了可行的调度策略。利用以上方法,在OGRE图形引擎的基础上开发了大规模森林可视化系统,实现了虚拟森林三维场景模拟、小班信息查询、碰撞检测等功能,结果表明系统运行效率很高,为森林景观可视化和资源管理提供了真实感的虚拟环境。
关键词:森林场景实时渲染 OGRE impostor技术分页技术
Research of Visualization of large scale Forest Scene Based on OGRE
(ZHANG Min)
(Computer Application Institute of Nuclear Industry,Beijing 100048,China)
Abstract: Based on dynamic impostor technology is presented,which not only can fast rendering tree,but also has highly realistic effect. Paging Technology provides highly optimized methods for rendering massive amounts of tree meshes covering a possibly infinite area. PLSM technology offers Optimize Scheduling for arbitrarily large terrain.On the basis of study of related algorithms and OGRE,a large-scale virtual forest environment visualization system was developed, and to implement the following functions:large scale virtual forest simulating and information query of subcompartment, Collision detection and etc.The experiment showed that it can reach great run efficiency and offer a Realistic virtual environment for landscape visualization forest resource management.
Key words:forest scene;real-time rendering;OGRE;impostor technology;Paging technology
三维图形学中的一个最大的挑战就是如何生成和实时渲染大量真实感的室外景物[1],森林便是复杂室外场景的一个典型代表,它不仅整体模型复杂,如树木种类繁多,数量庞大,而且其中每一个个体树木所包含的枝叶数不胜数,森林绘制的数据量非常庞大,远远超出了当前图形硬件的处理能力,因此对森林进行建模与绘制就显得更加困难[2]。因此要实现虚拟森林中交互式实时漫游,必须采用一些特殊的优化处理技术,来保证场景的实时渲染。本文对大规模地形及森林景观的构建方法和实时渲染算法进行了较深入的研究,并基于OGRE引擎开发了大规模森林景观可视化系统。
1 OGRE 概述
OGRE(面向对象的图形渲染引擎)是用C++开发的面向对象且使用灵活的开源3D引擎。它的目的是让开发者能更方便和直接地开发基于3D硬件设备的应用程序或游戏。引擎中的类库对更底层的系统库(如:Direct3D和OpenGL)的全部使用细节进行了抽象,并提供了基于现实世界对象的接口和其它类[3]。
1.1 OGRE引擎主要特性
·全面并同等的支持OpenGL和Direct3D
·全面支持Windows,Linux以及Mac OS X平台
·简单并可扩展的对象框架,能方便的插入到已存在的应用程序框架中
·支持所有纹理混合和绑定技术,同时支持对GPU编程技术,支持汇编语言和所有高级语言形式的各种着色语言,其中高级语言包括:Cg,HLSL和GLSL
·全面支持渲染到纹理(Render-to-Texture)技术和投影纹理(贴花,Projective Texturing-decals)。
·全面支持材质LoD(细节层次,mipmapping)技术
·给出以插件方式链接不同场景结构的接口,允许你使用适合自己应用程序的场景体系
2 数据来源
1) 地形数据
三维地形是虚拟森林环境的重要组成部分,是虚拟森林中各种要素的“载体”。本研究中构建三维地形所采用的DEM,是由湖南攸县黄丰桥林场2006年1:10000的DEM数据作为数据源。(如图1)
图1 黄丰桥林场DEM
2) 林相图
林相图一直是森林资源信息的主要表现形式,是二类调查主要的图面成果,它主要是在地形图、行政区划图、土地利用图等基本图的基础上,根据小班调查资料勾绘而成(如图2),主要反应小班的立地状况及优势树种、龄组、平均胸径、树高、株数密度等信息,本研究利用林相图来获得小班的整体信息,根据小班边界图来确定树木的位置。
图2 试验区林相图
3)专题数据
专题数据主要包括线状图、土地利用图。线状图可以获取道路河流等位置、宽度和长度等属性信息。图利利用图可以获得场景内,如森林、村庄、农田、湖泊等的位置及面积信息。
3森林景观构建方法
3.1树木建模
在三维森林场景中最典型的地物是树木,它的建模是虚拟森林资源信息三维可视化建立首要关注的问题,同时也是计算机图形学领域的一个研究热点。目前主要有基于图形的三维树木建模方法,如基于分形的 L 系统、迭代函数系统( IFS )、粒子系统、随机插值模型[4-7],该方法构建的模型是树的矢量几何数据,具有高度的真实感,但由于其本身的复杂性和多样性,其渲染效率难以满足实时漫游要求;基于图像的数据建模主要有布告牌、布告牌云团等方法[8],这样,一个复杂的树木可以利用少量的多边形表示,是目前大规模场景常用的绘制方法,但近距离观看会发现它非常的不真实并且缺乏细节。
本文分析了以上树木建模方法的优缺点,综合采用基于图形、图像以及两种结合三维树木建模方法,当视点很远时采用图像的形式展示树木,随着视点的接近,逐渐采取图形、图像混合的方式,最后过渡到三维图形方式展示树木细节。
3.2林分可视化
本文利用森林资源二类调查的林相图获得林分整体信息,应用林分结构规律获得林分的胸径分布;在已知初植方式下计算空间位置信息;采用随机分布特性将胸径和空间位置联系起来,从而反演到林木个体。
1)林分结构规律
在未遭受到严重干扰的情况下,即使林分内部的造林时间和生长环境基本相同,但由于林木遗传性和林木个体之间相互竞争、相互作用,也会产生某些差异。这些差异的特征因子如胸径、树高等表现出较为稳定的结构规律性,在林学中称为林分结构规律[9]。林分胸径分布是最基本的林分结构。本文选择了灵活性大、适应性强且积分形式简单的Weibull分布来描述林木直径分布规律
2)树木分布算法
为了确定树木在森林场景的分布范围,自行开发了Shape文件[10]操作类库来读取小班图层信息,获得小班边界点的地理位置,再根据小班面积及单位上林木株数,采用随机分布的方法来确定每株数的平面位置。根据树木的平面位置所在的网格,采用双线性内插值法计算出每一点的海拔,就可得到树木所在位置的高程值。为了真正实现林木的分布位置随机,本文专门编写了随机数发生器,以保证产生的随机数是无重复的。
3.3 森林场景生成过程
系统读取试验区DEM顶点数据后,首先转换地理坐标为系统统一的坐标系统。再根据系统配置文件里的地形参数生成地形网格,然后根据视点远近贴上不同的地表纹理来增强地形的真实感和系统运行效率。随后,系统读取林相图、土地利用图、线状图获得地表对象的分布范围和位置,系统装载模型数据,生成森林场景(如图3)。
森林、道路、河流、建筑等对象分布范围 |
土地利用图 |
坐标转换模块 |
景观格局信息环境模型 |
三维地形 |
林相图
|
小班属性数据 |
树木参数信息
|
Ogre渲染引擎 |
林分结构规律 |
DEM数据 |
地形构建模块块 |
森林场景构建 |
光、天空、水面、草地等环境对象 |
虚拟森林场景 |
图3 森林场景构建过程
4 大规模森林场景渲染优化算法
4.1 基于动态Impostor技术的树木渲染
1)动态Impostor技术简介
Maciel首次提出了基于impostor技术的绘制方法。这种方法在预计算阶段把某些指定对象经投影变换转换成带有透明信息的纹理图像,映射到四边形平面后,再放置到场景中该对象原来所在的位置上,并将这类对象称为图像替身[11] 。在参考视点移动过程中动态创建,称之为动态impostor。
利用动态Impostor技术可将当前帧画面中距离视点较远物体的投影图像存储起来,在之后数帧的绘制过程中将该图像作为纹理影射到一个取代该物体的矩形上上,从而减少了课时范围内可见的几何面片,获得更高的绘制效率。在使用impostor绘制的每一帧中,impostor根据视点的变化,作相应的变形以模拟视点移动时和原来几何对象的所产生的误差,可进一步延长impostor使用的范围[12]。
Impostor的绘制速度与他所代替的模型的几何复杂度无关,仅受Impostor纹理的大小以及投影到屏幕的像素规模影响,而距离视点较远的物体在屏幕上的投影面积较小,这种方法可以快速显示任意复杂的场景,并且几何复杂度越高的物体,impostor绘制加速技术越能提高绘制速度。
2)impostor纹理生成
用于替代模型实体的impostor纹理必须包含实体的全部信息,其在屏幕坐标下仅覆盖原来几何物体的区域,因此,Impostor纹理可以通过三维场景的包围盒获得。为了生成impostor纹理,将物体包围盒的顶点从世界坐标系转换到屏幕坐标系,根据投影坐标的最大、坐标值确定包围这个物体的矩形,实体中所有顶点投影到屏幕后得到的像素都落在这个矩形内。将这一范围内的帧缓存拷入纹理内存就得到了物体的impostor纹理,如图4。
图4 Impostor纹理生成
3)绘制过程
Impostor纹理生成后,渲染一个对齐视窗的布告牌应是件很简单的事[13],但由于静态impostor纹理平面的分辨率是固定的,因此最后绘制出来的树木各种属性也是固定不变的。当视点和对象之间距离的改变时,impostor纹理的分辨率也会发生适当的改变,应该重新生成impostor纹理来保证场景的真实感。另外当对象与视点观察矢量之间的角度发生大范围变化时,则会产生几何图像的扭曲或失真,也需要根据新的参照视点重新生成impostor纹理。
4.2 基于PagedGeometry的大规模植被渲染
动态impostor技术较大地提高了渲染树木的速度,但对于大规模的复杂森林场景的快速渲染,还需要结合其他优化技术,本文利用了基于OGRE的森林渲染插件PagedGeometry来渲染大面积的植被的。PagedGeometry的分页技术可以根据设置页面尺寸和视点动态装卸页面,只装载和渲染需要看到的植被,同时可设定使用LOD的距离和级别;使用Impostor技术来渲染较远距离的植被,增加场景密集程度。分页技术使渲染效率比常规方法至少快100倍,提供了渲染无限区域上海量实体的优化方法,尤其适合茂密的森林和户外场景[14]。
4.3基于PLSM的地形渲染
PLSM(Paging Landscape SceneManager)地形场景分页管理器是OGRE的一个地形插件。它无限大地形,自动分页,局部载入,支持多贴图。它采用了类似计算机内存管理的段页式数据调度策略,允许将场景分成多个页或片,以片为最小分割单位,只有当视点到达某些页面场景时才会装载,能高效地实现大规模地形场景的可视化。PLSM有效地将数据模块,地形构建模块、渲染模块与行为模块协调组织在一起,能够实现各种地形的载入,提供了开放式的场景建模支持并在硬件层实现了高效的地形渲染[15]。
5.试验结果
根据以上方法,在VS2008开发环境下,结合OGRE开发了大规模、真实感的虚拟森林环境系统。系统实现了森林二维/三维交互漫游、场景对象属性查询、碰撞检测、风吹草动等功能.试验结果表明,本文采用的方法是合理、高效的,森林场景真实感强,运行效率很高,在配置为CPU:P4 2.0Ghz,内存:1024MB,显卡ATI X1300的微机运行环境下,场景规模在100平方公里以上,森林环境包含3百万棵树、高密度草地、建筑及动态水面等因子,系统可达20FPS以上,结果能满足实际大规模森林环境模拟(如图5-8)。
图5 森林场景鸟瞰图
图6 森林场景LOD层次
图7 近距离森林场景
图8 动态水面
参考文献:
[1] FUHRMANN, A., UMLAUF, E., AND MANTLER, S. Extreme model simpli_cation for forest rendering. InNatural Phenomena 2005: Eurographics Workshop on Natural Phenomena (2005), Eurographics Association,pp. 57.66.
[2] 杜金莲,宋凯,廖湖声. 一种实现森林场景漫游的几何与图像混合绘制方法.计算机应用研究, 2006,23(1):250-251,254
[3] Gregory Junker. Pro OGRE 3D Programming[M]. New York:Ed.Springer-Verlag.2006:25-27
[4] Hutchison J E.Fractals and Self-Similarity,Indiana University Math Journal, 198l, 30(5):713—747.
[5] Barnsley M F,Demko S.Iterated function systems and the 910bal construction of fractals.The Proceedings of the Royal Society,London,1985,399:243-275.
[6] P.Prusinkiewicz,A.Lindenmayer.The Algorithmic Beauty of P1ants[M]. New York:Ed.Springer-Verlag.1990.
[7] ReeVes W.T.Particle Systems-A Technique for Modeling a C1ass of Fuzzy Objects.ACM Computer Graphics,1983,17(3):359—376.
[8] S.Behrendt,C.C01ditz.Realistic real-time rendering of landscapes using billboard clouds.Journal of Computer Graphic Forum, 2005, 9(24):507—5 l 6.
[9]孟宪宇.测树学[M].北京:中国林业出版社.1995:66—127
[10]ESRI. ESRI Shapefile Technical Description -An ESRI White Paper[S].USA. Environmental Systems Research Institute, Inc.1998.
[11] 孙学波,张小苏.基于动态Impostor技术的树木快速绘制方法.计算机工程与设计,2008,29(12):3126-3129
[12]汪洋.基于IMPOSTOR技术的云绘制.中国民航大学,20070316
[13] chinaitlab。http://game.chinaitlab.com/freshmen/28070.html.2004-12-29
[15] http://www.ogre3d.org/addonforums/viewforum.php?f=14.2009-01-10
[14] 王汉东.韩元利.夏文芳.朱思蓉基于二叉树双队列驱动的PLSM地形场景建模 [期刊论文] - 人民长江 2007(10):108-110.