OSG入门教程08.02:基本开发流程

本文测试OSG基本功能,以确保OSG框架可以使用。

使用Qt创建一个命令行工程。

pro

工程文件添加头文件、库文件

1
2
INCLUDEPATH += $$PWD/osg/include
LIBS += -L$$PWD/osg/lib -losgd -losgViewerd -losgUtild -losgDBd

将之前下载的Windows下头文件、库文件、动态库复制到编译目录。

main

在main.cpp中添加

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int main() {
// 创建Viewer对象,场景浏览器
osg::ref_ptr<osgViewer::Viewer> viewer = new osgViewer::Viewer();
// 创建场景组节点
osg::ref_ptr<osg::Group> root = new osg::Group();
// 创建一个节点,读取牛的模型
osg::ref_ptr<osg::Node> node = osgDB::readNodeFile("cow.osg");
// 添加到场景
root->addChild(node.get());
// 优化场景数据
osgUtil::Optimizer optimizer;
optimizer.optimize(root.get());
// 设置场景数据
viewer->setSceneData(root.get());
//设置窗口大小
viewer->setUpViewInWindow(0,0,800,600);
// 初始化并创建窗口
viewer->realize();
// 开始渲染
viewer->run();
return 0;
}

运行

OpenSceneGraph官网下载测试数据包。

解压后将里面的cow.osgImages目录复制到程序目录

运行程序

模型

流程

开发流程图为

flowchart LR

A(开始) --> B[头文件]
B --> C[场景浏览器]
C --> D[加载数据]
D --> E[场景树]
E --> F[渲染循环]
F --> G(结束)
  • 先添加头文件
  • 创建场景浏览器,用于渲染场景模型数据
  • 加载数据,外部模型或者场景数据
  • 设置场景树,创建场景节点,添加新节点的数据
  • 设置场景数据,添加新节点到场景树中
  • 渲染循环

OSG入门教程08.02:基本开发流程
https://blog.jackeylea.com/osg/test-of-osg-framework/
作者
JackeyLea
发布于
2024年3月10日
许可协议