【Vega Prime】001 - 初探Vega Prime

      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已经完成。程序的分析根据代码中的注释理解即可。

猜你喜欢

转载自blog.csdn.net/freehawkzk/article/details/80193614