1、“.....用函数来实现,详细的文件格式有结构体给出。在碰撞检测,以及物体三维显示中,场景中各物体的绘制均是采用读取模型文件来建立的。首先读取个文件,在该文件中设置了场景的对象树目各对象的名称和对象的初始位置。实验中各参数值如图所示场景中对象划分个数场景的对象名称场景对象初始坐标场景对象初始坐标场景对象初始坐标图实验中数据读取文件中参数值的实现代码如下,读出对象的数量读出对象的名称和对象的初始位置然后根据读取的每个对象名称,可以获得该对象所在的文件名,通过这些文件名读取外部文件可以继续将各个对象的各种参数读出来。如顶点数目面的数目摩擦系数纹理参数等。本程序中采用面模型来实现三维物体的建模,考虑到物体建模的复杂度,采用了最常用的多面体建模,具体的来说,输入模型是组无拓扑约束的三角面片。其中对物体三维空间的划分,是靠自己来定义的......”。
2、“.....每个三角面片的顶点在空间的坐标等等,这些信息都存在文件中。三维物体的建模是通过调用库函数在三维空间中绘制三角形面片来实现。物体分的越细,三角面片就越小,真实感就越强。缺点就是,增加了碰撞检测算法的复杂度,不利于实时性的监测,同时生成三维实体所耗费的时间增加。为了能够逼真的看到物体的建模过程,在程序中用两种方法来实现,种是线框模式绘制种是颜色实体绘制。在线框模式下如图中可以清楚地看到若干个点绘制三角形片的框架。图线框模式绘制在虚拟场景中地板是静止规则简单的物体,因此对于地板的建模我们只需要调用库函数即可。场景中地板的绘制代码如下绘制地板,,,,,,,,,,,,,,,,,,,,,,,场景绘制为了虚拟场景到达更加逼真的效果,需要对虚拟场景进行各种处理,比如,添加光照纹理等。可以根据光照条件创造出和真实世界非常接近的图形来......”。
3、“.....环境光不来自任何特殊方向,它有光源,但是被周围的房间或场景多次反射后以至于变得没有方向。被环境光照射的物体表面各个方向都均等受光。散射光来自个方向,被物体表面均匀地反射。即使光是被均匀反射回去的,它直射的物体表面比从个角度照射过来时要亮。比较典型的散射光源是荧光照明设备或中午时入射侧窗的太阳光束。镜面光和散射光样有方向性,但被强烈地反射到另特定的方向。高亮度的镜面光往往能在被照射的物体表面上产生称之为亮斑的亮点。本实例中光源定义代码如下光源定义,,,,,,在绘制多面体圆柱体易拉罐和立方体箱子时,使用函数即法线矢量定义了物体表面在空间的方向,尤其是相对光源的方向。在定义虚拟场景中物体时,同时也定义其法线矢量。在本实例中多个顶点共用个法线矢量。虚拟场景的物体建模是三角形描述表面......”。
4、“.....然后对相邻面的法线取平均,相邻多边形的公用顶点使用平均法线。在本场景中立方体箱子本身就是个多边形,就不用求平均法线。在对象的面的数据结构中,有顶点,则法线矢量为最后再对方向的法线矢量单位化。例如,,,,使用光照场景中增加了光照实现了高度的真实感,然而仍然感觉场景比较单调没有生机。在此我们可以利用幅图像,比如真实表面的照片或细节,然后将这幅图像应用到多边形面上,这幅图像称为纹理。本实例中纹理参数是通过读取外部文件获得。部分代码如下启动纹理纹理映射定义纹理图像设置纹理坐标,关闭纹理为了更好绘制碰撞检测的全过程,可以采用多种模式显示场景,包括线框模式颜色实体模式和纹理实体模式,首先是场景的初始化操作,包括创建和使用应用使用深度测试和投影矩阵......”。
5、“.....参数标识出将哪个矩阵堆栈用于接下来的矩阵操作,参数可为或中任何值。表示矩阵操作将作用于模型视图矩阵堆栈用于在场景中移动对象表示矩阵操作将作用于投影矩阵堆栈用于定义修剪空间表示矩阵操作将作用于纹理矩阵堆栈处理纹理坐标在本程序中所使用的是投影矩阵和模型视图矩阵。即用于将创建的模型转换成屏幕上的最终图像用来场景中物体的模型变换,如平移旋转碰撞检测算法的应用基础理论本场景中碰撞检测认为是弹性碰撞,整个程序的实现涉及到许多弹性碰撞理论。下面有必要介绍下弹性碰撞的理论。如果两个物体在碰撞前后内部状态不发生改变,则这种碰撞称为弹性碰撞或弹性散射。弹性碰撞的特点是动量守恒角动量守恒和机械能守恒。发生弹性形变的物体,由于要恢复原状而对跟它接触的物体产生的相互作用力叫弹力......”。
6、“.....弹力产生的条件物体发生弹性形变和物体之间撞检测实现场景如下图图所示图碰撞检测初始场景图碰撞后的场景本程序的优缺点本程序采用了包围盒层次树算法来实现三维物体的空间碰撞检测。所做的工作如下物体的建模对三维物体的空间表述,与反映物体的逼真度密切联系在起的。物体的逼真度越高,物体的空间表示就越复杂,则物体的剖分越细。对于程序本身所造成的影响具体表现在资源消耗增大,对硬件的要求增高,实时检测性能越差,不能正确的反映空间物体碰撞的真实效果,产生失真。所以,逼真度与算法的复杂度是矛盾的,只能在它们中间找个平衡点以求得两方面的折中。本程序在兼顾两者的基础上,对物体进行了不同个数的三角面片划分,在满足实时性的同时,最大限度的满足了人眼对视觉的需求。其中对于三角面片的划分,每个三角面片顶点在空间的分布信息存在文件中,靠读这些文件来进行物体的初始化......”。
7、“.....它每隔段时间片,来执行函数。如果不能满足碰撞检测的精度,可以增加循环步长来提高碰撞检测的精度。,在程序中通过循环函数实现比较精确的碰撞检测,。碰撞检测算法的实现,算法采用了包围盒层次树来实现碰撞的检测。具体的来说,即采用底层包围盒算法进行粗略的碰撞检测,用来检测是不是每个物体之间发生了碰撞,如果物体间有碰撞发生,在采用子结点包围盒进行精确的碰撞检测,即对物体中的每个最小单元三角面片进行检测,如果发生了碰撞,就认为两个物体发生了碰撞,如果三角面片取的足够多,就可以做到精确的检测。碰撞的响应,为了真实的反映客观世界,程序中对碰撞后的响应做了分析,根据物理学和运动学的相关理论,求得力速度和空间位置三者之间的关系。依靠最终各个三角面片顶点在空间的位置,来进行三维物体的实时重画。本程序采用了合理的数据结构,尽量使程序简洁......”。
8、“.....由于尽可能的降低循环次数,使程序本身更好的满足了实时性的需要。总之,本程序所实现的应用,在系统复杂度不是很高的前提下,比较真实地表达了三维物体的碰撞过程,并且实时性高,能适应人眼对物体运动的要求。存在的缺点由于对物体的碰撞检测,采用的是全部搜索,每个物体每个物体的各个三角面片每次都进行碰撞的检测,使算法的复杂度增加,为系统增加了很多额外的开销。对于精确程度很高的碰撞检测,本算法有局限性,不是适合碰撞检测的任何场合。对于要求精度很高的碰撞检测,本算法不能满足要求。对硬件的要求比较高,由于算法有定的复杂度,为了满足碰撞检测系统的需要。对硬件的要求偏高,般只应用于。第六章总结与展望目前,虚拟现实逼真性的研究大量集中在视觉听觉和触觉等几个方面。例如采用几何建模方法来表示虚拟环境中的实体,然后使用纹理映射消隐和光照计算等方法生成逼真的环境......”。
9、“.....还需要有逼真的状态变化,例如,实体位置方向和形状等状态变化规律与真实世界中相同或相似,即虚拟现实中实体需要具有运动逼真性,这就涉及到虚拟现实中项重要技术碰撞检测技术。本论文对于碰撞检测技术的研究的主要工作如下第,介绍了些虚拟现实发展及现状,然后论述了研究碰撞检测的意义和碰撞检测技术的特点第二,介绍了关于碰撞检测技术的些基本知识,着重说明常用的些碰撞检测算法,如空间剖分法包围盒层次树法和基于特征的距离计算增量算法。并且比较这些算法的优缺点第三,介绍有关编程些基础知识和面向对象编程特点第四,利用几何建模纹理映射消隐和光照计算等方法生成逼真的环境。为了达到沉浸感的效果,运用了碰撞检测技术。所采用的方法是包围盒层次树法以达到精确的碰撞检测。本论文应用实例是运用包围盒层次树算法实现三维物体的空间碰撞检测......”。
1、手机端页面文档仅支持阅读 15 页,超过 15 页的文档需使用电脑才能全文阅读。
2、下载的内容跟在线预览是一致的,下载后除PDF外均可任意编辑、修改。
3、所有文档均不包含其他附件,文中所提的附件、附录,在线看不到的下载也不会有。