Graphics 版 (精华区)
发信人: killest (矛盾), 信区: Graphics
标 题: VRML的语言结构及应用(2)
发信站: 紫 丁 香 (Wed Apr 29 14:38:22 1998), 转信
除了一些较简单的结点,VRML中的结点大多具有较多的域,从而能
够完成非常丰富的功能。下面我们来看看VRML2.0中所特有的传感器(
Sensors)、描述符(Scripts)以及声音(Sound s)结点。
传感器(Sensors)结点
传感器结点代表一个结点的类别。具体包括Cylinder Sensor、P
lane Sensor、TimeSe nsor、Touch Sensor、Visibility Sensor和P
roximity Sensor等七种结点。它们提供用户与虚拟世界中的物体进
行交互的机制。从具体功能上来说,根据时钟或者用户的动作它们能
够产生相应的事件,然后虚拟世界中的对象再来响应这些不同的事件
。
下面看一下Proximity Sensor的例子。
Proximity Sensor {
exposed Field SFVec3f center 000
exposed Field SFVec3f size 000
exposed Field SFB001 enabled TRUE
eventout SFB001 is Active
eventout SFVec3f position-changed
eventout SFRotation orientation-changed
eventout SFTime enter Time
eventout SFTime exit Time
}
当用户接近、退出和在一个空间中移动的时候,proximity senso
r就会产生不同的事件。当观察者进入或退出一个由center和size定
义的长方体空间时,就会产生is Active TRUE /FALSE事件,同时生成
了enter Time或exit Time事件。当观察者在位置和方向上有所改变
时,就会向外发送positionchanged和orientationchanged的事件。因
而Proximity Sensor根据用户的动作产生和发送不同类型的事件来完
成与用户交互的功能。
描述符(Scripts)和内插器(Interpolators)结点
Position Interpolator {
eventIn SFFLoat set-fraction
exposedField MFFLoat key []
exposedField MFVec3f keyvalue []
eventOut SFVec 3f valuechanged []
}
这个结点在一组SFVec3f类型的数值中进行线性插值。这一点对
于位置转移非常合适。keyvalue域是一组关键的数值,这些数值的个
数要key这个域中包含的元素个数相同。
描述符语言包括VRML Script和Java两种。VRML Script的语法与
Javascript和其它语言有相似之处。VRML Script设计成能被YACC进
行语法分析,因此是一个LALR(1)的文法。具体的语法BNF格式参见VRM
L 2.0的Specification。它对各种函数,语句都有十分详细的规定。
声音(Sound)结点
先看一下声音结点的定义。
Sound {
exposedField SFVec3f direction 001
exposedField SFFLoat intensity 1
exposedField SFVec3f location 000
exposedField SFFLoat maxBack 10
exposedField SFFloat maxFront 10
exposedField SFFloat minBack 1
exposedField SFFloat minFront 1
exposedField SFFloat priority 0
exposedField SFNode source NULL
field SFBool spatialize TRUE
}
三维空间立体声用来增加虚拟世界中的真实感和临场感。合理地
使用声音能够对用户的体验有十分显著的影响。如果声音文件处理不
当,会导致虚拟世界数据太大而无法下载,必须切记VRML支持MIDI用于
背景音乐,而且可以使用较小.wav文件来营造四周环绕的效果。
Sound结点描述了在一个VRML场景中声音的定位和空间效果。声
音能被定位在某一点并且可以球形或椭圆形模式发射声音。Sound结
点中的Source域指定了Sound的来源。这个域必须指定或是一个Audio
Clip结点,或是一个Movie Texture结点。结点中的intensity域调节
每个声源的音量。intensity是一个浮点型值,取值从0.0到1.0。0表
示无声音,1则表示声音最大,而priority域则是用来控制当声音通道
少于要播放的声音数量时,选择合适的声道播放。取值也从0.0到1.0,
并且1.0是表示最高的优先级。minFront和minBack域则决定了声音音
源前后音量最大的空间位置。与此类似,maxFront和maxBack域决定了
声音前后能否被听到的区域限制。总而言之,通过Sound结点能对场景
中某块区域的声音效果做出十分逼真的规定。
VRML的应用
人类社会正在发生深刻的数字化革命。这场革命首先是从计算机
配置声卡开始,接着是进入多媒体世界,它把声音、视频以及二维、三
维图像结合在一起。目前已进入交互式网络时代,它要求以数字化集
成各种类型媒体并具有高速通信能力。计算机工业正朝着虚拟现实方
向发展,而VRML正是这场革命发展的产物。
VRML能在不同的应用领域以三维形式输出可视化数据。VRML提供
了新的用户界面,使用者能以更直观的方式与三维世界中的对象交互
。三维数据表达比二维数据更直观和更易理解。采用VRML能给人以更
大的启发,营造更为逼真的三维虚拟世界。
VRML已成为业界标准。Microsoft、IBM、Netscape、Apple、Ora
cle、SGI、Sony等50余家著名的大公司都支持VRML。VRML的管理团体
正式命名为AG。三维代表着未来。VRML在教育、娱乐、工程和商业方
面已得到应用。
·教育应用
SGI已经把VRML用于建造人体模型、电脑太空旅行、化合物分子
结构显示等领域。由于数据更加逼真,大大提高了人们的想象力,激发
了受教育者的学习兴趣,学习效果十分显著。随着计算机技术、心理
学、教育学等多种学科的结合与相互促进和发展,能够提供更加协调
的人机对话途径。
·娱乐应用
娱乐领域是VRML的一个重要应用领域。VRML是一个功能十分强大
的在Internet网上交换三维场景的描述性语言。它能提供更好的多人
之间的交互。提供更加逼真的虚拟环境,从而使得人们能够享受其中
的乐趣,带来更多更好的娱乐感觉。VRML正朝着实时通信、大规模用
户交互方向发展。
·工程应用
当前的工程很大程度上要依赖于图形工具,以便直观地显示各种
产品。某些设法提高生产率并削减成本的公司,特别需要那些能通过
全球网或内部网按协作方式使用VRML建立三维模型的工程人员。
·商业应用
对于那些期望与客户建立直接联系的公司,尤其是那些在他们的
主页上向客户发送电子广告的公司,全球网具有特别的吸引力。VRML
有可能大幅度改善顾客购买商品的经历。例如,顾客可以访问虚拟世
界中的商店,在那里挑选商品,然后通过全球网办理付款手续,商店及
时把商品送到顾客手中。
--
oo
il bb yy il ..... 与尔同消万古愁
i bbb ll yyy i
iii bb yy iii
oo
※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: victor.hit.edu.c]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:6.785毫秒