虚拟现实技术教学课件第五章.ppt

上传人(卖家):ziliao2023 文档编号:6425609 上传时间:2023-07-07 格式:PPT 页数:139 大小:4.17MB
下载 相关 举报
虚拟现实技术教学课件第五章.ppt_第1页
第1页 / 共139页
虚拟现实技术教学课件第五章.ppt_第2页
第2页 / 共139页
虚拟现实技术教学课件第五章.ppt_第3页
第3页 / 共139页
虚拟现实技术教学课件第五章.ppt_第4页
第4页 / 共139页
虚拟现实技术教学课件第五章.ppt_第5页
第5页 / 共139页
点击查看更多>>
资源描述

1、15 VRML场景效果节点编程设计场景效果节点编程设计在在VRML虚拟现实立体空间中,要设计出更完美、更逼真的虚拟现实立体空间中,要设计出更完美、更逼真的三维立体场景,还需要对三维立体场景,还需要对VRML场景进行场景进行渲染和升华渲染和升华,例如,例如:自然界中大气雾化的效果三维立体造型的纹理(贴图)剧场的灯光效果环场立体声效果及视觉导航效果等等。节点内容节点内容1.空间大气效果2.纹理效果节点3.视点效果节点4.光照效果节点5.音响效果节点6.WordInfo信息化节点5.l 空间大气效果空间大气效果什么是大气效果?什么是大气效果?空间大气效果就是通常所说的雾。在VRML世界里要真实地表现

2、现实世界,就要把现实世界的雾化效果体现出来。还要体现雾的浓度效果,甚至要表现雾的颜色等。如何产生雾化效果?如何产生雾化效果?利用Fog雾化节点可以实现空间大气效果5.1.1 Fog雾节点语法雾节点语法为使为使VRML场景更加真实,场景更加真实,Fog雾节点可在雾节点可在VRML场景中添加雾场景中添加雾气,如在清晨、雨后、山川、旷野等设计中使大气的背景空气,如在清晨、雨后、山川、旷野等设计中使大气的背景空间具有更好的效果,使其具有朦胧之美。间具有更好的效果,使其具有朦胧之美。控制雾化效果控制雾化效果有两个重要条件有两个重要条件:一是雾的浓度;雾的浓度与观察者的能见度相反,距离观察者越远的虚拟现实

3、景物的能见度越低,即雾越浓;距离观察者越近的虚拟现实景物能见度越高,即雾越淡。二是雾的颜色。当模拟烟雾时,需要改变雾的颜色,但通常情况下,雾是白色在在VRML中添加大气效果是通过中添加大气效果是通过Fog节点来实现的。节点来实现的。Fog节点通过定义可见度递减的区域来模拟雾或烟雾,还可以为雾着色。浏览器将雾的颜色与被绘制的物体的颜色相混合。Fog雾节点语法结构如图雾节点语法结构如图5-1所示的所示的两种语法结构两种语法结构,在编程时均可选用在编程时均可选用Shape 模型节点模型节点Fog雾雾节点节点Inline 内联节点内联节点Transform组组节点节点Group组节点组节点Group组

4、节点组节点Background背景背景节点节点Fog雾雾节点节点Inline 内联节点内联节点Fog节点语法定义节点语法定义Fog Color 0.0 0.0 0.0#域值类型域值类型 MFColor fogType “LINEAR”#域值类型域值类型 SFString visibilityRange 0.0#域值类型域值类型 MFFloat set_bind#输入接口输入接口 SFBool bind_changed#输出接口输出接口 SFBool域名和域值详解域名和域值详解(1)color域的值域的值 定义了雾的颜色。设计者可以任意设定雾的颜色,以产生不同的视觉效果。该域值的默认值为(1.0

5、 1.0 1.0)。(2)fogType域的值域的值 定义了雾的类型。当域值为“LINEAR”时,雾的浓度将随观察距离的增加而线性增大;当域值为“EXPONENTIAL”时,雾的浓度将随观察距离的增加而指数增大。该域值的默认值为“LINEAR”。(3)visibilityRange域的值域的值 指定了浏览者在当前VRML场景中的可见度。在浏览者的距离超过可见度范围时,造型完全被雾挡住而看不见了。当该域值比较大时,雾是逐步变浓的,就会产生薄雾的效果;当该域值比较小时,雾是突然变浓的,就像浓雾。该域值的默认值为0,即没有烟雾的效果。事件说明事件说明 set_bind和isBound用来接收入事件和

6、出事件:set_bind事件是eventIn(入事件),决定雾Fog节点为目前使用中的节点;isBound是evenOut(出事件),决定目前节点是受限制的TRUE或是不受限制的FALSE。512 Fog雾节点语法实例雾节点语法实例实例实例5-1 使用雾化节点创建一个公路路灯场景,并使用雾化节点创建一个公路路灯场景,并增加雾化节点,产生了大气效果使场景更加逼真、增加雾化节点,产生了大气效果使场景更加逼真、自然,如图自然,如图5-2所示。所示。(Vrml 5-1.wrl)(10-1.wrl 无雾无雾)(10-2.wrl 有雾有雾)5.2 纹理效果节点关于纹理关于纹理 纹理是一种位图,即二维图像。

7、关于纹理映射关于纹理映射 把纹理图按一定规则粘贴到VRML立体空间造型表面的过程称为纹理映射。使用纹理映射能使立体空间造型更具真实感,纹理图的使用能增加浏览者的视觉效果,提高渲染的质量;如物体造型映射成大理石纹理形成地砖,映射成木纹形成地板,映射成墙砖形成墙壁等。关于纹理图像格式关于纹理图像格式 在VRML中,浏览器支持的纹理图像格式有JPEG、GIF、PNG及MPEG等。这些都是VRML文件材质贴图的标准格式。JPEG(Joint Photographic Expert Group)是一种比较流行的图像存储格式。该格式存储图像文件较小,比较适合于网络传输,且图像质量比较高,是一种较好的图像存

8、储格式,其文件扩展名为*.jpg,因为JPEG格式不支持图像中的像素透明度存储不支持图像中的像素透明度存储,所以JPEG格式存储图像文件时,不能包含像素的透明度信息。GIF(Graphical Interchange Format)格式格式 是一种适合在因特网上进行图像浏览的文件格式。这种格式使用文件压缩算法,文件占用空间较小,图像质量相对较低,其文件扩展名为*.gif,因GIF格式文件支持支持图像中的像素透明度存储,以GIF格式存储图像文件时,可以包含像素的透明度信息。PNG(Portable Network Graphics)格式是一种专门为取代GIF格式文件而开发的用于网络浏览用于网络浏

9、览的图像文件格式。它相对于GIF格式有更高的图片质量,支持单元素、双元素、三元素和四元素图像,其文件扩展名为*.png。由于PNG格式文件支持支持图像中的像素透明度存储,以PNG格式存储图像文件时,可以包含像素的透明度信息。MPEG(Moving Picture Expects Group)格式格式 是比较流行的音像存储格式,采用高效率的图像和声音压缩技术,以此格式存储的电影文件的图像质量相当高,其文件扩展名为*.mpg。由于MPEG格式文件不支持不支持图像中的像素透明度存储,以MPEG格式存储图像文件时,不能包含像素的透明度信息。5.2.1 ImageTexture图像纹理节点图像纹理节点V

10、RML提供有提供有3种纹理节点,即种纹理节点,即1.ImageTexture图像纹理节点2.PixelTexture像素纹理节点3.MovieTexture电影纹理节点。针对纹理还可利用针对纹理还可利用TextureTransform节点进行平移节点进行平移、缩放、旋转等变换。、缩放、旋转等变换。对于复杂几何体还可使用对于复杂几何体还可使用TextureCoordinate节点进节点进行精确的纹理映射。行精确的纹理映射。5.2.1 ImageTexture图像纹理节点 ImageTexture节点节点是图像纹理,把图像映射(粘贴)到立体空间的几何造型、面节点及海拔栅格节点上。它指定了纹理映射属

11、性,通常作为appearance节点的texture域的域值。ImageTexture图像纹理节点语法结构图图像纹理节点语法结构图Shape 模型节点模型节点Appearance外观属性节点外观属性节点几何或几何或造型节点造型节点ImageTexture图像纹理节点图像纹理节点外观节点外观节点Appearance域域Geometry 域域Transform节点或节点或Group节点节点texture纹理节点纹理节点ImageTexture 节点语法ImageTexture url#exposeField SFString repeatS TRUE#field SFBool repeatT TR

12、UE#field SFBool 域名和域值详解域名和域值详解(1)url域域 指定了一个由高优先级到低优先级由高优先级到低优先级的URL排序表,用于粘贴图像文件名及来源位置,图像格式必须是JPEG,GIF或PNG格式的文件。VRML浏览器从地址列表中第一个URL指定位置试起,如果图像文件没有被找到或不能被打开,浏览器就尝试打开第二个URL指定的文件,依次类推。如果找到一个可打开的图像文件,该图像文件被读入,作为纹理映射造型;如果找不到任何一个可以打开的图像文件,将不进行纹理映射。(2)repeatS域的域值域的域值 是布尔量。S代表水平方向。如果是TRUE,粘贴图像会重复填满这个几何对象表面到

13、(0.0 1.0)的范围外,在水平方向,此为默认值;如果是FALSE,粘贴图片只会被限制在(0.0 1.0)的范围内,在水平方向重复填满几何对象表面。(3)repeatT域的域值域的域值 是布尔量。T代表垂直方向。如果是TRUE,粘贴图片会重复填满这个几何对象表面到(0.0 1.0)的范围外,在垂直方向,此为默认值;如果是FALSE,粘贴图片只会被限制在(0.0 1.0)的范围内,在垂直方向重复填满几何对象表面。实例实例5-2 在立体背景空间下,使用坐标变换节点、在立体背景空间下,使用坐标变换节点、模型节点及图像纹理节点在球体上粘贴一个模型节点及图像纹理节点在球体上粘贴一个JPG图图像,显示的

14、效果图如图所示。像,显示的效果图如图所示。实例实例5-3 在蓝色立体空间中,利用背景节点、坐标在蓝色立体空间中,利用背景节点、坐标变换节点、模型节点及图像纹理节点,在立方体上变换节点、模型节点及图像纹理节点,在立方体上粘贴一个粘贴一个JPG图像,显示的效果图如图所示。图像,显示的效果图如图所示。5.2.2 PixelTexture像素纹理节点像素纹理节点PixelTexture节点节点是像素纹理节点,指定了纹理映射的属性,通常作为Appearance节点域的值。PixelTexture像素纹理节点语法结构图Shape 模型节点模型节点Appearance外观属性节点外观属性节点几何或几何或造型

15、节点造型节点PixelTexture像素纹理节点像素纹理节点外观节点外观节点Appearance域域Geometry 域域Transform节点或节点或Group节点节点texture纹理节点纹理节点PixelTexture 节点语法节点语法PixelTexture image 0 0 0#域值类型域值类型 SFImage repeatS TRUE#域值类型域值类型 SFBool repeatT TRUE#域值类型域值类型 SFBool (1)repeatS域域 和和 repeatT域域 指定纹理坐标是回绕还是锁定。S代表水平方向,T代表垂直方向。如果域值为TRUE,则纹理坐标在纹理系统中回绕

16、并重复;如果域值为FALSE,则纹理坐标不重复并且锁定。其默认值为TRUE。域和域值(2)image 域的值域的值 指定了用来对造型进行纹理映射的纹理映像的大小和像素值。该域值的前3个值必须为整数,其中1.第1个数值表示以像素为单位的映像宽度,2.第2个数值表示以像素单位的映像的高度,3.第3个数值表示每一个像素的字节数(每个像素元素的字节组个数)。第3个值可在0,l,2,3,4这几个数中取值。0表示 静止造型纹理,即关闭对几何对象表面贴图的功能;1表示 每个像素提供一个字节组,表示灰度强度,从黑色(0 x00)到白色(0 xFF),如0 x00(黑色);0 x80(50灰度),0 xFF(白

17、色);2表示表示 每个像素提供两个字节组,一个字节组表示灰度强度每个像素提供两个字节组,一个字节组表示灰度强度,从黑色,从黑色(0 x00)到白色到白色(0 xFF);另一个字节组表示穿透性,从;另一个字节组表示穿透性,从透明透明(0 x00)到不透明到不透明(0 xFF);如;如0 x0000(黑色,透明黑色,透明)、0 x80FF(灰灰色,不透明色,不透明)、0 xFF80(白色,半透明白色,半透明);3表示表示 RGB颜色,每个像素提供颜色,每个像素提供3个字节组,每个字节组分别个字节组,每个字节组分别表示红、绿、蓝。每一组颜色变化值从无表示红、绿、蓝。每一组颜色变化值从无(0 x00)

18、到满到满(0 xFF)。红色是高字节组、绿色是中字节组、蓝色为低字节组,如红色是高字节组、绿色是中字节组、蓝色为低字节组,如0 x000000(黑色黑色),0 xFF0000(红色红色),0 x00FF00(绿色绿色),0 x0000FF(蓝色蓝色),0 xFFFF00(黄色黄色),0 xFFFFFF(白色白色);4表示表示 每个像素提供每个像素提供4个字节组,一个字节组是红色,一个字个字节组,一个字节组是红色,一个字节组是绿色,一个字节组是蓝色,一个字节组是穿透性。每节组是绿色,一个字节组是蓝色,一个字节组是穿透性。每一组从无一组从无(0 x00)到满到满(0 xFF)。红色是最高字节组,绿

19、色是中高。红色是最高字节组,绿色是中高字节组,蓝色为中低字节组,还有穿透为低字节组,如字节组,蓝色为中低字节组,还有穿透为低字节组,如0 x00000000(黑色、透明黑色、透明),0 xFF0000FF(红色、不透明红色、不透明),0 xFFFF0080(黄色、半透明黄色、半透明)。图片的颜色是从左下角第一个元素开始,一直到右上角最后图片的颜色是从左下角第一个元素开始,一直到右上角最后一个元素填满。颜色的表示方式一个元素填满。颜色的表示方式(像素值像素值)是通过是通过16进制来表示进制来表示的。的。在立体空间背景下,使用坐标变换节点、模型节点在立体空间背景下,使用坐标变换节点、模型节点及像素

20、纹理节点创建不同像素的彩色纹理造型,如及像素纹理节点创建不同像素的彩色纹理造型,如下图下图5.2.3 MovieTexture影像纹理节点影像纹理节点MovieTexture 影像纹理节点影像纹理节点是电影纹理,用来指定纹理映射属性,通常作为Appearance节点的texture域的值,也可以作为其他节点的子节点。MovieTexture节点主要是用于纹理映射的动态效果也可以使用MovieTexture节点来创建伴音,作为Sound节点sound域指定所需的声音文件,如播放电影时的电影声音。MovieTexture影像纹理节点语法结构图影像纹理节点语法结构图Shape 模型节点模型节点App

21、earance外观属性节点外观属性节点几何或几何或造型节点造型节点外观节点外观节点Appearance域域Geometry 域域Transform节点或节点或Group节点节点Material 节点节点MovieTexture图像纹理节点图像纹理节点MovieTexture 节点语法节点语法MovieTexture url#exposedField SFString loop FALSE#exposedField SFBool speed 1.0#exposedField SFFloat startTime 0.0#exposedField SFTime stopTime 0.0#expose

22、dField SFTime repeatS TRUE#field SFBool repeatT TRUE#field SFBool isActive#eventOut SFBool duration_changed#eventOut SFTime MPEG的全称为的全称为Moving picture Expects Group,即运动,即运动图像专家组,是一种压缩比率较大的活动图像和声图像专家组,是一种压缩比率较大的活动图像和声音的压缩标准,其压缩率为音的压缩标准,其压缩率为0.8位位/像素到像素到0.4位位/像素像素之间,其所存储的电影文件的图形质量也比较好。之间,其所存储的电影文件的图形质

23、量也比较好。域名和域值详解域名和域值详解(1)url域的域值域的域值 是引入影片文件的路径。影片文件的格式为MPEG-System(同时具有声音与视频)或MPEG-Vigeo(只有视频)。(2)loop域的域值域的域值 是布尔量。若为TRUE时,表示一直循环播放;若为FALSE时,则反之。其默认值为FALSE。(3)speed域的域值域的域值 是浮点数。该域值指定了电影纹理播放速度的乘法因子。当该域值为1.0时,表示影片为正常播放速度;当该域值大于1.0时,表示影片快速播放;当该域值为2时,则为两倍的播放速度;当该域值小于1.0时,影片的播放速度减慢;当该域值小于0.0时,则影片将反向播放。该

24、域值的默认值为1.0,按正常速度播放电影。(4)repeatS域和域和repeatT域域 指定纹理坐标是回绕还是锁定。S代表水平方向,T代表垂直方向。如果域值为TRUE,则纹理坐标在纹理系统中回绕并重复;如果域值为FALSE,则纹理坐标不重复并且锁定。其默认值为TRUE。(5)startTime域的域值域的域值 代表影片开始播放的时间。(6)stopTime域的域值域的域值 代表影片结束播放的时间。startTime域,域,stopTime域,域,speed域和域和loop域共同控制着域共同控制着MovieTexture影像纹理节点,这影像纹理节点,这4个域值共同作用生成的效果个域值共同作用生

25、成的效果见表见表5-1。Loop域值StartTime stopTime speed loop 域值之间的关系效果TRUEstopTime=startTime无限循环播放TRUEstartTime stopTime播放到stopTime为止FALSEstopTime=startTime播放一周期后停止FALSEstartTime(startTime+duration/speed)=stopTime播放一周期后停止FALSEstartTime stopTime(startTime+duration/speed)播放不到一周期,在stopTime处停止表表5-1 startTime stopTim

26、e speed loop 域值共同作用的效果域值共同作用的效果实例实例5-6 在立体空间背景中,使用电影纹理节点创在立体空间背景中,使用电影纹理节点创建一台液晶电视,能播放影视节目,但没有声音,建一台液晶电视,能播放影视节目,但没有声音,播放的影视文件为播放的影视文件为*.mpg,如图,如图5-10所示。所示。5.2.4 TextureCoordinate纹理坐标节点纹理坐标节点在在VRML虚拟现实空间中,提供了虚拟现实空间中,提供了TextureCoordinate纹理坐标节点纹理坐标节点和和TextureTransform纹理变换节点纹理变换节点来控来控制纹理的坐标及坐标变换,使纹理为空间

27、造型达到制纹理的坐标及坐标变换,使纹理为空间造型达到更佳的效果。更佳的效果。TextureCoordinate节点指定了一组纹理坐标,通常节点指定了一组纹理坐标,通常用做用做IndexeFaceSet节点和节点和ElevationGrid节点中节点中texCoord域的值。域的值。TextureCoordinate纹理坐标节点语法结构纹理坐标节点语法结构Shape 模型节点模型节点IndexeFaceSet节节点点或或ElevationGrid节节点点外观节点外观节点Appearance域域Geometry 域域Transform节点或节点或Group节点节点Texture纹理节点纹理节点Im

28、ageTexture节点节点纹理坐标节点纹理坐标节点TextureCoordinate纹理坐标节点语法定义纹理坐标节点语法定义 TextureCoordinate point#exposedField MFVec2f 域名和域值详解域名和域值详解 point域的值域的值1.指定了纹理图像在纹理坐标系统中的位置。2.与造型坐标不同的是,纹理坐标由两个浮点数值来指定,分别表示自坐标原点起S(水平)和T(垂直)方向距离的值。3.该域值的默认值为空。通过TextureCoordinate节点可以指定纹理图像中的一部分。实例实例5-7在立体空间背景下,使用纹理坐标节点作在立体空间背景下,使用纹理坐标节点

29、作为为IndexedFaceSet面节点和面节点和ElevationGrid栅格节点中栅格节点中texCoord域的值来粘贴纹理,通过不同的参数设置域的值来粘贴纹理,通过不同的参数设置使造型更加逼真、生动活泼,如图所示。使造型更加逼真、生动活泼,如图所示。如何修改程序?如何修改程序?5.2.5 TextureTransform纹理坐标变换节点纹理坐标变换节点1.TextureTransform节点相对原始纹理坐标系建立了节点相对原始纹理坐标系建立了一个新的纹理坐标系统。这同一个新的纹理坐标系统。这同Transform节点在虚节点在虚拟世界坐标系上新建一个新坐标系一样。拟世界坐标系上新建一个新坐

30、标系一样。2.该节点的功能是该节点的功能是改变粘贴在几何对象表面的图片改变粘贴在几何对象表面的图片或影片的位置或影片的位置,使其平移、转动或改变图像的尺,使其平移、转动或改变图像的尺寸。寸。3.该节点通常作为该节点通常作为Appearance节点节点textureTrmsform域域的值。的值。TextureTransform纹理坐标变换节点语法结构纹理坐标变换节点语法结构Transform空间坐标变换空间坐标变换节点节点TextureTransform纹理纹理坐标变换坐标变换节点节点Shape 模型节点模型节点Appearance外观属性节点外观属性节点几何或几何或造型节点造型节点外观节点外

31、观节点Appearance域域Geometry 域域Material造型外观节点造型外观节点TextureTransform纹理坐标变换节点语法定义纹理坐标变换节点语法定义TextureTransform Translation 0.0 0.0#exposedField SFVec2f center 0.0 0.0#exposedField SFVec2f rotation 0.0#exposedField SFFloat scale 0.0#exposedField SFVec2f域和域值说明(1)Translation域的域值域的域值 是一个二维浮点向量,它可以重新定义欲贴图片的位置。它指

32、定了新的纹理坐标系的原点和原始纹理坐标系原点在新的纹理坐标系的原点和原始纹理坐标系原点在S(水平水平)和和T(垂直垂直)方向上的距离方向上的距离。该域值的第一个值为S方向的距离,第二个值为T方向的距离,其值既可为正也可为负。该域的默认值为(0.0 0.0)。(2)center域的值域的值 指定了新的纹理坐标系上的一个二维纹理坐标,纹理坐标的旋转和缩放都是围绕该点来进行的。它的功能是定义一个粘贴图片的任意几何中心点,作为旋转或缩放尺寸的中心位置。该域值的默认值为(0.0 0.0)。(3)rotation域的域值域的域值 是一个浮点数。它描述了新的纹理坐标相对原始纹理坐标系的旋转角度,但这只是在平

33、面上旋转,故可理解为以Z轴为旋转轴。其值均为以弧度为单位。该域值的默认值为0.0,表示不旋转。(4)scale域的值域的值 指定了新的纹理坐标系在S(水平)和T(垂直)方向上的缩放系数。该域值的第1个值为S方向的缩放系数,第2个值为T方向的缩放系数。该域值的默认值为(1.0 1.0),表示没有缩放。实例实例5-10 使用纹理坐标变换节点来改变纹理在几使用纹理坐标变换节点来改变纹理在几何对象表面的图像的位置,使其旋转与定位来改变何对象表面的图像的位置,使其旋转与定位来改变图像的尺寸,如图所示图像的尺寸,如图所示实例实例5-11在蓝色背景空间下,运用坐标变换节点、在蓝色背景空间下,运用坐标变换节点

34、、模型节点和模型节点和 使用纹理坐标变换节点来改变纹理在使用纹理坐标变换节点来改变纹理在几何对象表面的图像的位置,使其旋转与定位来改几何对象表面的图像的位置,使其旋转与定位来改变图像的尺寸,如图所示变图像的尺寸,如图所示5.3 视点效果节点视点效果节点什么是什么是VRML中的视点中的视点 就是一个你所浏览的立体空间中预先定义的观察位置和空预先定义的观察位置和空间朝向间朝向,在这个位置上通过这个朝向,浏览者可以观察到虚拟世界中相应的场景。VRML中视点的数目?中视点的数目?在VRML虚拟世界中可以创建多个可以创建多个观测点,以供浏览者选择。但是在一个虚拟空间中,浏览者在任何时候只有一个空间在任何

35、时候只有一个空间观测点可用观测点可用,也就是说不允许同时使用多个观测点,这与人只有一双眼睛的事实是相符合的。视点可以从你控制那个可用的观测点切换切换到另一个视点。从一个视点切换到另一个视点有两种途径:一是跳跃型的,从一个视点切换到另一个视点有两种途径:一是跳跃型的,一是非跳跃型的。一是非跳跃型的。1.跳跃型视点一般用来说明那些在虚拟世界中重要的、有趣的和用户感兴趣的观察点,为用户提供了一种方便快捷的机制,使浏览者不必浏览每一个景点;2.而非跳跃型视点一般用来建立一种从一个坐标系到另一个坐标系的平滑转换,也是一种快速浏览方式。什么是导航?什么是导航?1.导航就是在VRML虚拟世界中使用一个三维的

36、造型作为浏使用一个三维的造型作为浏览者在虚拟世界中的替身览者在虚拟世界中的替身,并可使用替身在虚拟世界中移动、行走或飞行等。2.可以通过该替身来观看虚拟世界,还可以通过替身与虚拟现实的景物和造型进行交流、互动和感知等。5.3.1 Viewpoint视点节点视点节点Viewpoint节点节点说明了一个VRML空间坐标系中的观察位置观察位置指定了这个观察位置在VRML立体空间的三维坐三维坐标、立体空间朝向及视野范围标、立体空间朝向及视野范围等参数该节点既可作为独立的节点,也可作为其他组节点的子节点。Viewpoit视点节点语法定义视点节点语法定义Viewpoint position 0.0 0.0

37、 1.0#exposedField SFVec3f orientation 0.0 0.0 1.0 0.0#exposedField SFRotation fieldOfView 0.785398#exposedField SFFloat description “”#exposedField SFString jump TRUE#field SFBool set_bind#eventIn SFBool isBound#eventOut SFBool bindTime#eventOut SFTime 域名和域值详解域名和域值详解(1)Position 域域 指定了一个三维坐标,用来说明这个Vi

38、ewpoint节点在VRML场景中所创建的空间视点的空间位置。该域值的默认值为(0.0 0.0 1.0),即将视点放在Z轴正方向的距离坐标原点1.0个单位长度的位置上。(2)orientation域的值域的值 指定了一个空间朝向,也就是浏览者在虚拟世界中面对的方向 不是直接给出方向,而是提供了一个观测点的位置绕其旋转的旋转轴,旋转角度指定了绕此轴旋转的数值。VRML中初始化的视点与Z轴负方向对齐,X轴正方向指向右,Y轴正方向指向正上方。orientation域给出的域值是相对初始化的空间朝向的旋转角度。该域值的前3个值说明了一个三维向量,即X,Y和Z分量,最后一个值为弧度度量,说明了旋转角度的

39、正负。该域值的默认值为(0.0 0.0 1.0 0.0),即没有发生旋转。(3)FieldOfView 域域 的域值的域值 定义了观测点视角的大小,用弧度单位表示。大视角产生类似广角镜头的效果,而小视角产生类似远焦镜头的效果。该域值视角范围在0o180o即0.03.141弧度。其默认值为45o,即0.785弧度。(4)jump域的域值域的域值 是一个布尔量,定义了视点是跳跃型还是非跳跃型。如果为TRUE,表示跳跃型的空间视点,浏览器将从某一个观测点转到另一个新的观测点上;如果是FALSE,表示非跳跃型的空间视点,则一直维持在当前的观测点位置上。(5)Description 域的域值域的域值 定

40、义了一个用于描述视点的字符串,也可以称为该视点的名字。人们通过该视点的描述找到自己感兴趣的视点。这些文字描述会出现在空间视点列表中,即浏览器主窗口的左下角。该域值的默认值为空字符。实例实例5-12 在立体空间背景下,使用在立体空间背景下,使用Viewpoint视点视点节点,从两个不同角度来观测高山和公路的立体空节点,从两个不同角度来观测高山和公路的立体空间场景。在浏览器左下角的视觉菜单中选择相应的间场景。在浏览器左下角的视觉菜单中选择相应的“view1和和“view2时,得到两种不同视觉效果,如时,得到两种不同视觉效果,如图图5-19和图和图5-20所示所示vrml 5-12.wrlView1

41、vrml 5-12.wrlView25.3.2 NavigationInfo视点导航信息节点视点导航信息节点NavigationInfo视点导航信息节点视点导航信息节点用来提供有关浏览者如何在VRML虚拟世界里导航的信息,如以移动、行走、飞行等类型进行浏览而且该节点可提供一个虚拟现实的替身(avatar),使用该替身可在虚拟现实世界空间里遨游驰骋。NavigationInfo视点导航信息节点语法结构视点导航信息节点语法结构Group组组节点节点Background背景背景节点节点Viewpoint视点视点节点节点NavigationInfo视点导航信息节点视点导航信息节点Inline内联内联节

42、点节点NavigationInfo视点导航信息节点语法定义视点导航信息节点语法定义NavigationInfo avatarSize 0.25,1.6,0.75#exposedField MFFloat headlight TRUE#exposedField SFBool Type “WALK”,“ANY”#exposedField MFString Speed 1.0#exposedField SFFloat visibilityLimit 0.0#exposedField SFFloat Set_bind#eventIn SFBool isBound#eventIn SFBool 域名和域

43、值详解域名和域值详解(1)avatarSize域的域值域的域值 定义了三维空间中浏览者替身的尺寸。在运行VRML程序时,可以假设三维空间中有一个不可见的浏览者替身,通常利用该替身来进行碰撞检查。avatarSize域值有以下3个参数:width参数 指定替身与其他几何物体发生碰撞的最小距离;height参数 定义了替身距离地面的高度。step height参数 指定替身能够跨越的最大高度,即步幅高度。(2)headlight域域 定义了替身的头顶灯开关的打开或关闭。若该域值为TRUE;表示打开替身的头顶灯;若为FALSE,则关闭替身的头顶灯。替身的头顶灯是由DirectionalLight节点

44、创建,它相当于强度值为1.0的方向(平行)光。(3)type域的域值域的域值 定义了浏览者替身的漫游(浏览)类型,该域值可在ANY、WALK、FLY、EXAMINE、NONE这5种类型中进行转换。其默认值为WAIK。WALK表示观看者以行走方式浏览虚拟世界,替身会受到重力影响。FLY表示观看者以飞行方式浏览虚拟世界,替身不会受到 重力影响,可在虚拟空间飞翔、遨游。EXAMINE方式表示替身不能移动,要改变替身与物体之 间的距离,只能移动物体去靠近或远离它,甚至可以围绕 它旋转。NONE表示不提供替身导航方式。ANY表示浏览器支持以上4种浏览方式。(4)speed域的值域的值 指定了浏览者在虚拟

45、场景中替身行进的速度,单位为每秒多少单位长度(unitss),其默认值为1.0(unitss)。漫游的速度也会受到浏览器设置的影响,大多数浏览器(如Comso1 player)都可以通过浏览器本身的设置来改变漫游速度。当采用EXAMINE导航方式时,speed域不会影响观察旋转的速度。如果type域设置的是none,漫游速度将变为0,浏览者的位置将被固定,但浏览者改变视角将不受影响(5)VisibilityLimit域的值域的值 指定了用户能够观察到的最大距离。该域值必须大于0,其默认值为0.0,表示最远可以观察到无穷远处。如果观察者在最大观察距离之内没有观察到任何对象,则将显示背景图。在构造

46、一个大的三维立体空间场景时,其运算量是很大的,如虚拟城市,当远景看不到或可忽略时,就可以利用VisibilityLimit域来定义用户能够观察到的最大距离。5.4 光照效果节点光照效果节点光源分为光源分为自然界光源自然界光源和和人造光源人造光源。人类能看到自然界的万物,主要是由于光线的作用人类能看到自然界的万物,主要是由于光线的作用光线的产生需要用光源。在自然界和人造光源中,光线的产生需要用光源。在自然界和人造光源中,光源又分为光源又分为点光源、锥光源点光源、锥光源和和平行光源平行光源3种。种。VRML对现实世界中光源的模拟实质上是一种对光对现实世界中光源的模拟实质上是一种对光影的计算。影的计

47、算。现实世界的光源是指各种能发光的物体现实世界的光源是指各种能发光的物体,但是在,但是在VRML世界中,我们看不到这样的光源。世界中,我们看不到这样的光源。VRML是通过是通过对物体表面明暗分布的计算对物体表面明暗分布的计算,使物体,使物体同环境产生明暗对比,这样物体看起来就像是在发同环境产生明暗对比,这样物体看起来就像是在发光。光。光源的另一个区别在于光源的另一个区别在于阴影阴影。在在VRML的光源系统的光源系统中中不会自动产生阴影不会自动产生阴影,如果要对静态物体做阴影渲,如果要对静态物体做阴影渲染,必须先人工计算出阴影的范围,再模拟阴影。染,必须先人工计算出阴影的范围,再模拟阴影。1.光

48、源是由不同的颜色组成的,光源颜色由一个光源是由不同的颜色组成的,光源颜色由一个RGB颜色控制,颜色控制,与材料设置的颜色相似。与材料设置的颜色相似。光源发出的光线的颜色跟光源的颜光源发出的光线的颜色跟光源的颜色相同色相同,比如一个红色的光源发出的光线是红色的。,比如一个红色的光源发出的光线是红色的。2.在现实中,一个白色的光源照射到一个有色的物体表面,将在现实中,一个白色的光源照射到一个有色的物体表面,将发生两种现象,而人类所能看到的只是其中的发生两种现象,而人类所能看到的只是其中的反射反射现象,另现象,另一种现象就是一种现象就是吸收吸收光线,它导致光强度的衰减。光线,它导致光强度的衰减。3.

49、反射光是红色的。这是因为白色的光线由多种颜色的光组成,反射光是红色的。这是因为白色的光线由多种颜色的光组成,物体吸收了其中除红色外的所有光线,红色则被反射。但是物体吸收了其中除红色外的所有光线,红色则被反射。但是如果物体表面是黑色的,它将不反射任何光线。如果物体表面是黑色的,它将不反射任何光线。在在VRML中,可使用中,可使用Material、Color和纹理节点和纹理节点设置造型的颜色。设置造型的颜色。来自顶灯的白光线射到有色造型上时,每个造型将反射光中的某些来自顶灯的白光线射到有色造型上时,每个造型将反射光中的某些颜色,这一点跟现实生活中一样。顶灯是一个白色的光源,不能设颜色,这一点跟现实

50、生活中一样。顶灯是一个白色的光源,不能设置颜色。一个有色光源照射到一个有色的造型上时,情况比较复杂置颜色。一个有色光源照射到一个有色的造型上时,情况比较复杂,例如一个蓝色物体只能反射蓝色的光线,而一束红色的光线中又,例如一个蓝色物体只能反射蓝色的光线,而一束红色的光线中又含有蓝色的成分,当一束含有蓝色的成分,当一束红色的光线照射到一个蓝色的造型红色的光线照射到一个蓝色的造型上时,上时,由于没有蓝色光线可以反射,它将显示黑色。由于没有蓝色光线可以反射,它将显示黑色。现实中现实中物体表面的亮度物体表面的亮度由直接照射它的由直接照射它的光源的强度光源的强度和环境中各种物和环境中各种物体所体所反射的光

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(虚拟现实技术教学课件第五章.ppt)为本站会员(ziliao2023)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|