虚拟现实场景模拟论文大学论文.docx

上传人:b****6 文档编号:13039125 上传时间:2023-06-10 格式:DOCX 页数:15 大小:128.39KB
下载 相关 举报
虚拟现实场景模拟论文大学论文.docx_第1页
第1页 / 共15页
虚拟现实场景模拟论文大学论文.docx_第2页
第2页 / 共15页
虚拟现实场景模拟论文大学论文.docx_第3页
第3页 / 共15页
虚拟现实场景模拟论文大学论文.docx_第4页
第4页 / 共15页
虚拟现实场景模拟论文大学论文.docx_第5页
第5页 / 共15页
虚拟现实场景模拟论文大学论文.docx_第6页
第6页 / 共15页
虚拟现实场景模拟论文大学论文.docx_第7页
第7页 / 共15页
虚拟现实场景模拟论文大学论文.docx_第8页
第8页 / 共15页
虚拟现实场景模拟论文大学论文.docx_第9页
第9页 / 共15页
虚拟现实场景模拟论文大学论文.docx_第10页
第10页 / 共15页
虚拟现实场景模拟论文大学论文.docx_第11页
第11页 / 共15页
虚拟现实场景模拟论文大学论文.docx_第12页
第12页 / 共15页
虚拟现实场景模拟论文大学论文.docx_第13页
第13页 / 共15页
虚拟现实场景模拟论文大学论文.docx_第14页
第14页 / 共15页
虚拟现实场景模拟论文大学论文.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

虚拟现实场景模拟论文大学论文.docx

《虚拟现实场景模拟论文大学论文.docx》由会员分享,可在线阅读,更多相关《虚拟现实场景模拟论文大学论文.docx(15页珍藏版)》请在冰点文库上搜索。

虚拟现实场景模拟论文大学论文.docx

虚拟现实场景模拟论文大学论文

虚拟现实

课程学习实践报告

 

院系:

理学院数学系

专业:

应用数学

班级:

应数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轴朝外,人的眼睛及观察点的坐标为(0010)人的眼睛朝原点看去,这是缺省时的观察位置及观察方向。

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轴(010)或X(100)轴旋转,并永远指向观察者。

12)Vrml的Collision(碰撞检测节点)不能实现形体和形体之间的碰撞检测,考虑如何实现?

(可选)

13)视点固定,视角动态变化的例子(P53,应用标量插补器节点)

一个固定的物体,观察点是固定的,但观察的视角在不断的变化,由大变小,由小变大,这一变化由标量插补器节点做出。

14)定义NavigationInfo导航节点,实现限制观察者程序运行时对三维环境的控制程度的例子(P59)。

EX5-08程序通过NavigationInfo节点的定义,使观察者不能移动观察点或旋转观察方向,只能通过点击带有锚节点的是形体,以此来改变Viewpoint,其目的是限制人们在程序运行时对三维环境的控制程度。

15)Inline节点可用于实现复杂场景模块化建模(P115)

Inline节点可用来将外部的VRML程序调入Inline节点所在的VRML程序,以此构造复杂的三维空间,外部的VRML程序调入后被摆放在Inline节点所在的局部坐标系中。

16)LOD节点可用于实现根据视点距离形体的远近动态调用形体不同精细级别的模型,通常与Inline节点配合使用(P116)。

LOD可用来定义一个复杂物体的不同细节,并根据观察点离物体离的远近,让浏览器自动选择合适的浏览内容以产生合适的显示效果。

在浏览三维世界时,有的复杂的形体离观察着较远,如果将其调入到计算机内存,计算机需要进行复杂的计算,有事这样的计算会影响计算效果,如速度跟不上,为简化计算,我们可以用简单的形体代替复杂的形体,直至形体离观察点较近时再调进复杂的形体,这样既能提高显示速度,又能满足显示效果的需求。

LOD节点就是完成这样工作的节点,它通常与Inline节点共同使用,能够在浏览时自动计算观察点与复杂形体你的距离,并且根据距离的远近,调用形状简单或复杂的模型。

17)Switch选择节点,常和Script节点配合使用(P119)。

Switch节点主要用来在多种选择中作出某种选择,例如某形体上的贴图又三种,根据具体的需求选择其中的一种,在编程时,Switch节点一般与Script节点一起使用。

18)PROTO原型节点,可以定义新的节点(P122)。

VRML97国际标准允准人们用PROTO来定义新的节点,这样我可以有自己的节点了,PROTO给我们带来了灵活和方便。

在其19)内插器节点需要和时间传感器节点配合使用,时间周期归一化(P53)

19)内插器节点需要和时间传感器节点配合使用,时间周期归一化(P53)

内插器节点主要有:

ColorInterpolator(颜色插补器),CoordinateInterpolator(坐标插补器),NormalInterpolator(平面正法线插补器),OrientationInterpolator(方向插补器),PositionInterpolator(位置插补器),ScalarInterpolator(SFFloat插补器)六种,由于插补器节点的作用都是随着时间的变化而产生的,所以,这些插补器节点在使用时都需要与一个时间传感器(TimeSenser)配合使用。

TimeSenser节点会在cycIeIntervar给定时间的周期长度,但TimeSenser节点会将其转换为归一化的时间周期,在插补器中使用时只需使用归一化的时间周期节点即可。

1.内插器节点的字段和事件(一个enventIn,一个eventOut,两个exposedField)的作用(P53)

所有的插补器节点都有两个exposedField字段和一个入事件,一个出事件。

其中两个exposedField字段分别是用来指定插补器产生作用的关键时间节点值的key字段,和指定与key中关键时间节点相对应的变化参数值的keyValue字段,这两个字段会根据插补器的不同有不同的参数类型的要求。

但一般都是多值类型。

在两个时间当中,入事件set—fraction负责接受TimeSenser节点时间值的变化量,而出事件则是将插补器通过传入的时间值变化量计算得到的对应功能参数的变化量传出到相应的节点当中,从而实现动态的效果。

21)CoordinateInterpolator实现形体的变形(非基本形体)和点的跳跃的例子。

形体变形:

Shape{appearanceAppearance{materialMaterial{

diffuseColor110}#指定形体的颜色为黄颜色

}

geometryIndexedFaceSet{#指定形体为面造型

coordDEFcoCoordinate{

point[-3-1-2,-3-12,3-12,3-1-2,-31-2,-312,312,31-2]

}#定义面造型上的顶点坐标

coordIndex[0123-1,4765-1,0451-1,0374-1,3267-1,2156-1]#定义构造面是得顶点连接序列

}

}

DEFtsTimeSensor{#定义时间传感器

cycleInterval10.0#将时间传感器的周期设置为10秒

loopTRUE#将时间传感器的作用设置为循环模式

}

DEFc1CoordinateInterpolator{#定义坐标插补器

key[0.00.250.50.751.0]#指定插补器关键时间节点

keyValue[-3-1-2,-3-12,3-12,3-1-2,-31-2,-312,312,31-2,

-5-2-4,-5-24,5-24,5-2-4,-53-4,-534,534,53-4,

-7-4-6,-7-46,7-46,7-4-6,-75-6,-756,756,75-6,

-5-2-4,-5-24,5-24,5-2-4,-53-4,-534,534,53-4,

-3-1-2,-3-12,3-12,3-1-2,-31-2,-312,312,31-2]#指定key中每个关键时间节点对应的面造型的每个顶点的坐标

}

Background{skyColor111}#设置背景

Viewpoint{#设置视点

position2818

orientation100-0.5

}

ROUTEts.fraction_changedTOc1.set_fraction#路由,将时间插补器的

#时间变化值传入到坐标插补器中

ROUTEc1.value_changedTOco.pointOrientationInterpolator#将坐标插#补器计算得出的坐标变化后的值传给面节点的point字段,实现形体上个顶点的变换,从而实现形体的变化。

点的跳跃:

Shape{

geometryPointSet{#定义点形体节点

coordDEFc2Coordinate{

point[1-11,210,-121,2-10,-100]#定义各个点的坐标

}

}

}

DEFci2CoordinateInterpolator{#定义坐标插补器

key[0.25.5.751]#设置形体变化的关键时间节点

keyValue[1-11,210,-121,2-10,-100,

103,013,001,110,222,

000,111,222,101,010,

.501,120,220,-120,-110,

1-11,210,-121,2-10,-100]#设置与key中关键时间

#节点对应的点的坐标变化参数

}

DEFtsTimeSensor{#定义时间传感器

cycleInterval10#定义时间传感器周期为10秒

loopTRUE#设置时间传感器为循环模式

}

ROUTEts.fraction_changedTOci2.set_fraction#路由,将时间传感器的#时间变化值传入到插补器节点

ROUTEci2.value_changedTOc2.point#将通过计算得到的坐标传出#到点形体加点的point字段中,从而改变各个点的位置,实现点的跳#跃

PositonInterpolator(特殊效果:

视点的平滑移动,即自动漫游功能、基本形体的变形、沿着指定轨迹移动)、ScalarInterpolator(特殊效果:

透明度的变化、明暗效果的变化)

PositonInterpolator插补器,出事件为SFVec3f类型,所以可以在动态交互中用来改变SFVec3f类型字段的值,将其和ViewPoint节点中的Position字段联系起来,可以实现对视点的动态改变,即可以实现视点的平滑移动。

将其和基本形体中的节点Transform节点的scale字段或者translation字段联系起来,就可以实现基本形体的变形和沿着指定轨迹移动的效果。

类似的,ScalarInterpolator几点的出事件为SFFloat类型,所以,在动态交互中,可以用来改变SFFloat类型字段的值。

将其和材质节点当中的transparency联系起来,便可实现透明度的变化,将其和PointLight节点中的radius字段联系起来,便可实现明暗效果的变化。

22)OrientationInterpolator、PositonInterpolator(特殊效果:

视点的平滑移动,即自动漫游功能、基本形体的变形、沿着指定轨迹移动)、ScalarInterpolator(特殊效果:

透明度的变化、明暗效果的变化)

PositonInterpolator插补器,出事件为SFVec3f类型,所以可以在动态交互中用来改变SFVec3f类型字段的值,将其和ViewPoint节点中的Position字段联系起来,可以实现对视点的动态改变,即可以实现视点的平滑移动。

将其和基本形体中的节点Transform节点的scale字段或者translation字段联系起来,就可以实现基本形体的变形和沿着指定轨迹移动的效果。

类似的,ScalarInterpolator几点的出事件为SFFloat类型,所以,在动态交互中,可以用来改变SFFloat类型字段的值。

将其和材质节点当中的transparency联系起来,便可实现透明度的变化,将其和PointLight节点中的radius字段联系起来,便可实现明暗效果的变化。

23)熟悉各类传感器

VRML2.0中一个有七个传感器节点,分别是:

CylinderSensor(圆柱传感器),PlaneSensor(平面传感器),ProximitySensor(接近传感器),SphereSensor(球体传感器),TimeSensor(时间传感器),TouchSensor(触摸传感器),VisibilitySensor(显示传感器)。

CylinderSensor可以将鼠标的移动转变成CylinderSensor节点坐在的局部坐标系的旋转运动,即局部坐标系中的形体绕Y轴的运动。

PlaneSensor传感器可以将鼠标的移动转变成其所在的局部坐标系内沿着Z=0平面的移动,因而可实现形体在局部坐标内随着鼠标移动。

ProximitySensor传感器是一个接近传感器,当我们与某一形体的距离达到某一特定范围内时,此节就会通过出事件传出相关的信息。

SphereSensor可以将鼠标的移动转变为局部坐标系内形体绕原点的运动。

此节点有三个字段:

其中autoOffset,enable字段和CylinderSensor节点中相应的字段的作用完全相同,offset字段可以设置形体绕旋转的初始角度。

此节点还有三个出事件,isActive,rotation-changed,trackPoint-changed,其作用和上述节点中的相应事件的作用完全相同。

TimeSensor是一个用来记录时间变化的传感器,其enable字段和上述节点中的enable字段作用完全相同,cycleInterval字段可以设置时间传感器的周期时长,缺省设置为1秒;loop字段可以设置时间传感器是否开启循环模式,startTime和stopTime分别用来设置传感器的开始时间和结束时间。

此节点还有四个出事件,其中cycleTime事件在传感器每次的循环开始时向外发出一个时间值信息;fraction-changed向外界发送当前的归一化的时间值信息,是一个连续性变化的时间值信息;isActive事件的作用和上述节点中相应的时间作用完全相同。

Time事件则向外界发出一个时间传感器运行时的具体时间的信息。

TouchSensor可以让程序接收鼠标的点击与触摸信息,并将其与相同局部坐标系下的形体联系起来,通过插补器的作用,实现形体的动态交互。

VisibilitySensor传感器主要用在复杂的场景中,它的出事件的输出信息可以用来判断和它在同一坐标系下的形体是否显示在屏幕上。

24)Script节点的directOutput和mustEvaluate两个域的作用(P129)

Script节点是在vrml中用于编写脚本的节点,它和其它节点不同,它可以根据具体的功能需求定义自己的filed,eventIn和eventOut以及exposedFiled,它也有四个已经定义好的字段和入事件以及出事件。

其中的directOutput字段用来定义出事件是否直接地将值传给相应的节点,其值为Ture时,节点可以直接将事件传给相应的节点,否则就必须通过路由语句来讲事件传给相应的节点;mustEvaluate字段的作用是设置浏览器是否优先进行Script节点内容的运行,如果值为缺省值False时,则浏览器在Script节点需要时才运行脚本中的内容,否则,浏览器将尽快运行Script节点中的内容。

25)阅读论文,针对每一篇论文写出自己的理解或感悟

第一篇:

虚拟环境中物体间的碰撞检测是虚拟现实技术、动画技术、机器人技术中的一项不小的挑战,其基本任务是模拟空间中两个或两个以上物体彼此之间是否发生接触或穿透。

随着虚拟现实技术等新领域的涌现以及人们对场景真实性要求和用户交互实时性要求的不断提高,碰撞检测技术所面临的问题也日益突出,本博士论文作者全面深入地分析了这些问题。

个人认为此项碰撞性检测问题的研究,是可以应用到网络购物上的,尤其是网购衣服鞋子,例如,一件衣服是否合身,可以用碰撞性检测来得到相对客观的结论,如衣服合身则衣服与身体的距离在一个范围,这个范围由衣服版型决定,如衣服过小,拿贴身衣服来说,就相当于衣服与人身体发生了碰撞。

当然以上仅是我个人的想象,实现此项技术任重而道远。

第二篇:

VRML世界和Java语言,可大大地改善VR虚拟世界的真实性和交互性,有了Java程序的介入,便可以在VR中实现复杂的动画,响应键盘、鼠标、窗口等各类Java语言支持的事件。

建设一个优良的虚拟环境VRML世界和java语言的结合使用必不可少。

由此,在各种计算机语言和应用软件应运而生的现当代,没有哪一个事物可以独占鳌头,因此它们之间的合作很必要。

第三篇:

可以利用VRML实现机械产品虚拟仿真的技术,并且由二自由度并联机构给出一个交互仿真系统建立实现,借助VR技术可以可以显示出直观的全方位全角度实体。

确定部件之间的几何关系是解决并联机构运动问题的关键,通过分析计算并联机构的运动方式,比如移动、斜线、圆周运动等建立方程并且进行整合。

第四篇:

在VRML世界中常常需要建立几何或者物理模型,比如物体的几何形状、质量、相对体积、运动的速度等等。

真实或者接近真实的在VR中实现几何或者物理特性尤为重要,例如需要虚拟一个环境,那么观察者在戴上特定眼镜后的视觉感官就很重要,比如一个在草原的人模拟在一栋别墅里,那么别墅的大小,里面的陈设,别墅的外形都会给感官一个错觉。

因此对这些物理特征或几何特征的真实实现很必要。

第五篇:

在VR技术中实现文件访问数据库也有很大的实际应用价值,例如在国家相关机构的刑侦过程中,可以通过此项技术模拟犯罪现场的三维立体实景,从而便于相关人员更合理地分析。

为了便于提取分析,公安部门往往把这些信息用数据库进行管理,如果能从三维场景中直接调出数据库中对应的文字信息,那么会给犯罪现场的分析带来便利。

 

二、上机实践任务

1)建立一个每个面具有不同颜色且具备一定透明度的正方体;

2)应用Transform节点和USE语句,基于1)所建正方体建立一个魔方模型;

3)应用PROTO节点生成魔方原型节点(具备6个可以分别设置6个面颜色的域),并应用该原型节点生成两个魔方(场景1);

4)建立一个实木桌子模型(造型不限制,桌子腿要应用Extrusion节点),要求具备木材的纹理效果(场景2);

5)应用Inline节点,合并场景1和2,将魔方放置在桌子上,并设置背景(场景)。

 

 

6)应用LOD节点,实现视点距离桌子由远及近时,动态调用两个级别的场景模型,视点较远时显示桌子和魔方的粗略模型场景(立方体或球体近似替代),视点最近时显示桌子和魔

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2