我的订单|我的收藏|我的商城|帮助中心|返回首页
虚拟现实新闻>VR>行业资讯>行业知识

基于VRML的虚拟园林设计要素构建

文章来源:第三维度 作者: 发布时间:2012年04月12日 点击数: 字号:

    来源:第三维度
    作者:赵利清 中央广播电视大学
          王树栋 北京农学院园林学院

    摘要:虚拟现实技术应用于园林设计,可利用动态和交互方式对未来的园林进行身临其境的全方位审视,可达到传统的园林效果图所无法达到的效果,然而目前虚拟技术在园林中的应用比较少。笔者基于VRML技术对园林设计要素的(植物、建筑、地形和水体)构建进行探索,实现了园林设计四大要素的三维模型构建和互联网上的漫游与交互功能。研究表明基于VRML构建园林设计要素的方法是行之有效的,而且效果比较好。

    0 引言

    园林设计要素是园林景观的重要组成元素,在园林景观设计中占有举足轻重的地位。这些要素的三维效果会直接影响场景的真实性和自然氛围。虚拟现实技术应用于园林景观设计,可利用动态和交互方式对未来的园林进行身临其境的全方位审视,可达到传统的园林效果图所无法达到的效果[1]。近几年来,国内外开始将虚拟现实技术应用到工业设计、建筑设计和城市设计领域,以虚拟城市系统方向的研究为主,并取得了一些成果,但在风景园林设计中虚拟现实技术应用较少[2]。

    虚拟现实技术有不同的方法,比较流行的有Java3D、Cult3D、Viewpoint、VRML 等[3]。Java3D 技术采用Java 语言进行编程,结构设计比较复杂,开发周期较长,在大型场景交互方面存在缺陷。Cult3D具有较强的通用性和扩展性,但交互功能不理想,Viewpoint 是比较成熟的开发技术,但是不能采用外部的3D 模型[4-5]。VRML 具有平台的独立性,低宽带要求、灵活高效创建三维场景和基于事件的人机交互等优点,加上采用ASCII 文本格式,使用和维护都比较方便。因此,笔者基于VRML技术对园林设计要素进行了设计与开发,以期实现园林设计要素的三维模型构建和互联网上的漫游与交互功能。

    1 VRML简介

    VRML(Virtual Reality Modeling Language)是一种应用于互联网、面向对象的解释型三维造型语言。

    VRML把一个虚拟世界看作一场景,节点(Node)用来描述场景中的几何模型、光源、声音等,节点的属性用域来描述,用文本方式对每一个节点对象的描述就构成了WRL文件。VRML的访问方式是基于客户/服务器模式,其中服务器提供VRML文件及其他客户希望通过网络访问的文件。当用户向服务器发送请求,通知所需文件的URL,服务器接收到后,传送服务器上的VRML 文件给用户,客户端通过本地平台上的VRML浏览器交互式访问该文件描述的基于时间的虚拟场景[6-8]。

    2 植物模型的设计与实现

    园林植物是现代园林中最重要构成要素之一。它具有明显的时空节奏、独立的景观表象、突出的园林意境,是形成园林特色的好材料,也是园林其他景观不可缺少的衬托。园林植物的种类繁多、形状复杂,在景观建造中使用的数量非常大。如此多的植物种类,如此复杂的形状,如果使用三维模型来表示,一是耗资巨大,二是大量的使用三维模型会降低网络传输的速度,影响场景的渲染效果,因此使用Billboard(广告扳)节点通过贴图的方式来构建植物模型[9-10]。利用图片来代替三维模型,用一种简单的方法完成很多特别的效果。Billboard 节点定义一个长方体来存放组节点中的所有节点的造型,实现整个节点的统一控制。

    Billboard 节点在用户浏览的时候动态改变自身的坐标系,从而使该节点包含的所有物体都能时刻面向浏览者,实现近似三维模型的效果,用于植物贴图的图片经过图形处理软件处理成无背景的GIF(可支持网络上的透明背景)格式,结果更近真实。主要设计代码如下:

    Transform
    {translation -14.528 30 -29.8
    scale 10 10 10
    children [
    Billboard {axisOfRotation 0.0 1.0 0.0
    children [
    Transform
    {children[
    Shape {appearance Appearance{material Material{ emissiveColor .6 .6 .6 }
    texture ImageTexture {url "resource//20085908075956.gif"}}
    geometry IndexedFaceSet {coord Coordinate {point [3.0 3.0 0.0,3.0 -3.0 0.0,-3.0 -3.0 0.0, -3.0 3.0 0.0]}
    coordIndex[0,1,2,3]
    texCoord TextureCoordinate {point [1 1,1 0,0 0,0 1]}texCoordIndex [0,1,2,3]
    solid FALSE}}]} ]} ]}

   效果见图1。

基于VRML的虚拟园林设计要素构建
图1 不同视角下的乔、灌、草三维效果

    3 园林建筑的设计与实现

    园林建筑是园林与建筑有机结合的产物,由人工创作的要素,在园林中的地位比较重要。最常见的园林建筑有亭、廊、花架、园门、园墙等。园林建筑模型比较复杂,笔者对于园林建筑的构建没有按照常规的分类来进行,而是按其复杂程度分为简单的建筑模型和复杂的建筑模型。

    3.1 简单的建筑模型

    简单的建筑模型是直接用VRML语言编程实现,VRML语言通过Shape 节点和节点编组来构建。如园墙,运用Cylinder(圆柱)节点构造园墙的每一个栏杆,利用IndexedlineSet 节点按顺序依次连接指定的Cylinder 节点来构建一个完整的园墙,通过设定Cylinder 节点的radius、height 域和appearance 域的颜色、纹理属性,来构建不同颜色、纹理和形状的园墙。

    主要设计代码如下:

    Shape {appearance Appearance{material Material{diffuseColor 0.50 1.00 0.00 emissiveColor 0.50 1.00 0.00 }}
    geometry Cylinder{radius 0.2 height 30.2 }}]}
    Transform{translation 124 15 105children[USE baluster0]}
    Transform{translation -107 15 105.9872children[USE baluster0]}
    ...
    Transform{translation -113.0004 15 104.9797children[USE baluster0]}
    Transform{translation 0 0 0 children[
    Shape{appearance Appearance{material Material{diffuseColor 0.50 1.00 0.00 emissiveColor 0.50 1.00 0.00 }}
    geometry IndexedLineSet{coord Coordinate{point[ -110 29 106 124 29 105 126 29 -115 -116 29 -117 -113 29 105 ]}
    coordIndex[0 1 2 3 4 ]}}]}

    效果见图2。

基于VRML的虚拟园林设计要素构建
图2 简单的建筑模型

    3.2 复杂的建筑模型

   亭、廊等复杂建筑模型,如果用VRML语言编程直接实现是非常复杂的。因为VRML编程语言毫无直观性,程序的调试、修改和调整过程相当困难。笔者借助专门的3D设计软件(3DSMAX)来构建,设计完成后,选择菜单中文件/导出命令,将文件类型保存成VRML97 格式。并且把3DSMAX场景中使用的材质贴图文件和VRML文件放到同一目录下,或者创建一个单独的材质和贴图目录,否则容易出现无法找到贴图的问题。对于3D模型的引用,VRML是采用Inline(内联)节点实现的,通过编组节点Transform 实现对Inline 节点的引用。利用Transform 节点的translation、rotation、scale 域分别指明了模型的位置、旋转角度和大小,实现实时漫游功能。Inline 节点的域url 指定文件模型的URL,对外部文件引用、漫游功能设计代码如下:

    外部文件引用:

    Transform {
    translation -38 0 -41
    rotation 0 1 0 0
    scale 0.003998434 0.003998434 0.003998434
    children [ Anchor{ description "楼房6" children[ DEF 20085324075352
    Inline{ url "resource/20085324075352.WRL"}]}]}

    漫游功能设计:

    DEF Time TimeSensor {cycleInterval 80.0 enabled FALSE loop TRUE }
    DEF flyinter OrientationInterpolator {key[0 0.125 0.25 0.375 0.50 0.625 0.75 0.875 1.0] keyValue[ 0 1 0 0 0 1 0 0.785 0
    1 0 1.57 0 1 0 2.355 0 1 0 3.14 0 1 0 3.925 0 1 0 4.71 0 1 0 5.495 0 1 0 6.28] }]}]}]}
    ROUTE Time.fraction_changed TO flyinter.set_fraction
    ROUTE flyinter.value_changed TO jingwu.set_rotation

    效果见图3。

基于VRML的虚拟园林设计要素构建
图3 复杂的建筑模型

    4 地形的设计与实现

    地形是重要的园林要素,数字地形是计算机辅助设计十分重要的工具。在计算机里如何建立、表达和应用三维数字地形模型是园林数字技术中的重要工作。对于地形的构建,目前采取的主要方法有规则网格模型、不规则三角网模型和等高线模型[11-12]。等高线模型采集数据比较容易,而且能够保证地形的几何精度[13],因此笔者在对静态模型和动态模型研究的基础上,提出一种基于Delaunay 不规则三角网(Triangulated Irregular Network,简称TIN)的虚拟园林等高线模型算法。

    (1)等高线数据读入和存储。读取原始数据,按等高线的高度进行排序,高度最低的一层放在最底层,递增高度、层数,并且每一层的等高线按顺时针方向进行排序,然后存储每层等高线的节点数和每个点的实际坐标。

    (2)应用Delaunay 三角剖分法初步建立等高线三角网。找出存储节点中X坐标的最大值Xmax、最小值Xmin和Y 最大值Ymax、最小值Ymin,并且计算出中间坐标xmid、ymid及最大差值dmax。插入3 个节点并进行赋值,建立超级三角形。根据Delaunay 准则对三角单元进行判断和新节点的插入,将已有节点与新加入的节点连接,形成新等高线三角网。已插入三角形的3 个顶点的坐标值如表1。

表1 三角形顶点坐标值
基于VRML的虚拟园林设计要素构建

    (3)等高线三角网的生成与算法比较。初步生成的等高线三角网与本系统算法进行比较,然后对三角网进行修正。

    (4)等高线模型的可视化。VRML中设计出三维模型还需要进行渲染和升华,笔者是采用贴图方法实现的,通过VRML 中CreaseAngle 属性控制等高线模型的平滑度,使得地形更加真实。具体设计代码如下:

    geometry IndexedFaceSet{
    coord Coordinate{point[… ]} coordIndex[… ]solid FALSE
    CreaseAngle 30}

基于VRML的虚拟园林设计要素构建
图4 三维等高线效果图

    5 水体的设计与实现

    自古以来,水就是纯洁、智慧、永恒、崇高、神圣的象征。古老文明的中国,秀丽的山川湖泊,浓郁的乡土风情,创造诗情画意般的中国园林。而水能赋园林以生命,自身又独具柔美和韵味,它是中国园林的重要组成部分。园林中只要有了水,一切都活起来。可以说,水是中国园林的灵魂[14-15]。园林水景的构建主要分为了2 种方式,一是静态水(指平面形式的水体,图5),二是动态水(图6)。

基于VRML的虚拟园林设计要素构建
图5 静水效果图

基于VRML的虚拟园林设计要素构建
图6 动水效果

    5.1 静态水模拟

    对于静态水模拟,用VRML语言进行直接编程构建,VRML 语言通过geometry 域的IndexedFaceset 节点构建平面形式,利用appearance 域的Appearance 节点设置平面形式的贴图,并且通过贴图的属性构造不同的效果。设计代码如下:

    Transform {
    translation 0 0 0 scale 1 1 1
    children[Shape{appearance Appearance{material Material{ emissiveColor 0 0.5 1}
    texture ImageTexture {url"resource\pp.jpg"}}
    geometry IndexedFaceSet{coord Coordinate {point[ -160 1.2 -167 162 1.2 -167 162 1.2 144 -158 1.2 144 -159
    1.2 -167 ]}coordIndex[ 0 1 2 3 4 0 -1 ] convex FALSE solid FALSE} } ]}

    5.2 动态水模拟

    动态水,包括喷泉、瀑布[16],主要运用3DSMAX中的粒子系统和重力系统来模拟。如喷泉的制作,在3DSMAX中选择粒子系统—超级喷射,在透视图中创建粒子系统,调整基本参数,使得粒子系统发射器向上喷射。选择创建—空间扭曲—力—重力,在透视图中创建重力系统,然后利用绑定工具将重力系统绑定到粒子上,喷泉水柱部分就形成了。进入材质编辑器中对材料进行编辑,在Diffuse 贴图通道进行贴图,调整Blinn 基本参数,使喷泉既具有水的材质又带有雾化的效果。园林景观设计中喷泉水姿的多样的,颜色也是五彩缤纷的,可以通过调整参数和贴图方式来实现,如重力的大小、超级喷射扩散度的大小、粒子的寿命以及赋予的不同材质。3DSMAX设计完喷泉模型的输出、与本系统的连接以及漫游,同前面所述的复杂建筑模型。

    6 结论

    笔者在分析虚拟现实和园林设计特点的基础上,提出利用VRML技术构建园林设计要素的方法。具体研究结果如下:

    (1)通过贴图的方式构建了园林植物模型,效果真实,用简单方法完成了许多特别的效果。

    (2)建筑分为简单建筑和复杂建筑,简单建筑通过VRML语言直接编成实现,复杂建筑利用了VRML和3DSMAX 共同配合完成,并且实现了在互联网上与VRML虚拟场景的交互。

    (3)提出一种基于Delaunay 不规则三角网的虚拟园林等高线模型算法,并且实现了三维地形的模拟。

    (4)通过贴图的方法模拟了静态水,并且通过设置贴图属性模拟不同的效果。运用了3DSMAX中的粒子系统和重力系统模拟了动态水景。

    7 讨论

    基于VRML构建的园林设计要素三维模型效果逼真,占用空间小,在互联网上的交互比较方便。但是也发现了一个问题,基于VRML的等高线模型算法,对原始数据量小的地形仿真效果较好,速度也较快,但是对于原始数据量较大的地形,速度较慢,如何优化算法,提高速度,需进一步考虑。

    参考文献

    [1] 康与云.虚拟现实中植物建模方法研究[J].数字社区&智能家居,2009,5(7):5225-5226.

    [2] 芦建国,苏同向.虚拟现实技术与风景园林设计[J].南京林业大学学报:自然科学版,2007,31(6):139-141.

    [3] 高晓军.网上三维技术探索[J].现代情报,2002(4):51-52,54.

    [4] 胡小强.虚拟现实技术[M].北京:北京邮电大学出版社,2005:20-38.

    [5] 苏威洲.实现网络三维互动-Cult3D应用指南[M].北京:清华大学出版社,2001:1-28.

    [6] 陆昌辉.VRML入门与提高[M].北京:北京大学出版社,2003:1-25.

    [7] 刘怡,张洪定,崔欣.虚拟现实VRML程序设计[M].天津:南开大学出版社,2007:5-11.

    [8] 孙俊峰,游运华,卢洁,等.基于VRML的心理学虚拟实验设计与实现[J].计算机仿真,2006,23(4):283-286.

    [9] 江婷.园林景观虚拟现实中的树木建模技术[J].中国高新技术企业评价,2008(22):157.

    [10] 叶敏青,郭铁,王建锋.三维园林景观设计系统及可视化技术的应用[A].见:高承勇.工程三维模型与虚拟现实表现——第二届工程建设计算机应用创新论坛论文集[C].北京:中国土木工程学会计算机应用分会、中国工程图学学会土木工程图学分会、中国建筑学会建筑结构分会计算机应用专业委员会,2009:98-103.

    [11] 卢圣.园林数字地形建模及应用[J].中国园林,2006,22(2):62-65.

    [12] 熊志坚,张雷,于贵有.三维地形模拟在场地设计中的应用[A].见:高承勇.工程三维模型与虚拟现实表现——第二届工程建设计算机应用创新论坛论文集[C].北京:中国土木工程学会计算机应用分会、中国工程图学学会土木工程图学分会、中国建筑学会建筑结构分会计算机应用专业委员会,2009:88-92.

    [13] 吕恒,江南.基于OpenGL和地形图支撑下的地形三维显示[J].计算机工程,2004,30(7):174-176.

    [14] 王树栋.园林设计基础[M].北京:中央广播电视大学,2005:136.

    [15] 曾丽娟. 解析自然光影在园林水景设计中的运用意义[J].北方园艺,2010 (11):122-124.

    [16] 卢圣.模型建造在园林中的应用研究[D].北京:北京林业大学,2005:28-30.

  • 暂无资料
  • 暂无资料
  • 暂无资料
  • 暂无资料
  • 暂无资料