Graphics 版 (精华区)

发信人: leonado (##小:妖:发:呆:勒##), 信区: Graphics
标  题: 虚拟现实之高级技巧(七)
发信站: 哈工大紫丁香 (2001年01月07日19:23:22 星期天), 转信

我们接着上一篇继续讨论随机播放的物体,比如说你可以设计你的场景,当用户每一次
进入时都可以随机播放一些不同的背景音乐,这一个运用与我们原先讨论的物体的随机
运动如出一辙,只这里我们加入了sound结点和AudioClip结点。
  首先来分析一下这个场景,当用户进入场景后,开始随机播放音乐,用户进入场景
这是一次性的动作,这与连续运动不同它是非连续的,同时在我们需要先将音乐预设在
场景中,由于篇幅有限,我们在这里只给出几步重要的步骤。
Sound {
maxFront 100
maxBack 5
source DEF AGENT_VOICE1 AudioClip {
loop FALSE
url "sound.wav"
}
}
  这是定义了一个场景中的Sound,声音文件包括在sound.wav里,注意它loop为FALS
E,就是说声音是否播放需要通过AGENT_VOICE来触发。什么时间通过什么方式进行AGENT
_VOICEDE的触发,同时这里又有一个判断用户是否在场景中的问题,需要对用户进行Fi
ne-Grined跟踪,需要用到我们下面谈到的ProximitySensor结点,向大家介绍完Fine-G
rined跟踪方式,大家自然知道随机播放声音的方法了。
  首先说明ProximitySensor结点是产生报告用户在场景中的位置和变化的方位,进行
用户是否进入场景的判断只是它的一个用法,千万不要认为它只能进行判断,不清楚的
地方大家可以看看结点指南中关于它的介绍。在ProximitySensor结点中,关键参数是S
ize字段,它定义了传感器的操作范围,只要在范围中,该结点就能判断用户的位置,一
旦用户进入了范围,IsActive字段变为真,同时在enterTime中产生一个进入时间,Pos
ition_changed和Orientation_changed字段将随用户移动产生事件。在这里用到的主要
是IsActive字段,通过它来触发AGENT_VOICE事件,播放音乐。将与JAVA程序产生更为复
杂的动作,下面是Rodger Lea教授在他的构建VRML虚拟城市中,用到的一小段自动门程
序,很具有代表性,看过后我们再向大家解释程序过程。

--
美女说:“小妖,你很可爱丫...”
小妖刚要把那段“我已经尽可能的掩饰我的锋芒,奈何还是被慧眼人看出”云云背出来...
美女却扬长而去...>Q<

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.230.141]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.933毫秒