虚拟实境模型语言基础教程及实例

Virtual Reality Modeling Language (VRML) Basic Tutorial with Examples


实例(二〕阴阳初判



万八千岁,天地开辟,阳清为天,阴浊为地。盘古在其中,一日九变,神于天,圣
于地。

阴阳初判究竟是何种景象?无人得见。本大侠设计一穹庐状天地,以颜色浓淡代表
阳清阴浊,另置一武字于其中,以象征盘古的英雄精神。

且看本大侠如何设计此虚拟实境:

(一〕从第一行开始:

#VRML V2.0 utf8

WorldInfo {  
   title "阴阳初判"  
   info[   
   "Author: 金臂螳螂"   
   "Date: Feb. 24, 1998 (Tue)"   
   ]   
}


(二〕设定虚拟实境的动作(navigation〕:

NavigationInfo {   
   type "EXAMINE"   
}

(三〕背景角度(形成穹庐状〕及颜色:

Background { #背景颜色及其处于天地之间的角度,角度参数都是数学计算出来结果。
   groundAngle [0.523, 1.047,1.571]  
   groundColor  
        [0 0 0, 
        0 0 1,  
        1 1 0,  
        0 0 1]  
   skyAngle [0.523, 1.047,1.571]  
   skyColor  
        [1 1 1, 
        1 0 0,  
        1 0 1,  
        0 0 1]  
}

(四〕在一立方体上粘贴上一武字:

DEF Xian Transform { #为后面指令引用,将此物体特征命名为Xian。
   translation 0 0 0 #坐标在零。 
   children Shape {  
      appearance Appearance {   
         material Material {diffuseColor 1 1 1}   
         texture ImageTexture {   
            url "snow.gif" #此图象背景颜色透明,将在虚拟实境产生立体效果。 
         }  
      }  
      geometry Box {size 4 4 4} #size 可规定立方体的大小。 
    }  
}

(五〕设计一预定事件:

DEF Gao TimeSensor {  #TimeSensor会按时间产生事件 
   enabled TRUE  
   cycleInterval 2.0  
   loop TRUE  
},

(六〕给武字规定一个旋转动作作为事件:

DEF XianPath OrientationInterpolator { #插入KeyValue里的值以控制旋转。
   key [0.0 0.5 1.5]  
   keyValue  
       [0.0 1.0 0.1 -2.3  
       1.0 0.2 0.2 -1.23  
       0.1 1.2 2.1 -1.0]  
}

(七〕规格事件的路径:

ROUTE Gao.fraction_changed TO XianPath.set_fraction 
ROUTE XianPath.value_changed TO Xian.set_rotation


#产生事件的指令与接收事件的指令间的联系称为Route 
#此虚拟实境靠背景的颜色及角度形成了一个穹庐状环境,象征天地初判的意境。 
#空荡穹庐中有一立体武字在旋转,对其含义的领受则因人而异。 

(八〕此时,将所有红色指令按其出现的顺序剪切到一个文件里作为源码,再存为
*.wrl文件,如 b_Dragon.wrl。但在浏览此虚拟实境前,还需下载如下文件:

snow.gif :一个背景透明的武字
并放在与b_Dragon.wrl相同的文件夹里。

最后,浏览此 b_Dragon.wrl 虚拟实境,并逐一对照核实源码中所言效果,以知其所
以然。

练习题:阅读并理解此虚拟实境之源码,修改源码,改变武字的旋转方向。

下一个实例,人间正道。在此虚拟实境中,本大侠为一代武林骄子李小龙设立了一
个圣坛。

页眉

主页