VegaPrime 基于VSG(Vega Scene Graph——MPI 公司先进的跨平台场景图形API),底层(OpenGL),同时包括Lynx Prime GUI (用户图形界面)工具,让用户既可以用图形化的工具进行快速配置,又可以用底层场景图形API 来进行应用特定功能的创建。它将先进的功能和良好的易用性结合在一起,帮助用户快速、准确地开发实时三维应用,加速成果的发布。基于工业标准的XML 数据交换格式,能与其它应用领域进行最大程度的数据交换。
针对用户特定要求,VegaPrime 还设计了多种功能增强模块,和VegaPrime 结合在一起,更进一步提升了应用开发的效率和适用性。
写作本文,主要是为了学习Vega Prime的基本使用,对VP的具体内部原理,不会过多的深入探究。
1、VP的hello world
VP提供了acf文件的编辑功能,通过该功能,用户可以通过在acf文件中的编辑,完成场景的选择、需要加载的模型的初始位置和姿态的定义、程序所需要用到的模型的加载等功能;然后,用户通过编写代码,在程序中控制VP内核加载该acf,并进行渲染,完成场景的呈现。
1.1 编辑acf文件
双击运行LynX Prime 3.0后,系统会自动新建一个默认场景的acf文件。直接将这个文件保存,作为我们初探VP世界的入口。
1.2 编写代码加载acf文件
#include <vsgu.h>
#include <vp.h>
#include <vpApp.h>
#include "vuAllocTracer.h"
int main(int argc, char *argv[])
{
vuAllocTracer tracer;
// 初始化VP环境
vp::initialize(argc, argv);
// 创建vpApp类实例
vpApp *app = new vpApp;
// 加载acf文件
if (argc <= 1)
app->define("vp_simple.acf");//注意此处为acf文件路径
else
app->define(argv[1]);
// 设置app对象属性
app->configure();
// 进入主渲染循环,主线程会被阻塞在这里
app->run();
// 释放VP中对象的资源
app->unref();
// 关闭VP
vp::shutdown();
return 0;
}
1.3 运行效果
程序编译运行之后,会有两个窗口,一个是console窗口,另一个为渲染结果显示窗口。
图1 console窗口
图2 渲染窗口
Vega Prime的Hello World已经完成。程序的分析根据代码中的注释理解即可。