OpenSceneGraph的基本流程(main函数):
转载请注明http://blog.youkuaiyun.com/boksic 如有疑问欢迎留言
int main() {
Group *scene = startupScene();
osgViewer::Viewer viewer;
viewer.setSceneData(scene);
viewer.setCameraManipulator(new osgGA::TrackballManipulator);
viewer.realize();
while (!viewer.done()) {
viewer.frame();
update(0.005); // do the update advancing 5ms
}
return 0;
}
- startupScene函数是自己建立的场景初始化函数,返回值是包含了场景图形数据的Group类
- 接着初始化Viewer类,以及提供了模型操作功能的TrackballManipulator
- 最后就是最为重要的渲染部分-Viewer的循环,每帧都会调用自定义的update函数
场景初始化(startupScene)
建立模型数据
这里使用的是程序内部初始化数据,包含了顶点坐标,面索引以及顶点颜色
(部分网上教程里还使用了顶点的颜色索引colorIndexArray,但该功能因为非常影响性能,现在的OSG中已废除了该功能。所以顶点与色彩应按对应关系初始化)