虚拟现实基础与VRML编程授课教师:赵应丁E-Mail:zhaoyingding@163.com江西农业大学计算机与信息工程学院2020/3/14江西农业大学计算机与信息工程学院第1页第九讲VRML空间效果、视点与导航1.虚拟空间背景2.虚拟大气效果3.视点控制4.导航控制2020/3/14江西农业大学计算机与信息工程学院第2页1.虚拟空间背景VRML的虚拟空间背景分为天空背景和地面背景两部分,两部分以地平线分隔;而地平线则位于VRML空间垂直方向上由原始VRML空间坐标系XOZ平面向无穷远处延伸后与空间背景的相接处;XOZ平面以上的部分定义为天空背景,XOZ平面以下的部分定义为地面背景。2020/3/14江西农业大学计算机与信息工程学院第3页1.虚拟空间背景(续)Background节点Background节点是可以任意编组节点的字节点,它在当前坐标系中构造空间背景。使用Background节点所生成的VRML空间背景可以带给用户相当程度的立体层次感。2020/3/14江西农业大学计算机与信息工程学院第4页1.虚拟空间背景(续)Background节点语法格式如下:Background{skyColor[]skyAngle[0.00.00.0]groundAngle[]groundColor[0.00.00.0]frontUrl[]backUrl[]leftUrl[]rightUrl[]topUrl[]bottomUrl[]set_bindisBound}2020/3/14江西农业大学计算机与信息工程学院第5页1.虚拟空间背景(续)frontUrl、backUrl、leftUrl、rightUrl、topUrl和bottomUrl6个域用于为VRML虚拟空间分别添加前、后、左、右、上和下背景图像,以生成空间立体全景图像背景,该背景在一个无限大的立体内进行渲染。Set_bind入事件与isBound出事件用于进行VRML空间背景切换。2020/3/14江西农业大学计算机与信息工程学院第6页1.虚拟空间背景(续)例1.改变空间背景色例2.Background节点应用例3.图像背景2020/3/14江西农业大学计算机与信息工程学院第7页2.虚拟大气效果VRML致力于真实地反映客观世界,场景的雾化即为具体体现。Fog节点语法格式如下:Fog{color1.01.01.0fogType“Linear”visibilityRange0.0set_bindisBound}2020/3/14江西农业大学计算机与信息工程学院第8页2.虚拟大气效果(续)fogType域的域值设置雾的渲染类型,其缺省值为Linear,此时雾的浓度随观察距离的增加而线性增加;EXPONENTIAL,则雾的浓度将随观察距离的增加而指数增大。visibilityRange域的域值设置浏览器在雾中可见度的最大范围。2020/3/14江西农业大学计算机与信息工程学院第9页2.虚拟大气效果(续)例3:雾化测试效果。例4:雾的颜色测试。2020/3/14江西农业大学计算机与信息工程学院第10页3.VRML视点控制VRML视点控制使用Viewpoint节点使用。Viewpoint节点用来设置浏览者在VRML虚拟空间中的观察位置,空间朝向以及视野范围等参数。Viewpoint节点语法格式如下:Viewpoint{position0.00.01.0orientation0.00.01.00.0fieldOfView0.785398jumpTRUEdescription“”set_bindisBoundbindTime}2020/3/14江西农业大学计算机与信息工程学院第11页3.VRML视点控制(续)(1)position域的域值用于设置视点在VRML场景中的空间位置,由一个X、Y、Z的三维坐标确定。(2)orientation域的域值用于设置视点在VRML场景中的空间朝向。(3)fieldOfView域的域值设置视点中视角的大小,以弧度为计量单位。Jump域的域值设置视点是跳跃或非跳跃型视点。Description域的域值设置一个用于描述所定义视点的字符串,也即该视点的名字。2020/3/14江西农业大学计算机与信息工程学院第12页3.VRML视点控制(续)例1.VRML视点控制例2.变换视点的视线方向2020/3/14江西农业大学计算机与信息工程学院第13页4.导航控制虚拟场景中,NavigationInfo导航信息节点用来提供浏览者化身以及该化身如何使用当前视点进行系统导航。NavigationInfo节点语法格式如下:NavigationInfo{headLightTRUEtype[“WALK”“ANY”]speed1.0visibilityLimit0.0avatarSize[0.251.60.75]set_bindisBound}2020/3/14江西农业大学计算机与信息工程学院第14页4.导航控制(续)headLight域的域值设置VRML场景中系统缺省使用的化身头灯。Type域的域值设置浏览者化身的导航类型。Speed域的域值设置浏览者化身在场景中的漫游速度,单位是VRML单位/秒。VisibilityLimit域的域值设置浏览者化身的最大观察距离。avatarSize域的域值设置浏览者化身使用的一些体格参数。2020/3/14江西农业大学计算机与信息工程学院第15页4.导航控制(续)例1.type域值的不同作用例2.speed漫游速度例3.visibilityLimit最大观察距离Thanks!