栏目
首页 > 农林果 > 林业技术

面向森林动态生长过程的场景系统设计和实现


  摘 要:植物的模拟一直是计算机图形学领域研究的热点问题之一。近年来,国内外的研究人员在提高植物建模的精细度方面开展了大量研究,但是针对大规模植物场景建模的体系结构设计问题,尤其是支持动态生长变化的场景体系结构设计问题的研究还比较少见。针对森林动态生长过程场景系统的仿真应用,提出了一个全新的森林场景架构设计方案,采用了模块化与层次化相结合的思想构建森林场景系统。该系统不仅支持传统方法不能解决的用户动态交互(修改场景实体、漫游)的需求,而且具有良好的维护性和扩展性。
  关键词:动态生长; 用户动态交互; 层次化; 模块化
  中图分类号:TP391.41 文献标志码:A
   文章编号:10013695(2008)09287203
  Design and implementation of dynamicgrowthforest scene simulation system framework
  FAN Jing, SUN Siang, DONG Tianyang
   (College of Computer Software & Engineering, Zhejiang University of Technology, Hangzhou 310032, China)
  Abstract:The simulation of plants had been one of the research hotspots in computer graphics area. While great efforts had been made on how to improve the accuracy of plants modeling recently, little research had been published on the design of overall architecture of bigscale plants scene, especially which supports the dynamic growth effect of plants. This paper proposed a completely new framework which adopted the combination of modularization and levelabstraction abstractions of different levels on how to design a forest scene oriented to the above issue.The systemnot only supports the dynamic userinteractive demands such as runtime modification of scene objects and the user traversing at interactive frame rates, but also has good maintainability and extensibility.
  Key words:dynamic growth effect; dynamic userinteractive demand; levelabstraction; modularization
  
  0 引言
  
  传统以森林场景为典型应用的真实感植物生态系统在建模与渲染时侧重于场景的视觉效果。通过在高端计算机(如Calgary大学的计算机科学系采用的195 MHz R10000 8处理器的Silicon Graphics Onyx,以及768 MB内存[1])上采用各种图形建模技术、渲染技术和细节简化技术可以实现大规模生态系统的模拟仿真。构建一个生态模拟系统的典型过程包括如下步骤 [1]:
  a)编辑地形[2,3];
  b)设定种群密度[4,5];
  c)植物建模[6~8];
  d)使用相似化实例技术[9];
  e)渲染[9~11]。
  构建生态模拟系统采用的传统方法是流水线(pipeline)方法,可以对不同阶段开发相应的建模工具。但是用这样的方法构建起来的场景存在的问题有:(a)场景是静态的。一旦场景建立好,用户便不能对场景中的某个部分作任何修改;场景不会随时间的变化展现出自然变化过程。由于大规模的实例化,用户的实时漫游要求也很难得到满足。(b)系统耦合度高。由于不同过程采用不同建模工具设计,没有统一的接口,导致一旦某个工具的接口改变,整个系统可能需重新设计。
  鉴于此,本文提出了一个面向森林动态生长过程的森林场景的体系结构。该体系结构采用了模块化与层次化结合的思想,使得场景的各个组成部分支持独立的用户修改和自然过程动态变化(如树木的长大、变粗等),系统具有很好的可维护性和可扩展性。
  
  1 总体架构设计
  
  层次化场景设计使得整个仿真系统有一个清晰明确的结构,各个层次之间可以合理地屏蔽细节。针对每个层次可以进行独立的模块化分析和开发,以及数据的封装和扩展[8]。以易于扩充和动态修改为原则,本文将森林场景从下至上分为四个主层次以及一个辅层次进行设计。四个主层次分别为模型层、纹理层、分布层、渲染层;一个辅层次包含为了体现动态效果及树木模型多样性效果而设计的几个辅助函数:时间函数、固定范围随机函数等。层次与层次之间采用统一的接口进行通信,屏蔽了不同层次的实现细节;同一层次内部分成不同模块设计,不同模块之间高内聚,低耦合,使得系统具有良好的可扩展性和可维护性;每个模块内部按照继承机制设计,通过多态机制封装不同的算法。体系层次结构如图1所示。
  面向森林动态生长过程的森林场景系统在模型层中设置了三个模块,即地形模型、树木模型和天空模型。它们分别由各自独立的算法和源数据产生。这三个模型模块是整个森林场景的基本构造单元。由于模型层内的各个模块完全独立,当系统进行扩充时,可在不修改现有模块的基础上添加自定义模块,即流水模型、天气效果模型等。纹理层负责对各个模型层的对象添加纹理。对地形的处理是通过导入描述地貌信息的纹理数据,同时对局部特征进行细节纹理调制;对树木的处理是结合特定树种的文法导入绑定特定的树皮、树叶、花及果实的纹理数据;通过辅助层的时间函数和天空信息的纹理单元共同完成天空模型的建立。分布层的功能是确定各个建立好的模型的位置关系。本文目前实现的系统中主要模型为地形、天空及森林三个模块,因此需要地形数据(包括各个点的高度、温度、湿度、有机物含量等)和天空高度,以及树木在地形上的分布函数。渲染层根据视点位置对所有模型作剔除和简化处理,然后调用绘制函数将所有模型一并渲染出来,最终生成虚拟的森林场景。
  
  2 功能接口设计
  
  按照逻辑功能,面向森林动态生长过程的森林场景系统可以划分为六个模块。各部分功能接口如图2所示。
  

[2]

原版全文

TOP