您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > Vega prime 基本应用
Vegaprime基本应用制作人:**2006.7.15主要内容如下:1.Vegaprime概述2.Lynxprime的基本应用3.几个常用的Vegaprime类4.Vegaprime工作流程1.Vegaprime概述•概念:简单的说Vegaprime(以后简称VP)是用于虚拟现实,实时视景仿真的一个实时三维驱动工具包。•在这个工具包中,包含了一个重要的编辑器Lynxprime(以后简称LP),它为VP提供一个人机交互界面。Vegaprime的系统结构:VP实时应用的组成•应用程序•应用配置文件•模型包•应用程序应用程序控制场景,模型在场景中的移动,和场景中其它大量的动态模型。实时应用程序包括汽车驾驶,动态模型的飞行,碰撞检测,和特殊效果,如爆炸。•应用配置文件应用配置文件包含了VP应用在初始化和运行时所需的一切信息。通过编译不同的ACF文件,一个VP能够生成不同种类的应用。ACF文件为扩展Mark-up语言(XML)格式。你可以使用VP编辑器LP来开发一个ACF,然后您可以使用VPAPI动态地改变应用中模型运动。对于实时应用来说,ACF不是必要的,但它可以将改动信息进行译码,记录在.cpp程序中,这样可以为您节省大量的时间。•模型包一般使用MulitGenCreator和ModelBuilder3D,以OpenFlight的格式(.flt)来创建实时3D应用中所有独立的模型。2.Lynxprime的基本应用LP是一个编辑器,用于增加不同种类的模型,为模型定义参数。这些参数都存贮于应用配置文件(ACF)中的一个模型结构内,例如观察者的位置,模型及它们在场景中的位置,在场景中的移动,光线,环境效果,及目标硬件平台。ACF文件包含了VP在初始化和运行时所需的信息。LP的界面构成LynXPrime用户界面包括四个部分:实例树形显示区(InstanceTreeView),用户操作区(GUIView),应用程序区(APIView),和工具条(Toolbar)和目录区(Menus)。所有这些区域将显示同一选定的对象的信息,但是这些信息是以不同格式进行安排的。你可以在一个或多个工作区进行操作来定义ACF。GUIView:用户操作区在用户界面中显示ACF模型及相关的参数,操作起来十分方便。InstanceTreeView:实例树形显示区显示目前正在操作的ACF文件和文件中包含的所有模型。APIView:API区显示选定的模型的所有可能的变量。Toolbar:LP工具条包括所有操作模型及属性的快捷按钮。下面通过一个简单的实例来认识一下LP的基本操作。3.几个常用的Vegaprime类•VpApp类vpApp类用来定义一个典型的VP应用的框架。它在vpApp.h中被定义了。所有子方法(membermethods)都被内嵌了。使用者可以拷贝和修改vpApp类。vpApp的主体封装了VP应用中经常用到的vpKernel的功能。vpApp类控制实时功能(包括定义ACF、配置仿真类、仿真循环、更新和退出)。•Methods:•vpApp()•initializeModule(constchar*)•beginFrame()•breakFrameLoop()•configure()•define(constchar*)•endFrame()•getFrameNumber()•getKernel()•isConfigured()•run()•unconfigure()•update()MethodsInheritedfromvuMemBase•getRef()•getSizeAllocated()•getSizeRequested()•ref()•unref()•vpKernel类VpKernel类是vsServiceMgr类的衍生类.核心功能包括帧循环的控制和vsServices的管理。VP程序中的定义,配置,帧循环等是在vpKernel类中定义的。•Methods•instance()•configure()•define(constchar*)•isConfigured•unconfigure()•update()•vpPipeline类vpPipeline类管理窗口和硬件图象管道之间的映射。•一些常用的方法:在窗口中加入新窗口:vpPipeline::addWindow()删除窗口:vpPipeline::removeWindow()与之密切关联的类还有vpWindow,vpChannel4.Vegaprime基本工作流程•初始化•定义•配置•仿真循环•关闭•初始化vp::initialize执行如下任务:检查license是否正确初始化静态变量(staticvariables)和单例类(singletonclasses)初始化内存分配(memoryallocator)初始化渲染库(renderinglibrary)初始化场景(scenegraph)初始化ACF剥析程序(ACFparser)初始化模块界面(moduleinterface)初始化内核(kernelclasses)•定义语句类实例可通过代码创建或通过传递ACF文件给vpKernel::define方法(或vpApp::define,若vpApp已经使用)。ACF文件中的类实例将在VP解析文件时自动创建。•配置配置从ACF中分解而来,同时将不同的类关联起来。例如,它将系统中定义的pipeline添加给服务管理器,并且为每个类配置相关的联系。configure功能是相互的,通过unconfigure可以将应用配置返回到configure前的状态。configure方法经常被用户反复运用。configure()例子//configuremyappapp-configure();•仿真循环(帧循环)仿真循环包括一个函数调用:voidvpApp::run()run()执行主要的仿真循环。这个功能会持续呼叫beginFrame(),接下来是endFrame()用来结束循环,当然还可以在循环过程中用breakFrameLoop()来结束循环。接着这项功能会呼叫unconfigure()。•关闭退出VPvp::shutdown();vp::shutdown执行如下任务:释放被kernelclasses分配的内存结束各模块以释放它们在应用中所占用的内存终止多线程将licenses返回给licenseserver#includevpApp.hintmain(intargc,char*argv[]){//初始化VPvp::initialize(argc,argv);//创建vpApp实例vpApp*app=newvpApp;//载入acf文件if(argc=1)app-define(simple.acf);elseapp-define(argv[1]);//配置应用app-configure();//帧循环app-run();//取消引用app-unref();//关闭,退出VPvp::shutdown();return0;}本讲完!谢谢各位!请多多指教。
本文标题:Vega prime 基本应用
链接地址:https://www.777doc.com/doc-3564600 .html