osgViewer::Viewer
单视图的管理是通过osgViewer::Viewer来实现的,可为一个单独的场景scene保存一个单独的view。在osgViewer::Viewer中,只允许单视图,单视图可以同时包含多个相机渲染,也可以在多窗口中渲染。为了能够进行正常的渲染,还需要创建一个图形环境(默认的情况下已经创建了一个)。有时为了方便控制场景渲染,需要设置一个合适的图形环境窗口。
osg::Referenced负责内存安全策略,特别是指超级指针。
osg::Object负责对象安全策略。
osgViewer:ViewerBase负责渲染线程。
osgGA::GUIActionAdapter负责与操作系统UI交互。
osgViewer::View负责场景的数据加载,时间处理。
osg::View负责状态与相机。
关键方法及属性如下:
//关键方法
/** Execute a main frame loop.
* Equivalent to while (!viewer.done()) viewer.frame();
* Also calls realize() if the viewer is not already realized,
* and installs trackball manipulator if one is not already assigned.
*/
virtual int run();
osgViewer::View

osg::View主要用来管理所有的相机视图。它包含一个主相机和N个从属相机(Slave)。如果View仅有一个主相机,则该主相机用来负责控制和渲染场景视图。如果包含从属相机,则主相机用来负责控制管理视图,从属相机用于渲染场景。可以挂节事件、处理事件、并负责创建相机和创建图形环境窗口。
关键方法及属性如下:
/** Apply a viewer configuration to set up Cameras and Windowing. */
void apply(ViewConfig* config);
/** Set the sene graph data that viewer with view.*/
virtual void setSceneData(osg::Node* node);
/** Set the CameraManipulator that moves the View's master Camera position in response to events.
* The parameter resetPosition determines whether manipulator is set

本文介绍了OSG图形库中视图管理的相关类,包括osgViewer::Viewer、osgViewer::View和osg::Camera。osgViewer::Viewer用于单视图管理,支持多相机渲染和多窗口。osgViewer::View负责场景数据加载和时间处理,而osg::Camera则管理模型-视图矩阵。每个View包含一个主相机和可选的从属相机,用于控制和渲染场景。
最低0.47元/天 解锁文章
463

被折叠的 条评论
为什么被折叠?



