VRML(虚拟现实建模语音) 第9章 增强静态场景_第1页
VRML(虚拟现实建模语音) 第9章 增强静态场景_第2页
VRML(虚拟现实建模语音) 第9章 增强静态场景_第3页
VRML(虚拟现实建模语音) 第9章 增强静态场景_第4页
VRML(虚拟现实建模语音) 第9章 增强静态场景_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第九章第九章 增强的静态场景增强的静态场景 VRML2.0VRML2.0中提供一些特征使得场景看上去更加真中提供一些特征使得场景看上去更加真实。例如,声音实。例如,声音( (sound)sound)节点允许为场景加上背景音节点允许为场景加上背景音乐、动作声响、对话等等;背景乐、动作声响、对话等等;背景( (background)background)节点节点允许为场景加一幅背景图画;雾允许为场景加一幅背景图画;雾( (fog)fog)节点能产生逼节点能产生逼真的雾化大气效果。真的雾化大气效果。9.1 空间背景空间背景 v 在VRML中,天空、地面的场景都是以背景的形式出现的。其空间背景可以理解

2、为包围在VRML空间周围的无限大的球体外壳。而这个空间背景就是通过Background节点创建的。测览者可以看到这个背景的任意部分,但是永远不能接近它。这就和现实中的天空和地平线一样,v 空间背景分为两部份:天空背景和地面背景。这两部分是通过地平线来分开的。地平线位于VRML空间的垂直方向上的中线上,也就是以VRML空间的中心为原点的世界坐休系的X-Z平面上。在X-Z平面以上的为天空背景,在X-Z平面下的为地面背景,而X-Z平面和背景球体的相接处,就是地平线 9.1 空间背景空间背景v 在VRML中,空间背景中的位置确定是通过空间角来确定。这就同地球仪上的纬度差不多。在天空背景上,天空角为0相

3、当北纬180,天空角180相当南纬180;而地面角正好相反,地面角0就是南纬180,地面角180就是北纬180,地平线就是位于天空角90和地面角90的地方。利用这么空间角,就可以对空间背景采用梯度着色,避免了单一色彩的问题。 9.1 空间背景空间背景v 9.1.1 Background节点节点控制背景控制背景 v Background节点用来生成VRML的背景,其生成的背景是立体式的,它会带给你一种层次感。在VRML中,大地和天空都是无限大的,观察者无论怎样走,也走不到大地和天空之外。所以大地和天空总是出现在任何物体之后。 v 其节点语法定义如下:BackgroundExposedField

4、MFFloatskyAngleExposedField MFColorskyColor0.0 0.0 0.0ExposedField MFFloatgroundAngle 9.1 空间背景空间背景ExposedField MFColorgroundColor0.0 0.0 0.0ExposedField MFStringbackUrlExposedField MFStringbottomUrlExposedField MFStringfrontUrlExposedField MFStringrightUrlExposedField MFStringtopUrlexposedField SFBo

5、olset_bindexposedField SFBoolbind_changed 9.1 空间背景空间背景v skyAngle域的值指定了空间背景上需要着色的位置的空间角。VRML浏览器就是在这些空间角所指定位置进行着色的。第一个天空颜色着色于天空背景的正上方,第二个天空颜色着色于第一个天空角所指定的位置,第三个天空颜色着色于第二个天空角所指定的位置,依此类推。如果最后一个天空角小于180,则将使用天空颜色为最后剩下的天空背景部分进行着色。两个天空角之间的颜色是慢慢过渡的,这就形成了颜色梯度。该域值必须以升序的方式排列。缺省值为空。v SkyColor域的值指定了用来进行着色的颜色,该域值是

6、一系列RGB颜色。其缺省值为0.0 0.0 0.0。 9.1 空间背景空间背景v 同skyAngle域的作用差不多,groundAngle域的值指定了地面背景上需要着色的位置的空间角。第一个地面颜色着色于地面背景的正下方,第二个地面颜色着色于第一个地面角所指定的位置,第三个地面颜色着色于第二个地面角所指定的位置,依此类推。如果最后一个地面角小于180,则地面背景剩下的部分保持透明。该域值中地面角必须以升序的方式排列,其缺省值为空。v GroungColor域所指定的是对地面背景进行着色的一系列RGB颜色。该域值的缺省值为空。9.1 空间背景空间背景v 我们可以通过对背景设定颜色来产生天空和地面

7、效果,也可以在空间背景上添加背景图像,以生成山脉等场景。利用frontUrl、backUrl、leftUrl、rightUrl、topUrl和bottomUrl这几个域分别在6个不同的面添加背景图像。可以在VRML中使用的背景图像只能是JPGE、GIF和PNG格式。v Set_bind eventIn和isBound eventOut在使用背景变换时被用来接收事件和发送事件。9.1 空间背景空间背景v 9.1.2 Fog节点节点雾化效果雾化效果 v 在VRML中添加空间背景,使场景更真实,同样也可以在VRML中增加雾气的效果,因为现实空间中是有大气的。在VRML中雾不只是简单的白色自然雾,也可

8、生成黑色的烟雾等。通过雾的生成使VRML空间中的造型有一种朦胧感,而远近的区别将更加明显。v 在VRML中添加大气效果是通过Fog节点来实现的。Fog节点定义可见度递减的区域来模拟烟或雾。浏览器将雾的颜色与被绘制的物体的颜色相混合。物体的距离越远,雾的浓度越大,物体的能见度越低。 9.1 空间背景空间背景v 其节点语法描述如下:FogExposedField SFColorcolor 1.0 1.0 1.0ExposedField SFFloatfogType “LINEAR”ExposedField SFStringvisibilityRange 0.0ExposedField SFBool

9、set_bindExposedField SFBoolbind_changed 9.1 空间背景空间背景v color域的值指定了雾的颜色,可以任意设定雾的颜色,以产生不同的视觉效果。该域的缺省值为1.0 1.0 1.0。v fogType域的值指定了雾的类型。当域值为“LINEAR”时,雾的浓度将随观察距离的增加而线性增大;当域值为“EXPONENTIAL”时,雾的浓度将随观察距离的增加而指数增大。该域值的缺省值为“LINEAR”。v VisibilityRange域的值指定了浏览者在当前VRML场景中的可见度。在浏览者的距离超过可见度范围时造型完全被雾挡住,而看不见了。当该域值比较大时,雾

10、是逐步变浓的,就会产生薄雾的效果;当该域值比较小时,雾是突然变浓的,就像浓雾。该域值的缺省值为0.0,即没有烟雾的效果。v Set_bind和bind_changed用来接收事件和输出事件。 9.2 9.2 声音效果声音效果 v 在VRML中可以添加声音,与静态网页上的声音相比,VRML场景所播放的声音不是简单的2D声音,而是有其自己的声源,以及模拟现实中的声音传播路径的3D声音,它会给人一种和现实中一样的听觉感应。v VRML提供了声音节点来在VRML场景中添加声音,声音节点包括AudioClip节点、MovieTexture节点和Sound节点。以下将介绍这些节点的语法和用法。 9.2 9

11、.2 声音效果声音效果v 9.2.1 AudioClip节点节点 v AudioClip节点在VRML世界中描述了一个声源,指定了其他需要声源的节点可以引用的声音文件的位置及播放的各种参数,就如生成一台播放音乐的装置,如CD机。v 其语法结构如下:AudioClipExposedField MFStringurlExposedField SFStringdescription“”ExposedField SFBoolloopFALSEExposedField SFFloatpitch1.0ExposedField SFTimestartTime0.09.2 9.2 声音效果声音效果Expose

12、dField SFTimestopTime0.0EventOut SFTimeduration_changedEventOut SFBoolisActivev url域的值指定了一个需要引入的声音文件的url地址,或一组url地址列表。该域值提供了在该VRML场景中所要播放的声音文件的具体位置,其排列顺序为从高优先权的到低优先权的。通常VRML浏览器从地址列表中第一个url指定地址试起,如果声音文件没有被找到或不能打开,浏览器尝试打开第二个url指定的文件,依此类推。当找到一个可以打开的声音文件时,该声音文件被读入, 9.2 9.2 声音效果声音效果作为声源。如果找不到一个可以打开的声音文件,

13、则不播放声音。该域的缺省值为一张空的url列表,这表明没有任何文件被打开,不播放任何声音。v VRML所支持的声音文件有WAV、MIDI和MPEG-1文件,而可以通过AudioClip节点引用的声音文件有WAV文件和MIDI文件。MPEG-1是通过MovieTexture节点来引用的。 v Loop域的值指定是否循环播放所引用的声音文件,该域值为布尔运算值,如果该域值为TRUE,只要startTime大于stopTime,声音便一遍又一遍地循环播放,如果该域值为FALSE,则声音只播放一次就停止,该域的缺省值为FALSE。 9.2 9.2 声音效果声音效果v Description域的值指定了

14、一组描述所引用声音文件德文本串。其依赖于浏览器的方式使用,可在浏览器播放该声音文件的同时显示,或在不能播放该声音文件时显示该文本串,以说明该声音文件,就如同在网页中因为不能显示图片而以文字代替一样。该域值的缺省值为空。v Pitch域的值指定了播放声音的相乘因子,用来加快或减慢声音的播放速度。将pitch域的域值同这个声音文件的固有播放时间相乘就是该声音文件在VRML空间中的播放时间。当该域值为1.0时,声音按正常速度播放,当该域值在0.0和1.0之间时,将减慢声音的播放速度,并降低音调,当该域值大于1.0时,将加快声音的播放速度,并提高音调。注意,该域值最好不要大于5.0,该域值的缺省值为1

15、.0,即按原声音文件本身的播放速度来播放。 9.2 9.2 声音效果声音效果v StartTime域的值指定了所引用声音文件开始播放的绝对时间。表示以格林威治时间1970年1月1日午夜15时开始计时,并以秒为单位的绝对时间。该域值的缺省值为0.0秒。v StopTime域的域值指定了所引用声音停止播放的绝对时间,同startTime域相对应,该域的缺省值为0.0秒。v StartTime、stopTime、pitch、loop等域共同作用,控制声音文件的播放,其作用情况如表9.2.1所示: 9.2 9.2 声音效果声音效果 表9.2.1 startTime、stopTime、pitch、loo

16、p域值共同作用的效果 9.2 9.2 声音效果声音效果v duration_changed事件出口用来在声音被打开后,与声音的播放时间(以秒为单位)一起发送出去,使其他节点知道当前所播放的声音的持续时间。所输出的播放时间与pitch域中所规定的播放速度无关,即输出的是该声音文件本身所固有的播放时间。当声音文件不能被打开或不能确定其播放时间时,duration_changed eventOut输出-1,而不是播放时间。v IsActive布尔事件在声音开始时发送一个TRUE事件,当声音停止时,发送一个FALSE事件。通过这个布尔值告诉其他节点当前该声音是否正在播放。 9.2 9.2 声音效果声音

17、效果v 9.2.2 MovieTexture节点节点 v 该节点已在前面的纹理映射中涉及,这里不再赘述。v 9.2.3 9.2.3 SoundSound节点节点 v AudioClip节点和MovieTexture节点在VRML文件中并不能作为独立的节点,它们只是创建了声源,而要播放声音,并按VRML设计者所希望的来播放,就需要通过Sound节点来实现。 9.2 9.2 声音效果声音效果v Sound节点在VRML世界中生成了一个声音发射器,它用来指定声源的各种参数,即指定了VRML场景中声源的位置和声音的立体化表现。声音可以位于局部坐标系中的任何一个点,并以球面或椭球的模式发射出声音。Sou

18、nd节点也可以使声音环绕,即不通过立体化处理,这种声音在离它所指定的距离渐变为0。同AudioClip节点不同,Sound节点可以出现在VRML文本文件的顶层,也可以作为组节点的子节点。v 其节点语法定义如下: Sound ExposedField SFVec3fdirection0.0 0.0 1.0 9.2 9.2 声音效果声音效果ExposedFieldSFFloatintensity1.0ExposedFieldSFVec3flocation0.0 0.0 0.0ExposedFieldSFFloatmaxBack10.0ExposedFieldSFFloatmaxFront10.0E

19、xposedFieldSFFloatminBack1.0ExposedFieldSFFloatminFront1.0ExposedFieldSFFloatpriority0.0ExposedFieldSFNodesourceNULLExposedFieldSFBoolspatializeTRUE 9.2 9.2 声音效果声音效果v direction域的值指定了声音发射器的空间朝向,即规定VRML世界中声音发射器所指方向的矢量,声音发射器将以这个矢量的方向发射声音。该矢量由三个浮点数表示,分别表示一个三维向量的X,Y,Z部分。该域的缺省值为0.0 0.0 1.0,即指向空间坐标系的Z轴正方向的

20、向量。v Intensity域的值指定了声音发射器发射声音的强度,即音量。该域值在0.0到1.0范围内变化。1.0表示音量最大,为声音文件建立时的全音量;0.0表示静音。在0.0和1.0之间的值则表示不同声音发射器的音量。需要注意的是,当intensity域的域值大于1.0时,会使该声音失真,也就失去了其声音本来的效果,如果场景需要高音量的声音,最好先在更高音量下重新录制一次。该域值的缺省值为1.0。 9.2 9.2 声音效果声音效果v Location域的值指定了当前局部坐标系中一个用来表示声音发射器位置的三维坐标。该域的缺省值为0.0 0.0 0.0,即坐标系的原点。v Priority域的值用来指定声音的优先级。该域的取值范围为0.0到1.0。1.0表示最高的优先级,0.0最低。Priority域的缺省值为0.0。v Source域的值为VRML场景中播放的声音提供了声源。其域值就是用来创建声源的AudioClip节点,或MovieTexture节点。该域的缺省值为NULL,表示没有声源引入,即没有声音可播放。 v Spa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论