欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 焦点 > 十二、OSG学习笔记-Control

十二、OSG学习笔记-Control

2025/7/8 22:05:00 来源:https://blog.csdn.net/weixin_36323170/article/details/146082287  浏览:    关键词:十二、OSG学习笔记-Control

上一章节:

十一、OSG学习笔记-操作系统接口-CSDN博客https://blog.csdn.net/weixin_36323170/article/details/145891502

本章节代码:

OsgStudy/Controls · CuiQingCheng/OsgStudy - 码云 - 开源中国https://gitee.com/cuiqingcheng/osg-study/tree/master/OsgStudy/Controls

一、Viewer介绍

osg::Referenced: 负责内存安全策略,智能指针ref_ptr;

osg::Object:负责对象的安全策略,数据IO的写入写出;

1、osgViewer::ViewerBase类中成员变量的介绍:

ViewerBase实例代码:

#include <windows.h>
#include <iostream>#include <osgViewer/Viewer>
#include <osgDB/ReadFile>
#include <osgGA/TrackballManipulator>
#include <osgGA/GUIEventAdapter>int main() {osg::ref_ptr<osgViewer::Viewer> viewer = new osgViewer::Viewer;viewer->setSceneData(osgDB::readNodeFile("glider.osg"));// 设置默认操作器viewer->setCameraManipulator(new osgGA::TrackballManipulator);viewer->realize();viewer->setKeyEventSetsDone(osgGA::GUIEventAdapter::KEY_KP_Space);// 线程渲染模式std::cout << "Threading model: " << viewer->getThreadingModel() << std::endl;viewer->run();/*  替代 run()的作用int frameNum = 300;while (!(viewer->done())){if (frameNum){viewer->setDone(true);std::cout << "No need to Continue " << frameNum << std::endl;// 300帧渲染完了,就推出渲染}frameNum--;viewer->frame();}*/return 0;
}

2、Osg::View的用法:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词