背景:#EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #EAEAEF 默认  
阅读内容

基于VRML的三维虚拟校园的设计与实现(1)

[日期:2008-09-12] 来源:  作者: [字体: ]
摘  要  VRML是可以用来创作桌面虚拟现实系统的建模语言。本文在介绍了VRML的基础上,以南通大学三维虚拟校园为例,讨论了虚拟场景的构建技术,介绍了一些常用的建模的方法。
    关键词  虚拟现实;VRML;虚拟校园
 
0  引言
    VRML(Virtual Reality Modeling Language),是一种用于描述交互式三维空间的虚拟现实建模语言。借助VRML,可以建造虚拟的房间、建筑物、城市甚至星球等现实中的和想象中的事物;可以编写小程序来控制虚拟空间,赋予浏览者和虚拟空间进行交互的能力。
    VRML制作的三维空间是以文本文件的形式保存的,由已安装过插件的浏览器来解释展示。文件短小的特点使之能够很方便的在网络上进行传输。因此,这一语言为软件实现网上的虚拟现实系统提供了重要途径。构建网络上的三维虚拟校园就是VRML的一个有效应用。
1  VRML要点
    VRML是解释展示的,浏览器就是其解释器。为了使IE浏览器能够支持VRML,需要安装相应插件。一种比较流行的插件是Intervista公司的World View,另有一种是SGI(Silicon Graphics Inc)公司的Cosmo Player。
    VRML使用场景图数据结构来建立3D实境,这是以SGI的Open Inventor 3D工具包为基础的一种数据格式,其基本单元被称为节点,场景图规定了节点之间的等级关系与嵌套关系。
VRML总共定义有54个节点,它大致可以分为如下几类:
    ●    造型节点:用于表示各种基本的几何体和用于任意几何体的线框图和面框图。
    ●    属性节点:用于定义相关对象的颜色、材质、纹理以及摄像机组、灯光组、视点、背景等。
    ●    组节点:用于将节点分组,把相关节点组合成为同一个对象。
    ●    感应节点:用于感知用户的输入或动作,以触发相应的动作。
    ●    其它节点:包括移动和旋转动作,脚本(Script)节点、超链接节点等。
    每个具体节点都包含有一个或多个域(Field),VRML对域名、域值类型以及缺省值都有规定。下面就是一个造型(Shape)节点的结构。
                Shape{
                      appearance NULL  //exposed SFNode
                      geometry NULL   //exposed SFNode
                }
    这个节点包含2个域:appearance域用于指定节点的外观,;geometry域用于指定造型的3D构造或几何构造,缺省的NULL值表示没有几何结构。
    VRML 使用符合右手规则的三维坐标系统,原点在屏幕中心,它也是使用这一坐标系统的各种几何体的中心。所以,当根据构图要求,某个几何体的中心不在屏幕中心时,就需要移动坐标系统,即使用Transform节点,在该节点内定义的几何体都使用该节点中所定义的平移后的坐标系统。
    最后,在场景图结构中需要提及的Group节点,即组节点。由于VRML只提供最基本的几何体,因而,要表现一个三维对象或场景,设计者只能通过组合这些基本几何体来实现。Group节点为这种组合提供了支持。
    VRML规定使用“#”来标记注释。
2  南通大学三维虚拟校园设计
    使用VRML,可以构建基于网络的三维虚拟校园,下面就以南通大学三维虚拟校园为例,进行讨论。
2.1 构建南通大学三维虚拟校园的目的
    虚拟的南通大学校园是一个规模较大的三维场景,旨在通过网络展示南通大学的校园风貌。游览者可以走进校园,观赏校园的自然风貌,领略校园的生活氛围,在虚拟旅游中了解通大。
    为了较真实的反映校园的风貌,可以通过两个方面来表现这个虚拟境界:
    第一,要根据南通大学实际的景观风貌对校园内的各个场景进行建模。这些场景包括道路、楼宇、校门、花草树木及其它一些建筑物。通过对这些场景的建模构建出虚拟的南通大学校园。并且有一定的交互能力,例如游览者可以进行门、窗的开关。
    第二,通过声音、文字、图片等多媒体技术手段辅助性的介绍南通大学的概况、历史等情况,从而实现介绍南通大学的目的。
2.2  虚拟校园的场景结构
    考虑到整个场景中的各个对象是通过空间相对位置的关系组织在一起的,因此我们先建立一个对象,然后将它作为参考来放置其它的对象。
    经过分析,我们首先建立整个校园的主干道。主干道在整个校园中起到基线的作用。这然后以这条道路作为参照,把独立构建的各个楼群、校门、花草树木及其它场景组合安放在相应的位置。
完整的南通大学三维虚拟校园如图1所示。
图1 南通大学三维虚拟校园结构
3 南通大学三维虚拟校园实现 3.1 校园背景
    为了更逼真的表现出虚拟现实所描述的环境,需要给虚拟校园设置背景。建立的虚拟校园处于大地中心。背景可以通过Background节点实现。具体代码如下:
            Background {
                    skyColor [0 0 0]
                    frontUrl  "tian.jpg"      #为前景选择文件tian.jpg作为贴图,下同
                    backUrl  "tian.jpg"
                    leftUrl   "tian.jpg"
                    rightUrl   "tian.jpg"
            }
    其效果如图2所示。
3.2 校园正门
    任何一所学校,校园正门都是最为突出的标志性景观。也是整个学校给游览者的第一印象。就南通大学而言,整个校门由“南通大学”校名、传达室、自动伸缩门等场景组成。
图2 三维虚拟校园背景
 
图3 校名建模
    在场景构建中要解决的第一个问题是造型的外观的控制。造型的外观是通过材料控制的,材料属性包括造型的颜色,是否发光,所发光的颜色,是否半透明,透明到什么程度等等。使用Appearance和Material节点,就能控制造型的颜色,发光颜色和透明度。例如,在校门的建模中,传达室是由三个正方体造型构成的,外部是半透明的玻璃。
    在场景构建中要解决的第二个问题是汉字的显示。按照VRML规范,它应该支持包括汉字在内的所有UTF8字符,但许多插件都不支持汉字的显示。VRML不能显示汉字的原因不在于其语言本身,而是在于VRML浏览器的3D引擎。为了在VRML中实现3D字的渲染,通常有两种方法:第一中是用多边形围成字体,第二中是对字体进行纹理渲染。我们采用的是第二种方法。校名场景的具体实现代码如下:
                Transform {
                    rotation 0.0 1.0 0.0 -0.52
                    translation 6 0 2
                    children [
                        Shape {
                            appearance Appearance {
                            material Material {diffuseColor 0.5 0.5 0.5}
                            #使用学校创始人张謇先生手书“南通大学”的纹理贴图
                            texture ImageTexture {url"hanzi.jpg"}}
                            geometry Box {size 6.75 2.0 0.5}
                        }
                     ]
                }
    校名建模的效果如图3所示。整个学校正门场景如图4所示。
图4 学校正门场景
 
12下一页  GO
阅读:
录入:中国论文联盟

推荐 】 【 打印
相关新闻      
本文评论       全部评论
发表评论
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款


点评: 字数
姓名:
免费论文搜索


本周热门内容