基于GPU 和场景分页的森林可视化模拟

1623 篇文章 23 订阅
1277 篇文章 12 订阅
基于GPU 和场景分页的森林可视化模拟
李长银,陈永富* ,张怀清
( 中国林业科学研究院资源信息研究所,北京100091)
收稿日期: 2010-09-26
基金项目: 中央级公益性科研院所项目( IFRIT200904) 、国家林业局948 引进项目( 2008-4-61)
作者简介: 李长银( 1986—) ,男,硕士研究生。主要从事林业虚拟现实技术研究。E-mail: oklcy@163. com.
* 通讯作者: 研究员,硕士生导师。研究方向为森林经营管理与信息系统。E-mail: chenyf@ caf. ac. cn
关键词: 森林生长模拟; 可视化; 分页调度; GPU
中图分类号: S771 文献标识码: A
Visual Simulation of Forest Growth Based on GPU and Terrain Paging
LI Chang-yin,CHEN Yong-fu,ZHANG Huai-qing
( Research Institute of Forest Resource Information Techniques,Chinese Academy of Forestry,Beijing 100091,China)
Abstract: A GPU-based visualization method of large forest scenarios simulation was proposed by using Cg language
balance between scheduling CPU and GPU load. A scene roaming method based on pre-partition paging algorithms
effective balanced the system consumption. On this basis,the visual simulation of Huangfengqiao Forest Farm achieved
good results.
Key words: forest growth simulation; visualization; scene paging algorithm; GPU
森林地域分布广阔,森林中植被众多、光影分布
复杂。在森林可视化模拟时巨大的场景,场景中大
量的模型,复杂的光线和阴影给真实感绘制带来了
很大的困难[1]。特别是在基于单木生长模型的森林
生长可视化模拟中,由于要对每一棵树的生长进行
计算,同时还要渲染三维场景中大量的模型,计算光
照阴影等,CPU 的计算量很大。一般的森林场景都
是通过离线生成场景然后再加载的方式来制作的,
不能动态模拟森林的一些状态[2]。传统的3D 场景
加速方法一般都着眼于快速剔除不可见多边形,同
时根据摄像机位置选择合适的LOD[3 - 4],尽量减少
渲染的多边形个数,以此减轻CPU 的负担,加速渲
染速度,而在这个过程中GPU( Graphics Processing
Units[5],图形处理单元) 只是用来负责绘制三角面
片,浪费了GPU 计算资源。在地形渲染方面,对于
大量的需要渲染的地形和场景数据,一次性加载会
极大影响程序的响应时间,消耗大量的内存资源,增
加CPU 的等待时间[6]。地形分页技术可以很好的
减少CPU 的等待时间,减少内存占用,提高效率的
同时又能保证渲染效率[7 - 8]。传统的地形分页调度
策略是对海量地形数据进行空间页面( page) 划分,
把page 作为地形数据的基本调度单位,在场景漫游
时动态的加载[9]。这类算法一般只着重于地形的分
页,没有考虑场景中的内容,对于具有大量细节的森
林场景来说,各种模型和特效的动态加载没有考虑。
文中针对GPU 的特点提出了一种将部分CPU
计算转移到GPU 中的渲染方案,利用GPU 的可编程
特性,将纹理渲染和阴影计算转移到GPU 中来,有
效地均衡CPU 和GPU 的负载,使具有大量细节模型
的森林生长场景的渲染更加流畅。对于森林可视化
模拟中的场景渲染,提出了基于视域的预分页场景
调度算法,将场景和场景上的各种实体分成两个线
程独立调度。组成一个可漫游的、可交互查询的森
林三维可视化场景。
林业科学研究第24 卷
1 森林场景可视化构建技术
1. 1 基于GPU 的场景渲染
1. 1. 1 GPU 渲染材质排序在GPU 硬件渲染过程
中相同渲染状态的物体可以在一个批次中一次完
成,但是渲染不同的模型或者材质的时候,需要绘图
状态的改变。而在图形硬件上改变渲染状态是一个
耗费比较高的过程[10]。森林场景中模型很多,不同
模型之间渲染状态的改变是影响渲染效率的重要因
素。为了减少渲染状态改变带来的影响,在GPU 渲
染流水线中对需要渲染的材质进行排序。排序时遵
从切换次数最少的原理,各个状态的切换优先级从
纹理-灯光-Alpha 的顺序来排列。
具体的排序如下例。整个渲染周期最复杂的材
质包括以下3 部分: 纹理贴图,光照,Alpha 混合。需
要渲染的物体为4 个: A、B、C、D。它们的材质分布
如图:
树木材质A
纹理texture1
光照Light 1
树木材质B
纹理texture2
光照Light 3
树木材质C
纹理texture2
光照Light 2
树木材质D
纹理texture3
光照Light 3
图1 4 种不同的材质
其中: 纹理有3 种,灯光有3 种,Alpha 有2 种。
按照切换次数最少且效率最高的原则,排序的渲染
结果应该是: C-B-D-A。在森林场景渲染的时候,按
照以上原则对GPU 中需要渲染的材质进行排序。
1. 1. 2 森林场景中的阴影渲染阴影是渲染一个
真实场景的重要组成部分,它们可以给场景中的物
体提供更加真实的感觉,同时还可以帮助用户更好
的了解对象间的空间关系[11]。
森林场景中,由于树冠的遮蔽作用,各个林层中
的光线分布极其复杂,不同林分之间阴影分布差异
性也很大。阳生树种组成的林分透光性比较好,林
分比较明亮,林分中的光线以直射光和散射光为主,
林下的阴影比较明显。阴生树种组成的林分透光性
差,林下阴暗,光的分布主要以散射光为主,阴影
较淡。
在 3D 场景渲染中,实时动态阴影的渲染是一个
CPU 耗费较高的过程,GPU 的的图形运算性能可以
很好的完成复杂的光影计算[12]。本文中,阴影采用
纹理阴影来实现,使用Cg 语言编写的顶点程序和片
段程序来进行绘制,纹理阴影的所有计算都在GPU
中完成,充分利用了GPU 的并行性实现绘制加速。
1. 2 场景调度算法
在场景中实体加载时候建立一个专门的实体加
载器算法,对场景中的树木、灌丛、草等不同物体按
类别分开加载,在这个基础上分别进行相应的优化,
提高了场景加载和渲染速度。
对于包含大量细节模型的森林场景渲染,通常
的做法是将场景中的模型和地形分开渲染,这样能
很好的管理渲染调度。但是这样会导致一个问题,
那就是在场景漫游的时候有时候会出现场景中地形
和物体出现次序问题。例如在场景的远处,模型已
经被渲染出来了,而地形还没有渲染出来的情况。
本文场景调度算法把场景中的地形和场景中的
实体统一调度,在提高整体渲染速度的基础上避免
了场景中实体和地形渲染次序的问题。
具体的渲染技术如下:
1. 2. 1 高度图分割预处理地形信息存储在一张
16 位的高度图( height map) 里边,高度图是一张记
录高度信息的图片,它可以记录0 655 35 的高度
差范围。其长和宽表示了所要渲染地形的长和宽。
在渲染前应该对高度图进行分割,以便于渲染时进
行动态的加载。整个灰度图被分割成多个page,每
个page 作为场景树上的节点,为提高效率,每个
page 大小为2m + 1( m > 6) ,每个page 可以划分为4
个tile,在实际渲染时tile 是具体的渲染单位。划分
方法如图2。
1. 2. 2 基于摄像机场景渲染分页调度算法为了
实现场景漫游,系统需要根据摄像机的位置和朝向
动态加载和卸载不同的page 和相应page 上的实体。
基于摄像机位置的动态场景加载算法如下:
a. 新建一个页面加载队列pageload 和一个已加
载队列pageloaded。并为每一个加载的page 建立一
个引用计数nCount 并初始化为0。
b. 根据摄像机的位置选取当前page。
b1
) 同时根据摄像机的最远裁剪面与当前位置
的距离D 在当前page 的相邻page 中进行判断,比
较那些页面处于摄像机的可视范围之内。将可视范
围内的页面加入pageload 队列,同时用实体加载器
加载相应的实体。
b2
) 根据D 判断pageloaded 中的页面是否处在
可视范围内,若不在可视范围内则从pageloaded 中
542
第4 期李长银等: 基于GPU 和场景分页的森林可视化模拟
图2 地形分页算法示意图
清除掉页面索引并释放占用的内存,删除相应的
实体。
c. 加载pageload 队列中的页面。并将已加载页
面加入到pageloaded 队列中。
d. 判断当前页是否改变,每一帧重复以上过程。
1. 3 模型
森林场景中存在大量对象,为了准确地表达森
林场景,需要相应场景中的模型。主要包括以下各
种不同的模型:
在森林模拟中常见的单株木模型有基于图像的
和基于图形的建模方法[13]。其中基于图像的建模
方法主要是利用公告板( billboard) ,即通过将树木
的纹理贴在与地面垂直的多边形上来表达树木的形
状,漫游时,多边形转动以保持和视线相垂直的状
态。这种方法具有节约资源的优点,但是由于纹理
单一,缺乏真实的阴影,在近距离的时候缺乏真实
感[14]。基于图形的单木模型需要在建模工具中根
据实际的树木特征建立三维模型,在表达森林场景
的时候比较细腻,具有较高的真实感。
在森林场景中,采用基于图形的建模方法。每
种树建立4 个年龄段的不同模型: 幼龄,中龄林,成
熟龄,过熟龄。以增加模拟不同年龄的林分时的真
实性和表现力。每个模型建立5 个不同的LOD( 层
次细节模型) 以供在不同距离时加载,减少总体渲染
计算量。
1. 4 场景组织
场景以xml 的方式组织。xml 文件将场景中的
地形分页配置大小、地形大小、地形渲染高度图配
置、地形渲染纹理源文件、每株树坐标,水体道路等
位置用xml 格式的配置文件存储。便于对场景进行
配置,减少编译的次数,以增加系统的灵活性。
2 模拟数据收集整理
用于模拟的数据主要有地形环境和林分信息两
种。地形环境数据用于渲染地形相关部分,如地表
起伏、道路河流、建筑等等。林分信息主要用于表达
林分特征。
2. 1 地形数据
湖南省攸县1: 500 00 的数字高程模型,用于渲
染地形。不同林种的地表纹理,道路河流的纹理。
2. 2 林分信息
黄丰桥林场的林相图,分布在黄丰桥林场的6
块固定样地的观测数据。观测数据主要包括: 林分
的起源、下木的种类、多度、坡度、坡向。每株树的树
种、年龄、胸径、树高、GPS( X、Y、Z) 坐标位置、东西
冠幅、南北冠幅。收集了湖南省攸县黄丰桥镇黄丰
桥林场的2006、2007、2008 年的林相图。以及3 年
的固定样地观测数据。
3 系统实现和模拟结果
系统采用C + + 语言和OGRE 渲染引擎在Virtual
Studio 环境下编程实现主体框架,用Cg 语言编写
Shader 着色脚本。系统对湖南省攸县黄丰桥林场进
行生长可视化模拟,实验环境为: Pentium IV 3. 05
GHz,2 G 内存NVIDIA FX570 512 M 显存显卡,操作
系统为windows XP。整个林场场景的面积为7 800
hm2,图形绘制效果可达到35 帧·s - 1 左右。在场景
漫游时各个分页过度平滑。系统可以对林场的生长
过程进行模拟,系统的模拟场景如图3 和图4:
图3 15 年生杉木林
543
林业科学研究第24 卷
图4 20 年生杉木林
帧频和渲染的三角形数目如表1:
表1 性能数据统计
场景中树木/

平均帧率
( FPS)
渲染三角形渲染批次
10 000 45. 7 45 000 15
500 000 32. 5 225 000 81
2 000 000 27. 9 340 000 93
4 小结
本文提出了一种基于分页调度技术的林分生长
可视化方法,该方法将大地形分页技术和林分生长
模拟技术集合起来,实现了大范围的林分生长可视
化模拟,具有一定的实用价值。在以后的研究中将
继续将森林经营、辅助决策加入,并进一步完善森林
环境构建。
参考文献:
[1] 舒娱琴. 虚拟森林经营管理系统的设计与实现[J]. 林业科学,
2007,4
3( 10) : 138 - 144
[2]诸峰. 大规模三维地形与天空场景的实时渲染[J]. 计算机应
用与软件,2009,26( 5) : 74 - 76
[3] 陈启祥,陈小磊. 基于LOD 的大规模地形渲染技术研究[J].
软件导刊,2007,52( 3) : 90 - 92
[4] 张桀宁,李帅. 一种基于顶点纹理的lod 地形渲染算法[J].
系统仿真学报,2008,20( 7) : 1758 - 1764
[5]Erik L,Kilgard M J,Henry M. A User Programmable Vertex Engine
Proceedings of the Computer Graphics [C]. Proceedings of SIGGRAPH2001,
Annual Conference Series,ACM SIGGRAPH,Los
Angeles,F,2001
[6] 高宇,邓宝松,杨冰,等. 基于外存的大规模虚拟环境交互
漫游[J]. 系统仿真学报,2006,18( 10) : 2988 - 2991
[7] 林继承,万旺根,崔滨,等. 一种超大规模地形场景的实时渲
染算法[J]. 计算机仿真,2009( 11) : 224 - 277
[8] 施松新,叶修梓,张三元,等. 基于分块的大规模地形实时渲染
方法[J]. 浙江大学学报: 工学版,2007,41( 12) : 2002 - 2006
[9] 周珂,陈雷霆,何明耘. Pc 平台下海量地形的分页调度和实
时渲染[J]. 计算机应用研究,2009,26( 9) : 3575 - 3577
[10]程甜甜,陈阁,陈新,等. 基于gpu 的大规模地形场景实时
渲染[J]. 苏州大学学报: 工科版,2008,28( 3) : 1 - 5
[11]Erik L. Effect of Shadow Quality on the Perception of Spatial Relationships
in Computer Generated Imagery [J]. Computer Graphics,
1992,25( 2) : 39 - 42
[12] 杨兵,李凤霞,战守义,等. GPU 在复杂场景的阴影绘制中的
应用[J]. 计算机工程,2006,32( 2) : 220 - 222
[13] 张敏,张怀清,陈永富. 虚拟森林环境构建研究[J]. 林业
科学研究,2008,2
1( 增刊) : 55 - 59
[14] 雷相东,常敏,陆元昌,等. 虚拟树木生长建模及可视化研
究综述[J]. 林业科学,2006,1
1: 123 - 131
544
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值