vega prime 基本应用

28
Vega prime Vega prime 基基基基 基基基基 基基基基基基** ** 2006.7.15 2006.7.15

Upload: takara

Post on 17-Mar-2016

248 views

Category:

Documents


8 download

DESCRIPTION

Vega prime 基本应用. 制作人:** 2006.7.15. 主要内容如下:. Vega prime 概述 Lynx prime 的基本应用 几个常用的 Vega prime 类 Vega prime 工作流程. 1. Vega prime 概述. 概念:简单的说 Vega prime (以后简称 VP )是用于虚拟现实,实时视景仿真的 一个实时三维驱动工具包。 在这个工具包中,包含了一个重要的编辑器 Lynx prime( 以后简称 LP) ,它为 VP 提供一个 人机交互界面 。. Vega prime 的系统结构:. VP 实时应用的组成. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Vega prime  基本应用

Vega prime Vega prime 基本应用基本应用制作人:制作人: ****2006.7.152006.7.15

Page 2: Vega prime  基本应用

主要内容如下:主要内容如下:1. Vega prime 概述2. Lynx prime 的基本应用3. 几个常用的 Vega prime 类4. Vega prime 工作流程

Page 3: Vega prime  基本应用

1. Vega prime 1. Vega prime 概述概述• 概念:简单的说 Vega prime (以后简称

VP )是用于虚拟现实,实时视景仿真的一个实时三维驱动工具包。• 在这个工具包中,包含了一个重要的编辑

器 Lynx prime( 以后简称 LP) ,它为 VP 提供一个人机交互界面 。

Page 4: Vega prime  基本应用

Vega prime 的系统结构:

Page 5: Vega prime  基本应用

VPVP 实时应用的组成实时应用的组成• 应用程序• 应用配置文件• 模型包

Page 6: Vega prime  基本应用

• 应用程序 应用程序控制场景,模型在场景中的移动,和场景中其它大量的动态模型。实时应用程序包括汽车驾驶,动态模型的飞行,碰撞检测,和特殊效果,如爆炸。

Page 7: Vega prime  基本应用

• 应用配置文件 应用配置文件包含了 VP 应用在初始化和运行时所需的一切信息。通过编译不同的 ACF 文件,一个 VP 能够生成不同种类的应用。 ACF 文件为扩展 Mark-up 语言( XML )格式。 你可以使用 VP 编辑器 LP 来开发一个 ACF ,然后您可以使用 VP API 动态地改变应用中模型运动。对于实时应用来说, ACF 不是必要的,但它可以将改动信息进行译码,记录在 .cpp 程序中,这样可以为您节省大量的时间。

Page 8: Vega prime  基本应用

• 模型包 一般使用 MulitGen Creator 和 ModelBuilder

3D ,以 OpenFlight 的格式( .flt )来创建实时 3D 应用中所有独立的模型。

Page 9: Vega prime  基本应用

2.Lynx prime 2.Lynx prime 的基本应用的基本应用 LP 是一个编辑器,用于增加不同种类的模型,为模型定义参数。这些参数都存贮于应用配置文件( ACF )中的一个模型结构内,例如观察者的位置,模型及它们在场景中的位置,在场景中的移动,光线,环境效果,及目标硬件平台。 ACF 文件包含了 VP 在初始化和运行时所需的信息。

Page 10: Vega prime  基本应用

LPLP 的界面构成的界面构成 LynX Prime 用户界面包括四个部分:实例树形显示区( Instance Tree View ),用户操作区( GUI View ),应用程序区( API View ),和工具条( Toolbar )和目录区( Menus )。所有这些区域将显示同一选定的对象的信息,但是这些信息是以不同格式进行安排的。你可以在一个或多个工作区进行操作来定义 ACF 。

Page 11: Vega prime  基本应用

GUI View: 用户操作区在用户界面中显示 ACF 模型及相关的参数,操作起来十分方便。Instance Tree View :实例树形显示区显示目前正在操作的 ACF 文件和文件中包含的所有模型。 API View: API 区显示选定的模型的所有可能的变量。 Toolbar: L P 工具条包括所有操作模型及属性的快捷按钮 。

Page 12: Vega prime  基本应用

下面通过一个简单的实例来认识一下 LP 的基本操作。

Page 13: Vega prime  基本应用

33.. 几个常用的 几个常用的 Vega primeVega prime 类类• VpApp类 vpApp 类用来定义一个典型的 VP 应用的框架。它在 vpApp.h 中被定义了。所有子方法( member methods )都被内嵌了。使用者可以拷贝和修改 vpApp 类。 vpApp 的主体封装了 VP 应用中经常用到的 vpKernel 的功能。 vpApp 类控制实时功能(包括定义 ACF 、配置仿真类、仿真循环、更新和退出)。

Page 14: Vega prime  基本应用

• Methods:• vpApp()• initializeModule(const char *)• beginFrame() • breakFrameLoop() • configure() • define(const char*)• endFrame()• getFrameNumber()• getKernel() • isConfigured() • run() • unconfigure() • update()

Page 15: Vega prime  基本应用

Methods Inherited from vuMemBase• getRef()• getSizeAllocated()• getSizeRequested()• ref() • unref()

Page 16: Vega prime  基本应用

• vpKernel 类 VpKernel 类是 vsServiceMgr 类的衍生类 . 核心功能包括帧循环的控制和 vsServic

es 的管理。 VP 程序中的定义,配置,帧循环等是在 vpKernel 类中定义的。

Page 17: Vega prime  基本应用

• Methods• instance() • configure() • define(const char*) • isConfigured• unconfigure() • update()

Page 18: Vega prime  基本应用

• vpPipeline 类 vpPipeline 类管理窗口和硬件图象管道之间的映射。

Page 19: Vega prime  基本应用

• 一些常用的方法:在窗口中加入新窗口:vpPipeline::addWindow()删除窗口: vpPipeline::removeWindow()

与之密切关联的类还有 vpWindow, vpChannel

Page 20: Vega prime  基本应用

44..Vega prime Vega prime 基本工作流程 基本工作流程 • 初始化• 定义• 配置• 仿真循环• 关闭 

Page 21: Vega prime  基本应用

• 初始化 vp::initialize执行如下任务: 检查 license 是否正确 初始化静态变量( static variables )和单例类( singleton classes ) 初始化内存分配( memory allocator ) 初始化渲染库( rendering library ) 初始化场景( scene graph ) 初始化 ACF剥析程序( ACF parser ) 初始化模块界面( module interface ) 初始化内核( kernel classes )

Page 22: Vega prime  基本应用

• 定义语句定义语句 类实例可通过代码创建或通过传递 ACF文件给 vpKernel::define 方法 ( 或 vpApp::d

efine, 若 vpApp已经使用 ) 。 ACF 文件中的类实例将在 VP解析文件时自动创建。

Page 23: Vega prime  基本应用

• 配 置配 置 配置从 ACF 中分解而来,同时将不同的类关联起来。例如,它将系统中定义的 pipeline添加给服务管理器,并且为每个类配置相关的联系。

configure 功能是相互的,通过 unconfigure 可以将应用配置返回到 configure 前的状态。 configure 方法经常被用户反复运用。

configure ()例子 //configure my app app->configure ();

Page 24: Vega prime  基本应用

•仿真循环(帧循环)仿真循环(帧循环) 仿真循环包括一个函数调用: void vpApp::run () run ()执行主要的仿真循环。这个功能会持续呼叫 beginFrame (),接下来是

endFrame ()用来结束循环,当然还可以在循环过程中用 breakFrameLoop ()来结束循环。接着这项功能会呼叫 unconfigure ()。

Page 25: Vega prime  基本应用

• 关闭关闭 退出 VP vp::shutdown (); vp::shutdown执行如下任务: 释放被 kernel classes 分配的内存 结束各模块以释放它们在应用中所占用的内存 终止多线程 将 licenses返回给 license server

Page 26: Vega prime  基本应用

#include <vpApp.h>int main(int argc, char *argv[]){// 初始化 VPvp::initialize(argc, argv);// 创建 vpApp 实例vpApp *app = new vpApp; //载入 acf 文件if (argc <= 1)app->define("simple.acf");elseapp->define(argv[1]);

Page 27: Vega prime  基本应用

// 配置应用app->configure();// 帧循环app->run();//取消引用app->unref();// 关闭,退出 VPvp::shutdown();return 0;}

Page 28: Vega prime  基本应用

本讲完!谢谢各位!请多多指教。