1、成都理工大学虚拟现实目录第一章 虚拟现实概念21.1虚拟环境21.2特点21.3三个I21.4虚拟现实系统的主要应用领域21.5接口21.6视觉21.7VR建模21.8仿真21.9虚拟现实开发系统的方块图21.10视觉21.11听觉21.12身体感觉21.13飞行仿真2第二章 虚拟现实的接口设备22.1位姿传感器的要求22.2位姿跟踪和映射的基本传感系统32.3视觉接口32.4听觉接口32.5接触接口3第三章3第四章 VRML34.1VRML34.2VRML文件44.3原型44.4物体的造型44.5脚本44.6路由44.7事件体系44.8VRML文件语法44.9VRML文件44.10表示多域值
2、的方法44.11定义节点44.12节点名的使用有如下规定44.13事件的命名规则44.14路由在绑定节点时的注意事项44.15各种节点44.16Shape节点54.17Material节点属性语法54.18shape实例54.19ElevationGrid海拔栅格节点64.20挤出造型节点64.21群节点74.22Transform74.221对立方体进行旋转74.23飞碟造型74.24哑铃的造型84.25Group:路灯造型84.26Inline内联节点94.27在公路模型中调用路灯94.28Switch开关节点94.29Billboard广告、警示牌、海报节点94.30Anchor锚节点即
3、超级链接群节点94.31LOD细节层次节点9第五章VRML场景效果节点编程设计95.1Fog雾化节点95.2纹理效果节点95.3ImageTexture图像纹理节点105.4PixelTexture节点105.5MovieTexture 影像纹理节点105.6TextureCoordinate纹理坐标节点105.7TextureTransform纹理变换节点105.8视点效果节点115.9导航115.10Viewpoint节点115.11NavigationInfo视点导航信息节点115.12光源115.13PointLight点光源节点115.14DirectionalLight定向光源节点
4、115.15SpotLight聚光灯光源节点115.16音响效果节点125.17Sound125.18MovieTexture节点12第六章动态感知虚拟现实节点136.1TimeSenor时间传感器节点136.2插补器节点136.3PositionInterpolator位置插补器节点136.4飞碟由小变大136.50rientationInterpolator朝向插补器节点146.6ScalarInterpolator标量插补器节点146.7ColorInterpolator颜色插补器节点146.8CoordinateInterpolator坐标插补器节点146.9NormalInterpo
5、lator 法线插补器节点156.10TouchSensor触摸传感器节点166.11PlaneSensor平面检测器节点166.12CylinderSensor圆柱检测器节点166.13SphereSensor球面检测器节点176.14VisibilitySensor能见度传感器节点176.15ProximitySensor亲近度传感器节点176.16Collision碰撞传感器节点18第七章 VRML通用接口节点187.1Script187.2VrmlScript197.3新节点207.4外部定义的新节点217.5Anchor实现直接上网217.6超文本标记语言21虚拟现实复习资料第一章
6、虚拟现实概念1.1虚拟环境:“进入”这个虚拟的环境中,是指用户以自然的方式与这个环境交互(是指用户通过视觉,听觉,触觉等感觉虚拟环境,通过在真实环境中的行为,去干预虚拟环境。产生置身于相应的真实环境中的虚幻感,沉浸感,身临其境的感觉);虚拟现实或虚拟环境系统(真实环境的仿真、完全虚拟的人造环境)包括人类操作者、人机接口和计算机(遥机器人);增强现实( Augmented Reality )系统组合了虚拟环境和真实环境;合成环境( Synthetic Environment )系统是遥操作系统、虚拟环境系统、增强现实系统等的总称。1.2特点:人机接口(至今为止人机接口都是面向机器的,虚拟现实中的
7、人机接口则是面向用户)的内容,计算机提供“环境”, 不是“数据,、信息”;人机接口的形式,操作者由视觉、听觉、力觉感知环境, 由自然的动作操作环境;人机接口的效果,逼真的感知和自然的动作,使人产生身临其境的感觉。 1.3三个I:Immersion(沉浸),Interaction(交互),Imagination(想象)。 1.4虚拟现实系统的主要应用领域是1.娱乐2国防3设计、制造和销售4医疗和健康5危险操作6训练7教育8信息可视化9远程交往与远程游历。虚拟现实系统的三个主要技术领域是1VR的人机接口2VR的计算机系统3VR的建模和仿真。 1.5接口:视觉通道(目前的主要通道。像素应该足够小、频
8、率应该足够高、双目视差、足够大的视场;基于CRT和LCD的头盔显示(HMD)和非头盔)、听觉通道(立体声场、声音类型和强度、能判定声源位置)、触觉通道(触觉反馈、力觉反馈)、运动接口(被动运动和主动运动)和其他接口(嗅觉、味觉、热、风及湿度、语音通讯(语音识别与合成)以及直接心理感觉和控制)。 1.6视觉:硬件要求维持足够的图形帧速率和足够好质量的图像;VR系统中的软件包括交互,视觉漫游,建模,操作系统支持VE的实时多模态要求;网络要求分布式交互仿真。 1.7VR建模:包括几何建模和物理建模(基于物理方程的建模,刚体建模和智能体建模)。 1.8仿真:包括图形绘制和三维动画。图形绘制要求:为了提
9、供连续运动的错觉,帧速率必须大于每秒8到10帧;为了保持瞬间交互控制的错觉,响应时间延迟必须小于0.1秒;为了绘制人眼可分辨的所有细节,要求有8千万个多边形;存在真实图像与实时交互的折衷。三维图形可以用两种途径实现:基于物理模型的数值计算和数学插值。1.9虚拟现实开发系统的方块图:1.10视觉:光感受器:视网膜周围(少量视锥细胞)的视杆细胞(rods)负责低分辨率的、单色的、夜间的视觉、敏感运动物体(周围视觉)。视网膜中央的高密度视锥细胞(cones)负责高分辨率的、彩色的、白天的视觉(中央视觉)。花费25ms把光转成电信号。左视区的信息,送到两眼视网膜的右侧。在视交叉处,左眼的一半神经纤维交
10、叉到大脑的右半球,左眼的另一半神经纤维不交叉,直接到大脑的左半球。这样,两眼得到的左视区的所有信息,都送到右半球。6.5cm的瞳距,人眼的聚焦能力约60屈光度,这表明聚焦平行光在17mm距离,这就是眼球尺寸,是晶状体和视网膜的距离。分辨力是人眼区分两个点的能力,限于10m距离上约1.5-2mm。视杆细胞得到约0.25s 的峰,视锥细胞快4倍,得到约0.04s的峰,这种现象造成视觉暂留。 视觉交叉的结果是,脑左半球处理两眼得到的右视区的所有信息。人眼的屈光度是:眼球的焦距是人眼的聚焦能力约60屈光度,这表明聚焦平行光在17mm距离。人眼八因素:视觉生理结构、立体视觉、屈光度、瞳孔、分辨力、明暗适
11、应、周围视觉和中央视觉、视觉暂留、视场。现有的VR系统中,已经考虑的因素包括:立体视觉,分辨力,视觉暂留,以及视场。 1.11听觉:由声源到耳内部的传递函数称为头部有关的传递函数 (HRTF),反映头和耳对传声的影响,不同的人有不同的HRTF。测量方法:对空间每个位置的声源,安放在耳中接近耳膜的小麦克风测量收到的信号。信号经过处理,补偿非线性频率响应。现有VR系统,已经考虑的因素有声音方向,声音舞台,HRTF。 1.12身体感觉:粗糙、振动、运动、位置、压力、疼痛和温度,现有的VR系统中,已经考虑了触觉和力觉显示。可分四类:深部感觉、内脏感觉、本体感觉、外感受感觉。 1.13飞行仿真:中,发生
12、眩晕的原因是视觉接收人体运动感觉,前庭器官不感觉人体运动第二章 虚拟现实的接口设备2.1位姿传感器的要求:3-D空间中的运动的刚体具有三个平移(沿着X、Y和Z轴)和三个转动(偏航、俯仰和滚动);在物体以高速运动时,应该足够快地测出这六个数值;传感器在3-D测量时不应妨碍物体运动;3-D传感器都具有一些共同的参数(采样率,执行时间,传感器精度,分辨率);人体各部分之间的相对运动也应该测量。2.2位姿跟踪和映射的基本传感系统:1.机械链接(安在地面上和人体上。便宜,比较精确,可测量整个身体运动,没有延迟,可以同时实现力反馈,妨碍身体运动。跟踪球、3-D探头、传感手套等);2.磁传感器(电磁传感器包
13、括发射器、接受器、接口、计算机。优缺点:没有遮挡问题,价格低,精度适中,采样率高,工作范围大;因磁场变形引起误差,适中的精度和大的等待时间(2030ms));3.光传感器(应用于计算机动画,虚拟环境);4.声传感器(优缺点:不受电磁干扰和临近物体影响,轻便的接受器易于安装在头盔上;工作范围有限,不能受遮挡,温度、气压、湿度的影响,环境反射声波的影响,飞行时间法有低的采样率和低的分辨率,相位差法每步的测量误差会随时间积累);5.惯性传感器(优缺点:不存在发射源,所以不受干扰不怕遮挡,物体运动不受约束,大的工作空间,低的延迟时间;漂移随时间积累,重力场使输出失真,测量的非线性,角速度计敏感震动,难
14、以测量慢速的位置变化,重复性差)。;6.混合传感器是由惯性传感器和其他传感器组成,以解决惯性传感器的漂移问题(漂移产生的根本原因在于所有的压力传感器均基于一种材料的弹性形变,不论其材质弹性如何良好,每次弹性回复后,总会产生一定弹性疲劳;温度漂移是因为温度的变化而引起的压力传感器输出的变化,这种漂移也是因为材料的多重特性决定的;变送器漂移的因素还取决于电路的设计及元器件的质量)。混合传感器总是利用一个传感器的优点,去克服另一传感器的缺点。典型的混合传感器由超声和惯性传感器组成。优缺点:改进更新率、分辨率、及抗干扰性(由超声补偿惯性的漂移),可以预测未来运动达50ms,快速响应(更新率150Hz,
15、延迟极小),无失真(无电磁干扰);工作空间受限制,要求视线不受遮挡,受到温度、气压、湿度影响,6D的跟踪要求3个超声接受器。 2.3视觉接口:视觉接口包括四个基本部分:(1)视觉显示表面和辅助光学系统 (2)产生光学信号的系统 (3)感觉头或眼球位置运动的系统 (4)使视觉显示表面相对于人眼定位的系统。LCD:以低电压产生彩色图像,但只具有很低的图像元密度;VRD:基于激光微扫描技术的显示VRD,它用微型固体激光器扫描视网膜上的彩色图像(象素流直接投影到视网膜,VRD使得弱视的人能看到图像);全息图是一种三维图像,全息图则包含了被记录物体的尺寸、形状、亮度和对比度等信息,三维干涉模式;显示系统
16、中显示的图像有两种情况:直接联系到用户头部运动或间接联系头部运动;立体投影的四种方法:主动式系统、有单台投影机的被动式系统、有两台投影机的被动式系统、有两台LCD式投影机的被动式系统;多面显示系统中,同时在三面四面五面或六面墙面上显示,图像可以充满整个视场,增加沉浸感。 2.4听觉接口:声源产生和空间合成是声音显示集成系统中功能分离的部件。通常用两种方法找到第二声源:镜面图像法和射线跟踪法。 2.5接触接口:提供给用户的信息分成两类:接触反馈和力反馈;接触接口还可以分成:部分身体运动接口和全身运动接口。特殊要求:安全性(故障安全)、反馈执行机械的类型(液压和气动执行机械)、轻便和用户的舒适。采
17、用技术:软件和模型、心理物理学、作用器。 力触觉反馈的作用器类型:形状记忆合金(SMA),压电晶体,压电马达,声音线圈,螺线管,热泵,电磁马达,磁至伸缩材料,以及传感器。第三章1.局域网技术方面介绍了:Ethernet (以太网),FDDI(光纤分布数据接口 100Mbit/s),高性能并行接口(HPPI),“光纤通道”,以及ATM。网络结构方面介绍了四类:无服务器系统(广播方式和多发射方式),集中化系统,多服务器系统,并列的多服务器系统。 2.软件质量方面介绍了:功能(Functionality),可靠性(Reliability),可用性(Usability),效率(Efficiency),
18、可维护性(Maintainability),轻便性(Portability)。然后,介绍6种分布式虚拟现实的工具软件:DIVE,MASSIVE,Bamboo,DoD High Level Architecture (HLA),Networked Virtual Environments,Open Community and Schmoozer。 3.最后介绍了分布式仿真系统的三个领域:在军事上有美国国防部(Department of Defense, DoD)的系统SIMNET 和DIS;在游戏上有SGI的Flight & Dogfight 和Doom;在学术上有NPSNET, Paradis
19、e, DIVE,和BrickNet。 4.计算机体系结构包括:VR用计算机的技术要求;基于PC的虚拟现实机器的组成结构;基于工作站的虚拟现实机器的组成结构;高度并行的虚拟现实机器的组成结构。 5.软件系统包括:虚拟现实工具软件的要求;虚拟现实工具软件各模块的功能;虚拟现实常用工具软件的对比。 6.网络和通讯包括:广域网和局域网的发展现状,不同网络结构的对比,分布式虚拟现实工具软件的质量问题,几种分布式虚拟现实工具软件的现状,虚拟现实分布式仿真的特点。第四章 VRML4.1VRML:虚拟现实三维立体网络程序设计语言VRML(虚拟现实建模语言一种解释性语言),是一种三维造型和渲染的图形描述语言,主
20、要特征有三维性、交互性、动态性、实时性等。把“虚拟世界”看作一个“场景”,而场景中的一切都被看作“对象” (也称为节点),对每一个对象的描述就构成了.wrl文件。VRML的特点:平台无关性;网络传输高速性 ;实时性 ;可扩充性;可建模性。 4.2VRML文件主要由节点、事件、场景、原型、脚本及路由等组成,其中节点又由域名、域值及域值类型组成;节点是VRML文件最基本的组成要素,是VRML文件基本的组成部分;节点是对客观世界中各种事物、对象、概念的抽象描述;VRML文件就是由许多节点之间并列或层层嵌套而构成的。每一个节点一般都有两种事件, 即一个“入事件”(请求节点改变自己某个域的值)和一个 “
21、出事件”(请求别的节点改变它的某个域值)。 4.3原型是用户建立的一种新的节点类型,而不是一种“节点”,是节点对其中的域、入事件和出事件的声明,可以通过原型扩充VRML节点类型集。 4.4物体的造型,即场景图,由描述对象及其属性的节点组成,在场景图中,一类是由节点构成的层次体系组成;另一类是由节点事件和路由构成。 4.5脚本是一套程序,与其他高级语言或数据库的接口,在VRML中可以用Script节点利用Java或JavaScript语言编写的程序脚本来扩充VRML的功能,通常作为一个事件级联的一部分而执行,脚本可以接受事件,处理事件中的信息,还可以产生基于处理结果的输出事件。 4.6路由是产生
22、事件和接受事件的节点之间的连接通道,路由不是节点,路由说明是为了确立被指定的域的事件之间的路径而人为设定的框架。作用是将各个不同的节点联系在一起,使虚拟空间具有更好的交互性、立体感、动感性和灵活性。 4.7事件体系由相互通信的节点组成,路由(ROUTE)语句把事件出口和事件入口联系起来,从而构成了“事件体系”。VRML要创建立体背景空间和立体造型空间就需要:定位(用立体空间坐标系来实现)、需要立体空间坐标系(X轴的正方向指向右边,Y轴的正方向指向正上方,Z轴的正方向指向前方,即浏览者)、相应的长度(VRML单位并不是一个绝对的尺寸大小,一般比实际的长度单位要小)、角度单位(弧度)、颜色(RGB
23、,3种基本颜色对应3个浮点数,0.01.0)。4.8VRML文件语法主要包括VRML文件头(#VRML V2.0 utf8)、节点、原型、造型、脚本和路由等,只有VRML文件头是必需的。之间关系,VRML立体空间的场景和造型是由节点构成的,再通过路由实现动态交互和感知,或者使用脚本文件与外部接口进行动态交互,在VRML文件中,“节点”是VRML核心、灵魂,如果没有节点,VRML也就不存在了。如右图4.9VRML文件扩展名为.wrl或.wrz,VRML文件的注释部分以一个符号“#”开头,VRML不支持多行注释信息。每个节点包含子节点和描述节点属性的“域名”或“域值”。在节点作用域的范围内,域名是
24、惟一的,“域”分为两种:一种为“域”(field);另一种称为“暴露域”(expose Field)。在同一“节点”中的域遵循如下规则:同一节点中的各个域之间无先后次序之分;节点中的各个域均有自己相应的默认值;不同的域对应不同的域值类型。 4.10表示多域值的方法是:整个用方括号括起来的一系列用逗号和空格间隔开的单值;如果一个多值域不包含任何值,则只标出方括号“”;如果一个多值域,恰好只包含一个数,可以不写括号,直接写该值。例如skycolor 0.2 1.0 1.0。4.11定义节点名称:DEF 节点名 节点类型 例如:DEF Btexi Appearance 引用节点:USE 节点名 例如
25、:USE Btexi4.12节点名的使用有如下规定:不区分大小写、不能以数字开头、不能带有非印刷的ASCII字符、不能包括单引号、双引号、数字运算符或英镑符号。 4.13事件的命名规则:大部分入事件以set_开头,但是addCildren和removeChildren除外;大部分出事件以_changed结尾,SFBool类型的除外,它以is开头,例如isActive;如果入事件和出事件的形式为SFTime,那就不再使用set 或者changed,例如bindTime和touchTime。4.14路由在绑定节点时的注意事项:两个节点的路由在没有被触发之前一直都处于休眠状态,被触发后事件从输出接口
26、的节点输出,通过路由传送到输入接口节点,引发VR的某种变化;入事件和出事件同样具有自己的数值类型;绑定多个节点,创建复杂的路线,实现更真实的交互。4.15各种节点: Shape模型节点 【几何节点:Box 盒子节点;Cone 圆锥节点;Sphere 球体节点;Cylinder 圆柱体节点;Text 文本节点; 绘图节点:PointSet “点”节点;IndexedLineSet “线”节点;IndexedFaceSet “面”节点;ElvationGrid 海拔栅格节点;Extrusion 挤出造型节点; 物体外观节点:Appearance外观属性节点;Material 材料节点。】 纹理映射
27、节点 【ImageTexture 图像纹理节点;MovieTexture 影像纹理节点;TextureTransform 纹理变换节点】 群节点 【Group 编组节点,是基本型群节点;Transform 坐标变换节点,死转换型群节点;Inline 内联节点,是引入型群节点;Switch 开关节点,是选择型群节点;Billboard 广告牌节点,是广告牌群节点;Anchor 锚节点,是超级链接群节点;LOD 细节层次节点,是分级型群节点;】 环境、影音与视点导航效果节点 【Background 背景节点,是天空、大地及室内布景;Fog 雾节点,是空间大气场景的一种自然现象的描绘;PointLi
28、ght 点光源节点;DirectionLight 定向光源节点;SpotLight 聚光灯光源节点;Sound 声音节点,是声音发射器节点;AudioClip 音响剪辑节点;ViewPoint 视点节点,是决定观看点的节点;NavigationInfor 视点导航信息节点,是控制浏览者功能的节点】 规范化接口节点 【WorldInfor 场景信息节点,是信息化的节点;Script 脚本节点,是程序化的节点】 动态交互感知节点 【TimeSensor 时间检测器节点,是控制时间的检测器节点;PositionInterpolator 位置插补器节点,是控制位置变换的动态节点;Orientation
29、Interpolator 朝向插补器节点,是控制方位变换的动态节点;ScalarInterpolataor 标量插补器节点,是控制变换强度的动态节点;ColorInterplator 颜色插补器节点,是控制颜色变换的动态节点;CoordinataeInterPolatoar 坐标插补器节点,是控制坐标变换的动态节点;NormalInterPolator 法线插补器节点,是控制向量变换的动态节点;Touch Sensor 触摸节点;PlaneSensor 平面检测器节点,是平面移动型传感器节点;CylinderSensor 圆柱检测器节点,是单轴旋转型传感器节点;SphereSensor 球面检
30、测器节点,是任意轴旋转型传感器节点;VisibilitySensor 节点,是能见度传感器节点;ProximtitySensor 节点,是亲进度传感器节点;Collision 碰撞节】 创建新的VRML节点 【PROTO 原型节点,是创建用户新节点;EXTERNPROTO 创建用户外部定义的新节点】室内空间背景设置包括六面体:frontUrl前面、backUrl后面、leftUrl左面、rightUrl右面,topUrl顶部和bottomUrl底部。 skyAngle域的值指定了空间背景上需要着色的位置的空间角(用弧度),使天空角之间的颜色慢慢过渡,形成颜色梯度。groundAngle域的值指
31、定地面背景上需要着色的位置的空间角(用弧度),该域值中地面角必须以升序的方式排列,默认值为空。可以在VRML中使用的背景图像只能是JPEG、GIF和PNG格式文件。set_bind入事件(eventIn)和isBound出事件(eventOut)用来实现VRML文件的各种背景切换。域值类型注释:exposedField为“暴露域”;eventIn为入事件;eventOut为出事件;MFFloat域是多值单精度浮点数;MFColor域是一个多值域,包含任意数量的RGB颜色值;MFString域是一个含有零个或多个字符的多值域;SFBool域是一个单值布尔量。4.16Shape节点定义一个造型所具
32、有的几何尺寸、材料、纹理和外观特性;所有VR空间里的造型均有Shape节点创建;注意区分域名、节点名的大小写。Shape节点包括了外观和几何结构两个域。Shape appearance NULL #SFNode material NULL #SFNode,材料属性 texture NULL # SFNode,纹理映像 texture Transform NULL #SFNode,二位纹理坐标变换 geometry NULL #SFNode 4.17Material节点属性语法Material ambientIntensity 0.2 #SFFloat diffuseColor 0.8 0.8
33、0.8 #SFColor emissiveColor 0.0 0.0 0.0 #SFColor shininess 0.2 #SFFloat specularColor 0.0 0.0 0.0 #SFColor transparency 0.0 #SFFloat ambientIntensity 有多少环境光被该表面反射,依赖于光源的数目,0.2的默认值表示对材料产生较低的环境光线果diffuseColor 材料的漫反射颜色,表面越接近垂直光性,被反射的漫反射光性越多。默认值(0.8 0.8 0.8)表示中强度的白光 emissiveColor发光物体产生的光的颜色,默认值(0.0,0.0,0
34、.0)表示不发光;shininess 造型外观材料的亮光,取值从漫反射表面的0到高度抛光的1,默认值为0.2,表示适当的亮度;specularColor 物体镜面反射光线的颜色,默认值(0.0,0.0,0.0) 表示镜面不反射; transparency 物体的透明度,默认值0表示不透明 上图表示空间物体外观颜色的RGB4.18shape实例(球体,半径为1.0个VRML单位):box为“geometry boxsize 1.0 1.0 1.0 ”;圆锥为“geometry Cone bottomradium 1.0 # SFFloat height 2.0 #SFFloat side TRU
35、E # FBool有边 bottom TRUE # SFBool有底 ”;柱体为“Cylinder radium 1.0 # SFFloat height 2.0 # SFFloat side TRUE # SFBool有边 top TRUE # SFBool有顶 bottom TRUE # SFBool有底 ”;文本为“geometry Textstring “文本”,“文本” # MFString不同行用逗号分开 length 6.0 # MFFloat行的长度 maxExtent 10.0 # SFFloat最大有效长度 fontStyle NULL #SFNode定义文本造型的外观特征
36、 FontStyle family “SERIF” #SFString字体 style “PLAIN” #SFString不加粗或倾斜 size 1.0 #SFFloat字号 spacing 1.0 #SFFloat间距 justify “BEGIN” #SFString对齐方式 horizontal TRUE #SFBool排列方式 leftToRight TRUE #SFBool水平摆放 topToBottom TRUE #SFBool垂直摆放 language “ ” #SFString语言 ) ”; 点“PointSetcolor NULL #SFNode点着色 coord NULL
37、#SFNode ”,Color节点和Material节点同时对同一造型进行着色时,Color节点享有优先权,color域的值用来指定造型的颜色列表,其颜色列表中第一种颜色用来给第一个点着色,第二种颜色用来给第二个点着色,依次类推,颜色列表中的颜色数至少应该和坐标列表中的坐标数相等。该域值的默认值为NULL。线: 面:右为八面体 ,solid为TRUE时,表示只创建正面 4.19ElevationGrid海拔栅格节点:ElevationGrid xDimension 0 #域值类型SFInt32,X方向栅格点的数量 xSpacing 0.0 #域值类型SFFloat,栅格中行和列间的距离 zDi
38、mension 0 #域值类型SFInt32栅格点数量 zSpacing 0.0 #域值类型SFFloat height #域值类型MFFloat,Y方向上计算的海拔。该域值中的一个值对应一个栅格点 color NULL #域值类型SFNode colorPerVertex TRUE #域值类型SFBool normal NULL #域值类型SFNode normalPerVertex TRUE #域值类型SFBool texCoord NULL #域值类型SFNode ccw TRUE #域值类型SFBool,TRUE表示栅格创建的表面是按逆时针方向索引 solid TRUE #域值类型SF
39、Bool,TRUE时,表示只创建正面 creaseAngle 0.0 #域值类型SFFloat,弧度表示折痕角,=0.0,较小则平滑 set_height #输出接口MFFloat 山体如左图 4.20挤出造型节点Extrusion crossSection 1.0 1.0, 1.0 1.0, -1.0 1.0,-1.0 1.0, 1.0 1.0 #域值类型MFVec2f,二维坐标,定义了沿着X和Z挤出过程的脊线进行挤出的一个封闭或开放的断面图形 spine 0.0 0.0 0.0,0.0 1.0 0.0 #域值类型MFVec3f,三维坐标定义了一个封闭或开放的轨迹,造型是沿着这条轨迹被拉动的
40、,从而创建了挤出过程 scale 1.0 1.0 #域值类型MFVec2f挤出孔的比例因数对 orientation 0.0 0.0 1.0 0.0 #域值类型MFRotation beginCap TRUE #域值类型SFBool endCap TRUE #域值类型SFBool ccw TRUE #域值类型SFBool solid TRUE #域值类型SFBool convex TRUE #域值类型SFBool creaseAngle 0.0 #域值类型SFFloat set_spine #输入接口MFVec3f set_crossSection #输入接口MFVec2f set_scale
41、 #输入接口MFVec2f set_orientation #输入接口MFRotation 简单挤出造型如右 另,复杂图形如下:4.21群节点:4.22Transform节点可以在VRML场景中创建多个坐标系,而这些坐标系可随意平移、旋转和缩放。Transform children #SFNode,指定了多个群节点和子节点 translation 0.0 0.0 0.0 #SFVec3f,指定了在父坐标系的原点和新坐标系的原点之间x、Y、Z方向上的距离。rotation 0.0 0.0 1.0 0.0 #SFRotation,指定了一个旋转轴和旋转角度 scale 1.0 1.0 1.0 #S
42、FVec3f,指定了新坐标系在X、Y、Z方向上的缩放系数scaleOrientation 0.0 0.0 1.0 0.0 # exposedField SFRotationbboxCenter 0.0 0.0 0.0 # field SFVec3fbboxSize -1.0 -1.0 -1.0 # field SFVec3fcenter 0.0 0.0 0.0 # exposedField SFVec3faddChildren #eventIn MFNoderemoveChildren #eventIn MFNode 4.221对立方体进行旋转 : 结束4.23飞碟造型 结束4.24哑铃的造型
43、:结束4.25Group:路灯造型: 结束4.26Inline内联节点可以使VRML程序设计模块化。Inline url “” #exposedField MFString,输入所要嵌入的VRML文件的路径和文件名 bboxCenter 0 0 0 #field SFVec3f,定义一个几何中心的位置 bboxSize -1 1 1 #field SFVec3f 4.27在公路模型中调用路灯: 结束4.28Switch开关节点,Switch choice #exposedField MFNode,包含了Switch开关节点的所有子节点whichChoice -1 #exposedField S
44、FInt32,定义了该域值是选择要执行choice域中的哪个子节点 4.29Billboard广告、警示牌、海报节点:可以在全域坐标系之下创建一个新的坐标系,选定一个旋转轴后,这个节点下的子节点所构成的虚拟对象的正面会永远自动地面对观众, 4.30Anchor锚节点即超级链接群节点,它的作用是链接VRML三维立体空间中各个不同场景,它是VRML的外部接口,实现与HTML网页之间的调用及与3D之间的调用等, 4.31LOD细节层次节点,即分级型群节点,是通过空间距离的远近来展现空间造型的各个细节,要平衡浏览器速度和造型的真实性两者之间的关系。第五章VRML场景效果节点编程设计5.1Fog雾化节点
45、可以实现空间大气效果(雾,雾的浓度效果,雾的颜色等),Fog Color 0.0 0.0 0.0 #MFColor,雾的颜色 fogType “LINEAR” #SFString,雾的类型 visibilityRange 0.0 #MFFloat,浏览者在当前VRML场景中的可见度 set_bind #输入接口SFBool bind_changed #输出接口 SFBool 如右图5.2纹理效果节点,纹理是一种位图,即二维图像,支持的纹理图像格式有JPEG、GIF、PNG及MPEG等,VRML提供有3种纹理节点,即ImageTexture图像纹理节点;PixelTexture像素纹理节点;MovieTexture电影纹理节点。针对纹理还可