版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、VRML 程序设计程序设计一一 、虚拟现实技术概述、虚拟现实技术概述1.1 虚拟现实概念特点系统基本构成关键技术应用1.2 VRMLChapter1 11.1 虚拟现实虚拟现实虚拟现实的概念虚拟现实是利用计算机生成一个逼真的视觉、听觉、触觉以及嗅觉等的模拟环境(如飞机驾驶舱、分子结构世界等),通过多种传感设备使用户“投入”到该环境中,用户可通过其感官与这一生成的虚拟实体进行交互沟通,如同与真实的环境直接进行自然交互的技术。这里所谓的“模拟环境”一般是指用计算机生成的有立体感的图形,它可以是某一特定现实环境的表现,也可以是纯粹构想的世界。虚拟现实技术实现的是人所感受到的虚拟幻境,所以钱学森建议把
2、Virtual Reality的技术叫做“灵境技术”,由它构成的信息处理环境称作“灵境” 。虚拟现实的特点(3I特性)第一,虚拟现实技术是通过计算机生成一个非常逼真的实体,逼真要达到三维的视感,甚至还包括听觉、触觉和嗅觉等。这个逼真的实体足以成为“迷惑”人类视觉的虚幻的世界,这种“迷惑”是多方面的,不仅可以看到而且可以听到、触到以及嗅到这个虚拟世界中所发生的一切。这种感觉是如此的真实,以至于能全方位地浸没在这个虚幻的世界中,这就是虚拟现实的第一个特征,即浸没感(Immersion)或临场参与感。虚拟现实的特点第二,虚拟现实与通常CAD系统所产生的模型是不一样的,它不是一个静态的世界,而是一个动
3、态的、开放的环境,它可以对使用者的输入(如手势,语言命令)作出响应。如拿起一个虚拟的火炬并打开其开关,推动操纵杆,就可以在虚拟环境中的漫游,甚至还可以用虚拟的手感触到虚拟物体的存在。虚拟现实环境可以通过一些三维传感设备来完成交互动作,这是虚拟现实技术的第二个特征,即交互性(Interaction)。虚拟现实的特点第三,虚拟现实不仅仅是一个媒体,一个高级用户界面,它还是为解决工程、医学、军事等方面的问题而由开发者设计出来的应用软件,它以详尽的形式反映了设计者的思想。如在盖一座现代化的大厦之前,首先要做的事是对这座大厦的结构做细致的构思,为了使之定量化,还需设计许多图纸。这些图纸反映的是设计者的构
4、思,虚拟现实同样反映的是某个设计者的思想,只不过它的功能远比那些呆板的图纸生动、强大的多,所以国外有些学者称虚拟现实为放大人们心灵的工具,或人工现实(artifical reality)。这是虚拟现实技术所具有的第三个特征,即思想性(Imagation)。虚拟现实系统的基本构成虚拟现实技术的关键技术(1)动态环境建模技术 (2)实时三维图形生成技术 (3)立体显示和传感器技术 (4)应用系统开发工具 (5)系统集成技术 虚拟现实技术的应用(1)医学 (2)娱乐、艺术与教育 (3)军事与航天工业 (4)管理工程 简单场景示例如下:1.2 虚拟现实建模语言虚拟现实建模语言VRMLVRML2.0标准
5、被称为第二代Web语言VRML的特点(1)与其它Web技术语言相比,其语法简单、易懂,编辑操作方便,学习相对容易。(2)VRML具有创建三维造型与场景,并可以实现很好的交互效果。而且可以嵌入Java、JavaScript等程序实现人机交互,从而极大的扩充其表现能力,形成更为逼真的虚拟环境。(3)具有强大的网络功能,文件容量小,适宜网络传输,并可方便地创建立体网页与网站。 (4)具有多媒体功能,在其程序中可方便地加入声音、图像、动画等多媒体效果。(5)具有人工智能功能,在VRML中具有感知功能,可以利用各种传感器节点来实现用户与虚拟场景之间的智能交互。(6)在当前各种浏览器中还不能直接运行,必须
6、安装VRML相关插件才能看到其效果。二、二、VRML 的基本知识的基本知识2.1 VRML 文件的编辑运行2.2 一个VRML程序示例2.3 VRML基本概念Chapter2 22.1 VRML 文件的编辑运行文件的编辑运行VRML的编辑VRML是文本文件,它向VRML浏览器发出如何为虚拟空间创建3D造型的指令。使用VRML创建自己的虚拟空间,需要VRML浏览器(例如Windows中IE的组件VRML2.0)和某种字处理器(如记事本)就可以实现了。在字处理器键入VRML指令。然后,将文本文件存成*.wrl 文件,最后将它装入VRML浏览器,以3D形式查看。为了向空间添加更多东西,返回字处理器,
7、键入其他VRML指令,保存文件,并将它重新读回VRML浏览器。重复上述操作,逐渐创建自己的虚拟空间。编辑工具推荐VrmlPadVRML的运行运行环境要求较低,采用Pentium 4以上的计算机,主频2G以上、内存128M以上、显存64M以上、硬盘10G以上即可常用的VRML文件浏览器有CortonaPlayer和CosmoPlayer,我们这里使用CortonaPlayer2.2 VRML程序示例程序示例# VRML V2.0 utf8DEF qiuti Transform #坐标变换节点Children Shape appearance Appearance material Materia
8、ldiffuseColor 0 1 0Geometry Sphere radius 1.1DEF time TimeSensor #时间传感器节点cycleInterval 2.0loop TRUEDEF bianhua PositionInterpolator #位置插补节点key 0.0,1.0keyValue0 0 -10 0 0 6ROUTE time.fraction_changed TO bianhua.set_fraction #路由ROUTE bianhua.value_changed TO qiuti.set_translation #路由注意事项: vrml文件区分大小写
9、vrml文件的语法结构。一个实用的vrml文件一般由文件头,节点和路由组成 vrml文件实际上是众多节点的组合。一个节点由节点名和一对花括号组成,花括号内可以有多条语句。路由语句根据需要可以有多个。一个最基本的vrml文件处必需的文件头外,可以没有路由语句,但至少应包含一个节点。文件头中的utf8表示文件使用的UTF-8字符集。计算机中使用的ASCII字符集是UTF-8字符集的子集。2.3 VRML基本概念基本概念文件头VRML文件中的第一行#VRML V2.0 utf8,这是VRML文件头,任何VRML文件都必须有这样的文件头,并且必须放在第一行,它表述了以下三个含义: (1)# 这个#不是
10、注释,而是VRML文件的一个部分; (2)VRML表示告诉浏览器,这是个vrml文件; (3)V2.0表示告诉浏览器,这个文件使用vrml2.0版的规范完成; (4)utf8表示文件是使用国际UTF-8的字符集。域可理解为其他高级语言中的“变量”。分为两种:普通域,公共域。如上例中radius是普通域,diffuseColor,cycleInterval,loop,key,keyValue为公共域,children也为公共域。VRML的空间坐标与计量单位在构建虚拟场景中,构成场景的造型有大小的差别,物体间有相对位置的不同,并且造型还会有旋转、移动等运动。这就涉及到物体的空间坐标系、相应的长度、
11、角度及颜色等。在VRML中,采用空间直角坐标系确定造型的位置,并且用特定的计量单位定量表示长度。 1.VRML空间坐标系 在VRML场景中,空间直角坐标满足右手螺旋法则,就是说,右手四指从X方向转到Y方向,则拇指的指向是Z方向。在默认情况下, X坐标向右为正;Y坐标向上为正;而Z坐标指向观察者,如图所示。2.VRML长度单位长度及坐标的计量单位采用VRML单位计量,在三维空间中,它是统一的,简称为单位。需要注意的是,这里表示的单位和实际环境中的计量没有任何可比性,和一些三维建模软件如3DSMAX的计量单位也没有可比性。在VRML场景中,只有物体间的大小和相对位置都用VRML单位计量,才能模拟出
12、真实的现实。3.VRML角度单位在VRML中,使用的角度不是普通的角度,而是用弧度表示,这是浏览器接受的角度描述。当在VRML中使用角度单位中,要先将其换算成弧度后,再将其写入到VRML源程序中。VRML中的360角度等于2弧度,由此,1弧度约等于57。4.空间立体着色在VRML三维空间中,无论是背景、光线的颜色、物体,它们的颜色都是由红、绿、蓝(RGB)组合而成,它们分别对应3个浮点数,其域值为0.0-1.0之间,由这三原色组合成各种颜色。节点和域节点是VRML文档中最基本的组成单元,是VRML的精髓与核心。VRML借助于节点描述对象某一方面的特征,如各种形状、材质以及颜色等等。VRML场景
13、往往由一组具有一定层次结构的节点构造出来。每个节点包含有子节点和描述节点属性的“域名”、“域值”。相当于其它高级语言中的变量、数组等,或是数据库中的字段。一般节点语法定义如:Shape # Shape模型节点appearance Appearance #定义造型外观、颜色和表面纹理material Material #描述外观材质属性geometry Cone #指定造型外观为圆锥体节点bottomRadius 5.5 #指定圆锥体底面半径height 6.0 #指定圆锥体的高度上述的一段VRML文档描述了一个圆锥体的建立,其中Shape、Appearance、Material以及Cone就是
14、节点。节点由节点名、节点类型、域、事件接口等基本组成部分。不同的节点包含有不同的域,各个域没有次序之分,每个域都有自己的默认值,而且有些域还可用同名的节点作为域值。根据域具有的域值情况的不同,可以把域分为两类,一类为单值域,用SF标记,它用一个值来描述对应节点相应的特征。另一类为多值域,用MF标记。VRML的域值类型有很多种:比如SFBool表示单域值布尔型,取值为True或者False,以确定某个属性是否打开;SFVec2f、MFVec2f表示单(多)域值二维浮点型,取值为两个浮点数值,可用来确定一个二维坐标;而SFVec3f、MFVec3f则表示单(多)域值三维浮点型,取值为三个浮点数值,
15、可用来确定一个三维坐标。事件和路由在现实环境中,事物往往随着时间会有相应的变化。比如,物体的颜色随着时间发生变化。在VRML中借助事件和路由的概念反映这种现实。1.事件在VRML中,每一个节点一般都有两种事件,“入事件”(eventIn)和“出事件”(eventOut),每个节点通过这些“入事件”和“出事件”来改变节点自己的域值。如节点的颜色可以改变,可以表示为接收了这样一种事件:set_color。当节点被改变了,会对改变的状态有所反应,送出一些事件,比如发出信号,颜色改变了:Color_changed。事件相当于高级程序语言中的函数调用。其中,“入事件”相当于函数调用的入口参数,而“出事件
16、”相当于函数调用时返回的参数。在VRML中的每一个节点内部有些域被定义为“暴露域”,即指它能够接收事件,也能输出事件。事件的调用是临时的,事件的值不会被写入VRML中。2.路由路由的功能是连接一个节点的“入事件”eventIn和另外一个节点的“出事件”eventOut。通过简单的语法结构,建立两个节点之间的时间传送的路径。路由的说明可以在VRML顶部,也可以在文件节点的某个域中。路由的出现,可使虚拟空间具有交互性、动感性与灵活性。借助于事件和路由,能够使得所建立的虚拟场景更接近于现实。(续上页)如语句: ROUTE time.fraction_changed TO bianhua.set_fr
17、action这里,时间传感器对象time在定时时间到时发生 fraction_changed出事件,输出的时间值传送给位置插补节点对象bianhua的入事件set_fraction,计算出和时间值对应的坐标变化值。又语句:ROUTE bianhua.value_changed TO qiuti.set_translationBianhua通过本身的value_changed出事件将计算出的新坐标值传递给球体造型qiuti的入事件set_translation,使球体造型产生位移,于是动画出现了。事件和路由构成了VRML 的动画体系。三、创建三维立体造型三、创建三维立体造型3.1 造型节点3.2
18、 简单几何造型节点3.3 复杂几何造型节点3.4 造型的外观设计3.5 创建文本造型Chapter3 33.1 造型节点造型节点在VRML中创建三维立体造型是最基础和重要的工作。Shape造型节点定义了立体造型的几何形状、尺寸、色彩、材质、纹理等外观特征。其语法格式如下:Shapeappearance 外观域结点geometry 几何造型域结点3.2 简单几何造型节点简单几何造型节点基本体素的建立形状几何由几何节点描述,如Box,Cone,Cylinder等。 1长方体(Box)Boxsize x y zx、y、z默认值均为2.0域值为默认值的域也可省略不写2圆柱体(Cylinder)Cyli
19、nderradius rheight h默认r=1.0、h=2.0以y轴为对称轴3圆锥体(Cone)ConebottomRadius rheight h默认r=1.0、h=2.0以y轴为对称轴锥顶指向y+向4球体(Sphere)Sphereradius r默认r=1.03.3 复杂几何造型节点复杂几何造型节点复杂形状的建立 - 动物、植物、地表、机械零件,等等. - 可借助点、线、面来构建 - 对于地表等,甚至有特定的节点描述,如 ElevationGrid节点PointSet Shape appearance Appearance . . . geometry PointSet coord
20、Coordinate point . . . IndexedLineSet Shape appearance Appearance . . . geometry IndexedLineSet coord Coordinate point . . . coordIndex . . . IndexedFaceSet Shape appearance Appearance . . . geometry IndexedFaceSet coord Coordinate . . . coordIndex . . . solid TRUE ccw TRUE convex TRUE ElevationGrid
21、 Shape appearance Appearance . . . geometry ElevationGrid xDimension 3 zDimension 2 xSpacing 1.0 zSpacing 1.0 height . . . Extrusion - 条形、管形、环形 - 可由 Extrusion 节点建立Extrusion挤出造型节点语法格式如下:节点名称 域名称或事件 域值 #域、域值或事件类型ExtrusioncrossSection 1 1,1 -1,-1 -1,-1 1,1 1 #MFVec2fspine0 0 0,0 1 0 #MFVec2fscale 1 1 #
22、MFVec2forientation 0 0 1 0 #MFRotationbeginCap TRUE #SFBoolendCap TRUE #SFBoolccw TRUE #SFBoolconvex TRUE #SFBoolso1id TRUE #SFBoolcreaseAngle 0.0 #SFF1oatset_crossSection #eventInMFVec3fset_spine #eventInMFVec2fset_scale #eventInMFVec2fset_orientauon #eventInMFRotationExtrusion挤出造型的一个例子3.4 造型的外观设计造
23、型的外观设计Appearance 节点描述外观 - 可通过可通过Material 节点控制材料属性,如颜色、节点控制材料属性,如颜色、高高 光、透明度等。光、透明度等。 - 可通过可通过纹理映射为表面增添细节。纹理映射为表面增添细节。 ImageTexture, PixelTexture, MovieTextureMaterial材质节点Material diffuseColor 0.8 0.8 0.8 - 材料漫反射光色(材料漫反射光色(r,g,b),),0.01.0 specularColor 0.0 0.0 0.0 - 材料镜面反射光色(材料镜面反射光色(r,g,b),),0.01.0
24、shininess 0.2 - 亮度,亮度,0.01.0 ambientIntensity 0.2 - 对比度,对比度,0.01.0 emissiveColor 0.0 0.0 0.0 - 材料发射光色(材料发射光色(r,g,b),),0.01.0 transparency 0.0 - 材料透明度,材料透明度,0.01.0造型的色彩设计RedGreenBlue颜色0.00.O0.0黑0.20.20.2深灰0.50.50.5中灰0.80.80.8浅灰1.01.01,0自1.00.00.0红0.01.00.0绿0.00.01.0蓝1.01.00.0黄几何造型的简单色彩设计VRML为整体造型添加同样
25、的颜色时,只需为 diffuseColor域的域值设置一组合适的RGB分量值,就完成了对造型基本颜色的设计。几何造型的复杂色彩设计点集和线集造型的色彩设计: 一是通过Materia1材质节点的emissiveColor域的域值,为造型设定单一的颜色。(注意:不能使用diffuseColor域的域值设定点和线造型的颜色,因为前面已经说过点集和线集节点创建的造型不受光源的影响,没有光照的情况下,无论diffuseColor域的域值设定成什么颜色,浏览器均显示为黑色) 二是通过Pointset点集节点和IndexedLineSet线集节点的color域的域值Color颜色节点,为造型设定不同的颜色。
26、 IndexedLineSet线集节点有color、colorIndex、colorPerVertex三个域的域值用于为所创建的线段着色。面集造型的色彩设计: color、colorIndex、colorPerVertex网格标高造型的色彩设计 color、colorPerVertex 四、造型的材质设计造型的材质设计是一项复杂的工作,现实世界中常用的材料,如金属、木材、砖瓦、石料、玻璃、塑料等不仅仅是外观颜色上的差别,材质的属性更多反映在透明度、发光颜色、反光度、外观亮度的不同。因此,材质设计必须依赖于Material节点中六个域值的综合设定来完成。下表是常用材质域值设定的参考表。视觉效果材
27、料漫反射颜色环境光反射物体镜面反射颜色材质外观亮度diffuseColorambientIntensitySpecularColorshininess黄金0.5 0.3 0.00.40.7 0.7 0.60.2白银0.5 0.5 0.70.40.8 0.8 0.90.2铜0.4 0.2 0.00.280.8 0.4 0.00.1铝0.3 0.3 0.50.30.7 0.7 0.80.1红塑料0.8 0.2 0.20.10.80.80.80.15绿塑料0.2 0.2 0.80.10.8 0.8 0.80.15蓝塑料0.2 0.8 0.20.10.8 0.8 0.80.15造型的纹理包装设计ImageTexture节点示例1 Shape appearance Appearance material Material texture ImageTexture url wood.jpg geometry . . . VRML只支持只支持.jpg、.gif图像格式图像格式几何造型所有的面都有贴图几何造型所有的面都有贴图拉伸型覆盖拉伸型覆盖图像文件应与图像文件应与VRML文件在同一位置文件在同一位置ImageTexture节点示例2 Shape appearance Appearance material Material texture
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年元宇宙经济系统的数据库优化策略
- 2026下半年年高校土木实训教学专员大学教师招聘考试笔试试题(含答案)
- 盐城市小学语文教师进城考试试题含答案
- 2026年生态城市建设中的碳汇能力提升策略
- 心理学性格测试题及答案
- 500亩桂花种植及芳香提取配套可行性研究报告
- 2026 年小学秋季开学消防安全教育宣讲课
- 2026 年夏季小学暑假安全:防溺水、防暑、防交通意外
- 洗煤厂维修钳工岗位练兵理论试题库及答案(50题)
- 2026年水产养殖技术员水质管控考试题库标准答案
- 2026年食堂餐饮服务人员食品安全操作规范测试题含答案
- 加油站钥匙保管制度规范
- 全国市场监督管理法律知识竞赛测试题库(含答案解析)
- 传染性疾病控制副高考试题库及答案
- 2025北京初三一模物理汇编:热现象章节综合2(京改版)
- 业务工单管理办法
- 红外线治疗技术课件
- 化妆行业的法规和标准规范
- 人保财险车险合同范本
- 第六届“四川工匠杯”职业技能大赛(互联网营销赛项)理论参考试题库(含答案)
- 星级复评规范评分表星级饭店访查规范
评论
0/150
提交评论