虚拟现实场景模拟论文大学论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
虚拟现实课程学习实践报告
院系:理学院数学系
专业:应用数学
班级:应数1301
学号:131003014 姓名:李媛媛
任课教师:侯筱婷
日期:2016年5月
VRML基础——三维场景建模
一.参考“VRML2.0交互式三维图形编程”等文献资料,回答下列问题。
1)field, exposedField, eventIn, eventOut(P13)
节点有的是用来定义三维形体,有的是用来定义形体的显示特征如颜色,有的是用来产生形体的运动等变化,每一个节点都有一个或者多个参数,这些参数称为字段(field)及事件(event).字段有两种类型:field,exposedField,事件也有两种:eventIn,eventOut,我们把它翻译成事件进和事件出
2)vrml的坐标系统(国际标准规定,P16)
VRML文件显示的是三维空间的物体,将其所生产的物体放置在一个符合右手螺旋法则的三维坐标系中,可以将这个坐标系看做是程序的总体坐标系,国际标准规定:物体从+Z轴方向投影在一个+X轴向右、+Y轴向上的二位坐标系统中,+Z轴朝外,人的眼睛及观察点的坐标为(0 0 10)人的眼睛朝原点看去,这是缺省时的观察位置及观察方向。
3)局部坐标系(P16,Transform节点构建局部坐标系P37)
一些VRML程序中的Transform,Group节点可以使多个物体组成一个节点组,节点组可以放置在空间的任意地方,也可以在程序中移动或旋转节点组的坐标,一个大节点组里可以有小节点组,小节点组里可以有小小节点组,每个节点组拥有一个坐标系,称为这个节点组的局部坐标系。Transform是一个重要的组节点,它可以构成一个局部坐标系,利用translation,rotation,scale等字段可以对Transform的字节点中的形体产生移位、旋转、比例放缩等效果。
4)Appearance节点(P22)的三个域material、texture(重点:ImageTexture 节点)、 textureTransform(P109用来实现纹理的几何变换,产生特殊效果纹理,比如贴图的重复和部分显示)
Appearance节点可以用来定义形体的外观效果,如材质、贴图。其三个域为material、texture、 textureTransform。可以用在material后面的节点是Material,它定义了物体的材质。可以用在texture后面的节点是ImageTexture,Movietexture,Pixeltexture三个节点,texture在计算机图形学里表示纹理。ImageTexture,Movietexture,Pixeltexture分别表示静止图片纹理、运动影像纹理、像素图纹理。可用在textureTransform后面的节点为TextureTransform,这一节点可以用来进行纹理的几何变换,以产生特殊效果的纹理,还可以使贴图旋转。
5)Extrusion挤出造型节点(P23,扭曲造型怎样实现)
通过Extrusion节点可以生成一个拉伸体,拉伸及诶单形成一个形体,形体由一个断面沿着三维空间里的一条折线段伸展而成,断面在不同位置可以有比例的变化甚至旋转,由此生成我们所需要的有复杂形状的物体。
6)和空间中点相关的节点:Coordinate节点(P23)、PointSet节点(P29-30,用Material节点的emissiveColor来定义点的颜色,模拟夜空中的星星)Coordinate节点只有一个字段:point,表示点的坐标,由于这个字段是exposedField字段,因而可以在程序运行时改变点的坐标。PointSet节点有两个字段,并且是在程序运行时可以改变的字段,PointSet节点主要用于表示夜晚天空的星星,点的大小不能定义,可以定义多个点的坐标和颜色,也可以只定义点的坐标,点的颜色利用Material节点的emissiveColor.
7)IndexedFaceSet节点(P32,平面的正方向确定、solid域的作用、构造每个面有不同颜色的三维形体、实现正反面不同贴图)
构造三锥形体时,常常觉得基本形体无法满足需求,这是我们可以利用IndexedFaceSet节点来造型,IndexedFaceSet节点通过三个或多个顶点构造平面多边形来表现三维物体的形状,理论上说,任何三维形体都可以由IndexedFaceSet节点精确或近似的构造
8)Group节点和Transform节点的比较(P41)
Group节点和Transform有相同的地方:它可以把多个形体结合在一起,但Group节点没有形体几何变换的功能,可以说Group节点是一个没有几何变化的Transform节点。Group在程序中的使用主要是为了使文件内的形体有一个合理的组合,方便复杂文件的阅读和分析。
9)DEF和USE(P42)
VRML2.0中DEF用来给节点命名,任何需要重复使用的节点都可以用DEF命名,在其它地方用USE使用它,DEF和USE使用起来非常简单:先用吧DEF来命名,使用时用USE代替原先大段内容。
10)Anchor(锚/链接节点,P43)可用于实现场景中显示提示信息引导用户文件跳转、视点跳转(解决三维漫游时迷失方向问题)等。
Anchor节点有两个主要作用:
第一个作用是从一个文件跳到另一个文件去,Anchor附在某一形体上,并附带有另一文件的地址,当鼠标移动到这一形体上时,鼠标的形状发生变化,点取这一形体时,浏览器将调用另一文件,这一文件可以是VRML文件,也可以是HTML,文件或其他浏览器可以执行的文件。
第二个作用是在同一个文件中从一个观察点跳到另一个观察点,例如跳到一个较好的显示位置。有了这样的作用我们在浏览三维世界时就不会迷失了方向,一旦迷失了方向,我们可以跳回到一个设定好的位置及方向。
11)Billboard(布告牌节点,P44)可实现某些形体无论视点怎么变化始终面向观察者。
Billboard节点可用来调节局部坐标系的方位,使得局部坐标系的Z轴随着观察方向的改变而绕Y轴(0 1 0)或X(1 0 0)轴旋转,并永远指向观察者。12)Vrml的Collision(碰撞检测节点)不能实现形体和形体之间的碰撞检测,考虑如何实现?(可选)
13)视点固定,视角动态变化的例子(P53,应用标量插补器节点) 一个固定的物体,观察点是固定的,但观察的视角在不断的变化,由大变小,由小变大,这一变化由标量插补器节点做出。
14)定义NavigationInfo导航节点,实现限制观察者程序运行时对三维环境的控制程度的例子(P59)。
EX5-08程序通过NavigationInfo节点的定义,使观察者不能移动观察点或旋转观察方向,只能通过点击带有锚节点的是形体,以此来改变Viewpoint,其目的是限制人们在程序运行时对三维环境的控制程度。
15)Inline节点可用于实现复杂场景模块化建模(P115)
Inline节点可用来将外部的VRML程序调入Inline节点所在的VRML程序,以此构造复杂的三维空间,外部的VRML程序调入后被摆放在Inline节点所在的局部坐标系中。
16)LOD节点可用于实现根据视点距离形体的远近动态调用形体不同精细级别的