OSG学习笔记——1
osg第3讲笔记
预备知识:超级指针–osg::ref_ptr<>
超级指针存在的意义:资源必须在它使用前先申请,在使用后不久被释放。而人为的申请和释放很难保证申请和释放的合理性。
超级指针控制的原理:利用计数器,记录当前资源被申请的次数,当计数为0时,该资源将被释放。
加载模型和帮助
初学,有问题的话欢迎大家批评指正和探讨,想一起探讨的也可以加我qq:136457075,我的代码写在 main.cpp
中.
#include <Windows.h>
//这个是为了解决gh.h等头文件报错,include Windows.h之后,将不会报错
#include <osgViewer/Viewer>
#include <osgDB/ReadFile>
#include <osgViewer/ViewerEventHandlers>
#include <osgGA/GuiEventAdapter>
int main()
{
osg::ref_ptr<osgViewer::Viewer> viewer = new osgViewer::Viewer;
//创建一个viewer
osg::ref_ptr<osg::Node> node = new osg::Node;
//创建一个node
node = osgDB::readNodeFile("cow.osg");
//打开模型
viewer->addEventHandler(new osgViewer::HelpHandler);
//添加帮助handler
viewer->setSceneData(node.get());
//设置数据
return viewer->run();
//实现viewer
}
效果图片
加载模型成功:
输入英文输入法的h,可获得帮助: