第4章 VRML场景效果_第1页
第4章 VRML场景效果_第2页
第4章 VRML场景效果_第3页
第4章 VRML场景效果_第4页
第4章 VRML场景效果_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、4.4 VRML的场景效果的场景效果主要内容主要内容1. 创建背景创建背景 2. 创建光源创建光源 3. 创建雾化效果创建雾化效果 4. 创建观察视点和视点导航创建观察视点和视点导航5. 创建音响效果创建音响效果 第一节第一节 创建背景创建背景 VRML中虚拟空间背景分为: 全景空间背景 将造型包围在里面的空间立方体,具有前、后、左、右、上、下六个平面,可根据需要设置不同的材质和图片。 天体空间背景 无穷大的空间球体,分为天空背景和地面背景。天空和地面的划分以地平线为界。 地平线位于原始坐标系XOZ平面向后延伸的无穷远处。 背景和造型的嵌套关系: 由内至外:造型-全景空间背景-天体空间背景 如

2、果同时增加了全景空间和天体空间两种背景,可通过设置全景空间背景的透明度值决定能否看到天空和地面的颜色。 默认:没有全景空间背景,天空和地面均为黑色。 一、Background背景节点 可以是任意组节点的子节点,用于在当前坐标系中创建全景空间或天体空间背景。 空间背景不受坐标系平移或缩放变换的影响,因此,浏览者在任何情况下都不可能靠近背景,只能从不同角度观察全景空间背景的不同侧面或天体背景中天空和地面的颜色。BackgroundskyColor 0.0 0.0 0.0skyAngle groundColor 0.0 0.0 0.0groundAngle frontUrlbackUrlleftUr

3、lrightUrltopUrlbottomUrlset_bindisBound skyAngle: 天空着色位置所需的空间角。天空角从正上方0度开始,地平线处为90度,到正下方180度为止,天空角必须以升序排列。 注:约定天空着色的位置在正上方,所以省略起始天空角的设置,天空颜色数目总比天空角数目多一个。 如果设置的最后一个天空角小于180度,则剩余的空间均由指定的最后一种颜色着色。 groundColor:正下方为地面角的起始位置0度,正上方为地面角180度的位置。必须升序排列。 如果没有人为设置地面,浏览器只进行天空部分的着色。 topUrl, bottomUrl:通常不设置背景图像,从而

4、能看到天空和地面。 set_bind和isBound用于进行空间背景切换。 二、创建单色背景 只需对skyColor域进行设置即可。 三、创建天空背景 例4-18:创建一个多色天空背景,由顶部的蓝色、中间的天蓝色到水平处的白色,形成一个颜色梯度变换的天空背景。 四、创建地面背景 五、创建全景空间背景第二节第二节 创建光照创建光照 VRML浏览器自动生成白色头灯光源headlight.此光源为平行光束,与浏览者的视点同步运动,始终照亮浏览者的前方。 可通过NavigationInfo节点的headlight域进行设置。默认为打开,且光源颜色无法改变。 VRML中可人工设置的三类光源: 点光源 P

5、ointLight节点 由一个发光点向整个空间发射光线。 灯炮 平行光源 DirectionalLight节点 始终朝一个特定方向发射光线,在场景中产生一组完全平行的光照效果。 太阳光 锥光源 SpotLight节点 由一个发光点向一个特定方向照亮圆锥体。 带罩的台灯 光源颜色可以在color域中进行设置。 VRML创建的光源与现实中光源的最大差别在于,无法自动产生阴影,必须通过人为设置阴影造型模拟阴影效果。 一、PointLight节点 可独立,也可作为子节点PointLighton TRUElocation 0.0 0.0 0.0 radius 100.0intensity 1.0ambi

6、entIntensity 0.0 color 1.0 1.0 1.0attenuation 1.0 0.0 0.0 intensity:点光源的明亮程度。 ambientIntensity:点光源对照明球体内的造型所产生的环境光线的影响。 attenuation:光照范围内光线的衰减方式。 第一个值:是否光线恒定; 第二个值:控制光线按线性方式衰减; 第三个值:控制光线亮度衰减和距离平方之间的关系。 该域所有值都要求大于等于0。 例4-19:使用导航节点将系统默认的头灯关闭,在(0 0 1.5)的坐标位置上设置一个白色点光源,引入小球造型组(三行五列),并且与默认头灯照射的效果进行对比。 二、

7、DirectionalLight节点DirectionalLighton TRUEdirection 0.0 0.0 -1.0intensity 1.0color 1.0 1.0 1.0Direction:设定平行光源的照射方向。由坐标原点指向这个特定的点。例4-20:将4-19中的点光源改成平行光源。观察效果。 三、SpotLight节点 模拟一些特殊光照效果的场景,如舞台灯光、探照灯、艺术摄影等。SpotLighton TRUEdirection 0.0 0.0 -1.0intensity 1.0color 1.0 1.0 1.0location 0.0 0.0 0.0radius 100

8、.0beamWidth 1.570796cutOffAngle 0.785398ambientIntensity 0.0attenuation 1.0 0.0 0.0 beamWidth:在照明锥体中所包含的一个等强度光内部锥体的扩散角,即锥体中心轴到内部锥体表面所形成的夹角。0-1.571之间变化。 cutOffAngle:设定整个照明锥体的扩散角。 0-1.571之间变化。 四、创建阴影效果 阴影的形状通常是造型沿光线照射方向形状的压缩和变形,一般利用Transform节点的scale域模拟阴影的形状。阴影颜色通常用Material节点的域值设置为灰色或者半透明的深灰色。 例4-21:将例

9、4-9中由圆锥和圆柱体组成的烟囱造型引入当前文件中,并设置垂直照射的平行光源,增加一块显示阴影的地板,然后用一个镶嵌在平板造型里的灰色圆柱体模拟阴影造型。第三节第三节 创建雾化效果创建雾化效果 雾化效果两个因素:颜色、浓度 VRML中,由Background节点设定的背景图像不会受雾的遮蔽效果的影响,因此设计者强调雾化效果时,最好不使用背景图像,或者便雾的颜色与背景颜色协调相融。Fogcolor 1.0 1.0 1.0fogType “LINEAR”visibilityRange 0.0set_bind isBound fogType:设定雾的渲染类型。 “LINEAR”:浓度随观察距离的增大

10、而线性增大 “EXPONENTIAL”:浓度随观察距离的增大而指数增大,变化程度远远大于线性。 visibilityRange:可见范围。越大,薄雾;越小,浓雾;距离超过此域值时,造型将完全不可见。 例4-22:创建一个雾化测试场景:平板底托上,由近往远错落排列6根金色圆柱。利用Fog节点增加雾化效果。改变其visibilityRange,观察6根圆柱的可见性。diffuseColor 0.4 0.2 0ambientIntensity 0.28shininess 0.1specularColor 0.8 0.4 0第四节第四节 创建观察视点和视点导航创建观察视点和视点导航 VRML中,允许创

11、建多视点供选择,但不能同时使用,每个时刻只能选择其中一个视点。随着时间推移,视点之间可以切换。 跳跃式:定义能够在虚拟世界中观察到用户感兴趣的重要的精彩的场景造型的观测点,用户不必观看每一个场景,创建一种快捷方便的观察方式。 非跳跃式:定义随坐标系平滑转换连续变化的观测点。 Viewpoint视点节点和NavigationInfo导航节点,一个用于设置观察视点,一个用于设置视点的移动方式,两者配合可以创造逼真、美妙的浏览效果。 一、Viewpoint节点Viewpointposition 0.0 0.0 10.0orientation 0.0 0.0 1.0 0.0 观察者面对的方向field

12、OfView 0.785398jump TRUEdescription “ ”set_bindisBoundbindTime fieldOfView:视角。0-3.141,超过1.047(60度)时观察到的物体会产生显著变形。 jump:视点切换类型是否为跳跃式。 Desciption:描述视点的字符串,即视点名称。它会自动出现在浏览器的视点列表中,通过该域值,人们可以很方便地找到自己感兴趣的视点。 Set_bind入事件isBound出事件:进行VRML空间视点切换。 bindTime:出事件,发出视点被切换的时间,可用来在一个给定的视点被激活时,开始运行一段动画或者执行一段脚本程序。 例4

13、-23:引入烟囱造型作为视点测试场景。设定多个视点,观测视点控制效果。 View5、view6为了观测造型顶部和底部,将视点绕X轴旋转。 注:视点绕除Z轴以外的其他轴旋转时,必须同时设定视点的位置,使视点旋转后造型仍然位于视线的前方,否则视点在系统默认的位置上很可能看不到要观测的造型。 例4-24:本例介绍旋转视点、改变视线朝向的另外一种方法:利用Transform,旋转Viewpoint节点所在的坐标系,以达到改变视线朝向的目的。这种方法只需改变视点的角度,不必改变视点的位置。 二、NavigationInfo导航节点 创建一个观察者的替身,该替身不可见。利用替身的视角,按照不同的视点导航方

14、式,在虚拟现实空间里漫游。 该节点对替身的外表尺寸、浏览方式、浏览速度 、头灯光源等参数时行设置。NavigationInfoheadLight TRUEtype “WALK” “ANY”speed 1.0visibilityLimit 0.0avatarSize 0.25 1.6 0.75set_bindisBound type:视点导航方式。共五种。( WALK, FLY,EXAMINE,ANY,NONE)。 默认值表示行走状态为初始浏览状态,用户可在控制面板上选择切换成任何一种浏览方式。 visibilityLimit:观察者替身的最大观察距离。默认为0,表示可观察到无穷远处。如果观察者

15、在最大观察距离内没观察到任何对象,浏览器将只显示背景图。 在创建大的三维空间场景时,远处不必显示的造型和场景可以通过合理设置该域值而忽略。 avatarSize:替身的外表参数。 第一个:外表圆柱体的半径,设置替身进行碰撞和穿越时1/2的厚度和宽度; 第二个:高度,视点距地面的高度; 第三个:抬腿的高度,设置替身能跨越障碍物的最高高度。第五节第五节 创建音响效果创建音响效果 Sound节点用于创建声场并设定声音播放方式,AudioClip和MovieTexture节点用于创建声源。 一、环境中声音的基本概念 WAV(.wav):适于播放短的声音效果或讲话; MIDI(.mid):适于演奏背景音

16、乐; MPEG-1(mpg):适于播放声音和图像同步的影片; 二、Sound节点 用于在VRML中创建声场:设定声源位置及声音的播放方式。directionlocationminBack minFrontmaxBackmaxFront声音衰减区Soundsource NULLlocation 0 0 0direction 0 0 1intensity 1.0maxBack 10.0maxFront 10.0minBack 1.0minFront 1.0priority 0.0spatialize TRUE Source:设定声源。其域值可以是AudioClip节点或者MovieTexture节点。 三、AudioClip节点 引入声源信息,其域值设定从哪里可以引入一个预告录制好的声音文件、声音文件的播放起止时间和播放方式等 该节点只能出现在Sound节点的source域中,可引入WAV文件或者MIDI文件。AudioClipurl description “”loop FALSEpitch 1.0 快速或慢速播放因子startTime 0.0stopTime 0.0duration_changed isActive 四、MovieTexture电影纹理节点 主要用于两方面:

温馨提示

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

评论

0/150

提交评论