第6章虚拟现实网络课件制作6.1虚拟现实技术基础1.什么是虚拟现实2.虚拟现实类型3.基于网络的虚拟现实技术“虚拟现实”(virtualreality,简称vr)是用计算机技术来生成一个逼真的三维视觉、听觉、触觉或嗅觉等感觉世界,让用户可以从自己的视点出发,利用自然的技能和某些设备对这一生成的虚拟世界客体进行浏览和交互考察。它可使用户获得与真实世界一样的感觉,可达到代替实际系统的目的.6.1.1什么是虚拟现实?专业级虚拟现实系统具有高度的实时性,能同时使用多种输入输出设备,用户可以用人体的自然技能,借助数字头盔、立体显示技术、数据手套和数据衣服等工具,与虚拟的感觉世界进行交互作用。6.1.1什么是虚拟现实?现在虚拟现实的范围很广,包括虚拟环境、塞伯空间等。虚拟现实最重要的目标就是真实的体验和方便自然的人机交互,凡是能够达到或部分达到这样目标的系统就称为虚拟现实系统。6.1.1什么是虚拟现实?虚拟现实系统的关键特性沉浸:“真实”的体验交互:实时操纵得到反馈信息1.桌面虚拟现实2.沉浸式虚拟现实3.增强现实系统4.分布式虚拟现实6.1.2虚拟现实类型1.桌面虚拟现实利用个人计算机和低级工作站进行仿真,将计算机的屏幕作为用户观察虚拟境界的一个窗口。使用简单的外部设备6.1.2虚拟现实类型(如鼠标、轨迹球)来观察360度范围内的虚拟世界,并操纵虚拟场景中的各种物体。纯软件型2.沉浸式虚拟现实高级虚拟现实系统,提供完全沉浸的体验,使用户有一种置身于虚拟境界之中的感觉。利用头盔式显示器或其他硬件设备数据手套位置跟踪器6.1.2虚拟现实类型3.增强现实系统不仅是利用虚拟现实技术来模拟现实世界、仿真现实世界,而且要利用它来增强参与者对真实环境的感受。增强现实中无法感知或不方便的感受。6.1.2虚拟现实类型真实环境和虚拟环境结合起来的系统,部分系统是真实环境,这样既可减少真实环境的资源消耗,又可对实际物体进行操作。4.分布式虚拟现实如果多个用户通过计算机网络连接在一起,同时参加一个虚拟空间,共同体验虚拟经历,那虚拟现实则提升到了一个更高的境界,这就是分布式虚拟现实系统。16.1.2虚拟现实类型6.1.3基于网络的虚拟现实技术VRMLWeb3D全景面向网络、基于文本描述、与设备无关的三维造型语言,它所生成的虚拟场景由用户端的专门浏览器来浏览和交互。网络三维技术的统称,其本质就是在网络上表现3D,提供比vrml具有更强表现力的虚拟现实网络解决方案。基于摄影的,作品为实景拍摄的全景照片,可web浏览器中进行三维互动浏览。6.2VRML课件制作1.VRML与网络教学2.Vrml语法3.VRML浏览器4.VRML制作工具5.cosmoworld制作VRML作品6.vrmlpad编辑VRML6.2.1VRML与网络教学1.VRML概念VRML(VirtualRealityModelingLanguage)是一个在Internet中描述三维造型与交互环境的文本标注语言。VRML提供对三维世界及其内部基本对象的描述(包括球体、平面、圆锥、圆柱、立方体等)并同二维的页面链接起来。VRML是描述虚拟环境中场景的一种标准。它定义了三维应用系统中常用的语言描述,如层次变换、光源、视点、几何、动画、雾、材料特性和纹理映射等,并具有简单的行为特征描述功能。6.2.1VRML与网络教学1.VRML概念VRML1.0于1994年面世VRML2.0规范于1996年公布1997年,VRML正式作为国际标准发布,并获得ISO批准,此即VRML976.2.1VRML与网络教学2.VRML特性文件短小,适于网络应用兼容性强,兼容多种3D文件格式和其他媒体文件格式实时3D交互后期维护方便扩展性强可支持多种运行环境6.2.1VRML与网络教学2.VRML特性不足:三维图象质量一般,场景不能过于复杂,对客户机要求较高,需要使用专门的浏览器浏览器的控制比较困难。Vrml与外界的通信能力比较差Vrml与用户的交互比较弱6.2.1VRML与网络教学3.VRML在网络教学中的应用能营造更为逼真的环境和场景,人机交互更为自然,更能增强想象力,增强学生的感官刺激,激发学生兴趣模拟仿真宏观世界和微观世界用虚拟仿真代替实际训练全景观察物理结构创设实验环境,进行实验教学6.2.2VRML语法基础是一个扩展名为WRL的文本文件或扩展名为WRZ的二进制文件。文本编辑软件。Vrml浏览器。6.2.2VRML语法基础#VRMLV2.0utf8Shape{appearanceAppearance{materialMaterial{}#用缺省材质和颜色}geometryCylinder{radius3height6sideTRUEtopFALSEbottomTRUE}}文件头:给浏览器提供文件的版本信息注释:以#号开始的说明文字节点:场景信息的单位。用来描述场景中的造型、灯光及声音等属性值:描述及改变节点属性的大小Vrml文件结构6.2.2VRML语法基础节点(node),VRML世界的基本单位其地位相当于面向对象语言中的对象,但语义简单许多节点由若干域(Field)描述.每个域包括域名(也称域的类型)和“值”.节点的域可能是简单的参数,如上例中的圆柱体节点有若干描述圆柱体的具体参数.节点的域也可能是另外的节点,如上例中的Shape节点,它含有两个域,名字分别为外观(appearance)和几何形状(geometry),其值都是别的节点.节点描述和域的次序无关6.2.2VRML语法基础节点(node),VRML世界的基本单位有一些系统已定义的节点,例如Box,Cylinder,Shape,Material,SpotLight等它们所含的域(名)是确定的,例如radius等.VRML文本编写者的任务就是要给这些域设计适当的值系统对这些域有缺省值,例如Box{size2,2,2},Sphere{radius1}等.用户也可以自定义非规则几何体节点6.2.2VRML语法基础节点类型1、基本造型2、组3、造型节点5、光照节点6、多媒体节点7、监测器和插补器节点6.2.2VRML语法基础1、基本造型Shapegeometry几何造型节点Box,Sphere,Cone,Cylinderappearance定义颜色和表面纹理等外观属性Material,Texture,TextureTransform表面特性:Appearance节点material域:值为Material节点,可有如下域diffuseColor,颜色的反射与入光角度有关shineness,光洁度,取值0.0--1.0transparency,透明度,取值0.0--1.0texture域:值取ImageTexture,MovieTexture,PixelTexture节点之一textureTransform域:TextureTransform节点.用于在施用前对纹理做空间变换例子3:图像纹理的应用#VRMLV2.0utf8Shape{geometryBox{}appearanceAppearance{textureImageTexture{url“ie.gif”}}}6.2.2VRML语法基础2、组节点对若干造型进行编组,将他们组为一个整体进行操作GroupTransformAnchor等6.2.2VRML语法基础2、造型节点XYZ重新确定坐标系统.实现平移\旋转和缩放.6.2.2VRML语法基础translationxyz将物体平行位移rotationxyzr按右手法则,将物体围绕由原点和(xyz)确定的射线旋转r弧度scalexyz,相对原点,按照给出的比例因子在空间三个方向上放大(缩小)注意:变换是针对物体上每一个点的.在成组节点中,变换对组中的节点都有效.嵌套的变换效果叠加,由内向外变换顺序:scale,rotation,translation还有些可选参数,例如旋转的原点,放大的中心等VRML的动画能力Abilitytochangetheworldovertime不仅几何位置的变化,还包括颜色、光线、声音等。具体表现在对有关节点属性值的动态改变如何启动一个动画过程?--VRML提供各种各样的“传感器”节点,响应用户事件.如何在时间上控制一个动画过程?--TimeSensor节点如何在行为上控制一个动画过程?--各种各样的“插值器”节点通过ROUTE语句进行事件的传播:VRML动画的基本机制一个最简单的动画例子(eg5)#VRMLV2.0utf8Group{children[DEFPUSHTouchSensor{}#和下面的节点相联系Shape{geometryCone{}appearanceAppearance{materialMaterial{diffuseColor101}}}]}Sound{#定义一个音响节点sourceDEFBUZZAudioClip{url[mssound.wav]}maxFront50#nosoundheardbeyondminFront5#nochangeinvolumewithin}ROUTEPUSH.touchTimeTOBUZZ.startTime文字例子(eg6)#VRMLV2.0utf8Shape{geometryText{stringInternetandJavaTechnologiesfontStyleFontStyle{size1.5familySERIFstyleBOLD}}}VRML的事件:交互与动态的基础事件是某些节点的性质(在VRML的53种节点中,多数与事件有关)如何知道什么节点与什么事件有关节点规范中的显示说明节点的exposedField域隐含相关事件ROUTE语句:让不同节点之间事件相互联系的手段(起一个类似于赋值语句的作用)6.2.3VRML浏览器1.MicrosoftVRML2.0View2.Cosmoplayer3.其他VRML浏览器6.2.4VRML制作工具1.VRML代码编辑软件2.可视化VRML制作工具传统的三维制作软件3dsmaxMayaCinema4D专用工具软件InternetSpaceBuilder,cosmoworlds,3DwebsiteBuilderVrmlPadSitePadPro6.2.5使用Cosmoworld制作vrml作品三、虚拟现实系统的应用虚拟仪器(1)非交互式虚拟实验室(2)交互式虚拟实验室RainDemo.exeHTTP://WWW.TJU.EDU.CH网络教育例:教具,虚拟大学()商业应用例:设计,购物,旅游文化、娱乐例:博物馆()什么是VRML(2.0)一种语言,用于描述三维物体和由它们构成的三维场景;该场景可以具有现实世界的多种特征、可以是动态的,也可以和观察者交互作用.它最引人入胜的应用是使人们能够在Web上构建动态的、具有丰富的传感效应的虚拟环境VRML(2.0)不仅是VRML(1.0)的一个扩充.VRML的主要能力描述三维物体及由它们构成的场景动画:使物体在三维空间中运动在场景中播放声音和电影使观察者能与场景交互作用:传感与事件通过脚本(用Java和JavaScript写的)使观察者在场景中的感受更加生动。VRML(2.0)文件的基本格式文件扩展名:.wrl第一行必须是:#VRMLV2.0utf8这也是唯一必须有的内容。后面是关于“节点”(Node)的描述和注释注释用“#”开始,直到本行结束VRML是区分大小写字母的现在的CosmoPlayer对词法,语法错误的处理非常弱(难怪免费).例子4:构造一个四面体#VRMLV2.0utf8Shape{geometryIndexedFaceSet{coordCoordinate{#给出4个顶点的坐标