完整版基于VC++的三维视景中虚拟实体的路径设置毕业设计.docx

上传人:b****3 文档编号:754713 上传时间:2022-10-12 格式:DOCX 页数:19 大小:745.81KB
下载 相关 举报
完整版基于VC++的三维视景中虚拟实体的路径设置毕业设计.docx_第1页
第1页 / 共19页
完整版基于VC++的三维视景中虚拟实体的路径设置毕业设计.docx_第2页
第2页 / 共19页
完整版基于VC++的三维视景中虚拟实体的路径设置毕业设计.docx_第3页
第3页 / 共19页
完整版基于VC++的三维视景中虚拟实体的路径设置毕业设计.docx_第4页
第4页 / 共19页
完整版基于VC++的三维视景中虚拟实体的路径设置毕业设计.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

完整版基于VC++的三维视景中虚拟实体的路径设置毕业设计.docx

《完整版基于VC++的三维视景中虚拟实体的路径设置毕业设计.docx》由会员分享,可在线阅读,更多相关《完整版基于VC++的三维视景中虚拟实体的路径设置毕业设计.docx(19页珍藏版)》请在冰豆网上搜索。

完整版基于VC++的三维视景中虚拟实体的路径设置毕业设计.docx

完整版基于VC++的三维视景中虚拟实体的路径设置毕业设计

    内容摘要

随着虚拟现实技术的应用越来越广泛,虚拟环境系统得到很快发展。

在虚拟仿真环境中经常要事先设置虚拟对象的运动路径,而仿真软件VegaPrime提供的PathTool工具能很好地解决了这一问题。

本文是通过采用VegaPrime和VC++作为软件平台来实现运动路径的变化显示,主要讨论了基于仿真软件VegaPrime的路径和导航器基本原理,详细阐述了如何应用这两个模块在LynxPrime中进行路径的设定,然后介绍了路径和导航器在VC++编程中的实现,最后基于实践应用探讨了仿真环境中虚拟实体运动路径的一些解决方法。

索引关键词:

路径导航控制点张力

第一章绪论

1.1研究背景

随着计算机和信息技术等高新技术的飞速发展,计算机仿真技术也正在全球范围内得到迅速的推动,并在航空、航天、地面战场模拟以及其它复杂任务中发挥着越来越重要的作用,虚拟仿真环境开发成为当前研究的亮点,而三维视景中虚拟实体的运动体现得越来越重要了。

在虚拟仿真环境开发过程中,经常会遇到虚拟对象的运动路径设置。

一般情况是事先确定运动路线,记录路线上的若干控制点的位置,点与点的连线采取数据平滑处理,运动对象按照设定的路线运动。

VegaPrime是SGIPerformet基础上发展起来的环境仿真软件环境,它把常用的软件工具和高级仿真功能结合起来,可使用户以简单的操作、迅速的创建、编辑和运行复杂的仿真程序。

该软件具有良好的图形界面Lynx,完整的C语言应用程序接口API,丰富的适用库函数以及大量的功能模块,其中路径(Pathing)和导航(Navigator)模块是VegaPrime提供的两个路径控制模块。

应用这两个模块及其接口函数,用户可以为预先确定的路径创建关键点,然后通过虚拟场景的运动对象用Navigator穿行设定的Path来自动对运动进行控制。

1.2研究的目的和意义

本文中我们要研究的是以面向对象的思想对运动平台的三维实体运动路径的制作进行分析,提炼出了创建点集、设定路线、实体建模以及规定策略、导航等步骤;应用VegaPrime软件设置一系列动态的、有规律的运动路径,该软件可以根据用户需求进行高级功能仿真和特殊仿真需求的实现;还应用VC环境灵活的处理较复杂的路径设定

设计此课题的目的,是在仿真过程提供一个软件平台的基础之上,不断掌握整个软件的功能和分析该软件不完善之处。

通过利用VegaPrime软件完成相关任务,帮助规划人员确定最佳运动路径设定的方案,解决虚拟对象在运动路径中的很多问题。

VegaPrime软件中的PathTool是路径和导航类的图形设置界面,并直接显示所要编辑的三维虚拟场景。

使用这个工具,路径控制点将可以在三维场景中移动,在地形中插入、删除;导航器可以在PathTool实时环境中创建、编辑导航标记,并预览控制点的按照导航标记的运动过程。

VegaPrime的其它模块都支持VegaPrime导航器为它们特殊的导航功能,并可以设置自己的路径导航。

如果用PathTool创建了一条路径和一个导航器,路径和导航数据就作为路径文件和导航标记文件存在磁盘上,VegaPrime其它基本模块在配置中读入这些文件无需编写任何代码。

路径和导航也可以完全通过API接口函数编程创建。

在上面所述的课题背景下,研究基于三维视景中虚拟实体的运动路径设定具有很大的实际意义和可操作并成功的应用到了理学院漫游、野外综合演练仿真系统的虚拟仿真环境中,效果良好。

第二章VegaPrime概述

2.1VegaPrime的基本情况

VegaPrime是MultiGen-Paradigm公司开发的一个对象的著名虚拟现实平台,它可以方便地完成场景的构建和三维模型的绘制,并支持许多的特效。

VegaPrime作为一种硬件虚拟现实的软件接口,并且作为一个独立的工作平台,独立于硬件设备、窗口系统,用它编写的软件可以在WindowsNT以及更高级的操作系统间移植。

它是模拟虚拟现实和实时的应用软件,是开发实时视觉和听觉仿真、虚拟现实和通用的视频应用的业界领先的软件环境。

它把先进的仿真功能和易用的工具结合到一起,创建了一种使用最简单,但最具有创造力的体系结构,来创建、编辑和运用高性能的实时应用。

结合先进的模拟技术通过简单可利用的应用工具,它提供了一种能够快速准确的建立复杂的应用模型的方法,并且能够提供复杂的虚拟模拟原型。

2.2VP和LP的简介

Vegaprime(以后简称VP)是用于虚拟现实,实时视景仿真的一个实时三维驱动工具包。

在这个工具包中,包含了一个重要的编辑器Lynxprime(以后简称LP),它为VP提供一个人机交互界面。

VegaPrime原意是用来连接LynXPrime的。

虽然VegaPrime包含了所有的建立一个应用程序所必需的Api,但是LynXPrime简化了开发过程,不用写任何代码就可以配置一个应用程序。

LynXPrime是一个可以增加类的接口,定义接口参数的编辑器。

这些参数可以是观测点的位置,场景中的对象位置、运动,灯光,环境效果,目标硬件平台等等,都可以在一个acf文件存为一个接口框架。

一个acf文件包含一个VegaPrime应用程序初始化必须的和运行时要用到的信息,可以在活动预览窗口预览在acf中的定义活动,预览窗口可以交互式的定义acf文件。

活动预览窗口会持续不断的检查acf文件的变化,一旦有改变发生,它就会用新的数据更新VegaPrime的仿真窗口。

本文也可以用C++来开发可视化的应用程序。

可以在应用程序里根据特定环境修改接口值,例如当某个物体碰到了一个目标物时可以指定相应的位置变化。

VegaPrime应用程序也可以在一个图形通道里面加载acf文件。

当应用程序编译完成后就可以执行了。

关于LynXPrime和在VegaPrime中工作的详细信息可以查看VegaPrimeProgrammer’sGuide。

2.2.1VP系统结构

图2-1VP系统结构

2.2.2VP的应用组成

(1)应用程序

应用程序控制场景,模型在场景中的移动,和场景中其它大量的动态模型。

实时应用程序包括汽车驾驶,动态模型的飞行,碰撞检测,和特殊效果,如爆炸。

在VP外的开发平台创建应用程序,文件是以.ccp格式存档。

并包含了C++可以调用的VP库的功能和分类。

在编辑完成后就形成了一个可执行的实时3D应用文件。

(2)应用配置文件

应用配置文件包含了VP应用在初始化和运行时所需的一切信息。

通过编译不同的ACF文件,一个VP能够生成不同种类的应用。

ACF文件为扩展Mark-up语言(XML)格式。

首先可以使用VP编辑器LP来开发一个ACF,然后可以使用VPAPI动态地改变应用中模型运动。

对于实时应用来说,ACF不是必要的,但它可以将改动信息进行译码,记录在.cpp程序中,这样可以节省大量的时间。

(3)模型包

以前,通常是通过计算机辅助设计系统或几何学来创建单个模型,但这些方法在实时应用很难进行编码。

现在,可以使用MulitGenCreator和ModelBuilder3D,以OpenFlight的格式来创建实时3D应用中所有独立的模型。

可以使用CreatorTerrainStudio(CTS),以MetaFlight格式来生成大面积地形文件。

并可以使用这两种格式在VP中增加模型文件。

2.2.3LynXPrime用户界面

LynXPrime用户界面包含四个不同的部分:

树视图(InstanceTreeView)、GUI视图(GUIView)、API视图(APIView)、工具栏(ToolBar)。

对于已选择的类来说所有视图显示的信息除了一小部分格式不同外大部分相同。

还可以在多于1个视图中定义acf.

图2-2用户界面

(1)GUI视图(GUIView)

在用户界面中显示,可以很容易的使用,GUI视图显示acf的接口和参数。

可以在下拉列表中选择参数,在文本域里输入值。

当打开LynXPrime,第一个GUI视图被命名为myKernel,它是VegaPrime中的Kernal类的一个实例。

Kernel是应用程序的起点,它控制所有的实时操作。

(2)实例树视图(InstanceTreeView)

实例树视图显示了当前加载的acf文件和它的所有接口。

实例树视图显示了由父实例和子实例组成的实例等级图中的联结关系。

能看到在程序中实例间的相互关系。

如果在树中选择了一个实例,所有的视图都会同时显示它。

如果在文件中的一个实例的引用指向了不止一个地方,这个实例的名字就会跟在一个蓝色的箭头,向下的箭头表示文件第一次被使用。

向上的箭头表示有另外的引用指向实例。

图2-3实例树视图

在上面的例子中,myPipeline被展开,显示了myChannel连接myWindow,这是myChannel的第一个引用,所以前面有个下箭头。

myChannel也被myObserver引用,在这个例子中它前面有个上箭头。

当选择了一个实例,实例的属性和当前值会同时显示在GUI视图和API视图中。

介绍实例树视图几个主要部分:

1.通道(Pipeline)模块

通道指的是VegaPrime应用程序运行平台与图形生成硬件设备相连的显示终端屏幕,它决定了仿真应用提供给用户的可视范围的大小,表现为图形硬件所支持的最大分辨率。

注意:

图形硬件所支持的分辨率跟终端显示设备所使用的分辨率是不同的两个概念,大型的图像工作站都支持多个显示设备的同时输出。

2.窗口(Windows)模块

窗口在VegaPrime中代表的是一条渲染通道,渲染通道指的是可视化仿真系统实现中的整个渲染流程,所以要执行VegaPrime应用程序必须先定义一个窗口。

用户可以指定窗口在屏幕上的位置,由于屏幕支持图形硬件的最大分辨率,所以窗口的大小实际上可以超出当前显示终端的分辨率设置,其效果是一部分窗口在显示器上看不见。

3.频道(Channel)模块

频道代表了用户用以观察场景的特定视角,表现为窗口中的一个矩形区域,实际上所有实时渲染都是通过频道进行的,所以场景要显示出来至少还要定义一个频道。

一个窗口中可以包含任意多条频道,它们在窗口中的位置甚至还可以重叠。

4.视点(Observer)模块

视点是VegaPrime中的一个非常重要的概念,也是核心概念之一。

一个视点类似于一台摄像机或一台设置在数据库中的传感器,视点控制管理并且被锁定在一个场景运动体上,也可以同一个运动模型进行放置。

观察一个场景必须要由一个视点。

视点使用通道决定场景的观察体,就像照相机使用镜头观测区域一样,每个视点可以同时观察多个通道。

最后应用程序显用户最终是通过观察者的视角,从本质上讲是通过通道来观察场景的。

5.场景(Scene)模块

场景就是所有载入的模型对象的集合。

(3)API视图(APIView)

API区显示选定的模型的所有可能的变量。

在这里可以定义模型的值,就象在用户操作区一样。

但是在API中,可以直接给变量赋值。

当更改应用中的参数时,可参考API区中要使用的变量的值。

(4)工具条(ToolBar)

LynXPrime工具条包括所有操作模型及属性的快捷按钮。

这些功能同样可以在LynXPrime的目录中找到。

第三章虚拟实体的运动路径设定的实现

3.1Path和Navigator模块的基本原理

在VegaPrime模块库中的路径(Path)和导航器(Navigator)在虚拟场景中提供了控制运动对象轨迹的功能。

路径就是一组在场景中设置了的控制点;导航器是路径中与这些控制点相关的一组数据信息集合。

一个特定的导航器可以解释出路径的数据结构,并可以通过路径控制导航器穿过其控制

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1