OpenSceneGraph 开发环境搭建
环境说明
- windows 10
- visual studio 2019
- qt 5.15
预编译库与资源
这是最省事的方式, 本人懒得走cmake编译那套, 而且有现成的为何不用, 省点时间研究OSG不香吗?
-
下载预编译库,点此进入, 可看到如下页面,点击
Stable Releases
Stable Releases
页面如下:进入到下载页面, 选择所需的VS版本,当然QT版本也要对应(通常版本向下兼容)。点击下载即可, 笔者选择了3.6.5。
-
下载资源(OpenSceneGraph-Data), 点此进入, 可看到如下页面,点击
Data Resources
Data Resource
页面如下, 点击所需的版本, 笔者选择了3.4: -
将预编译库与OpenSceneGraph-Data放置在一起即可
其他资源
其他资源可从osgchina获取, 比如笔者需要gltf加载插件,即是从该网站获取。
开发环境配置
- 在项目中包含依赖头文件目录(
OpenSceneGraph\include
) - 配置必要依赖库(
OpenThreads.lib
、osg.lib
、osgViewer.lib
、osgDB.lib
、osgGA.lib
、osgWidget.lib
、osgQOpenGL.lib
、osgUtil.lib
)等
代码示例
初始化osgQOpenGLWidget
MainWindow::MainWindow(QWidget* parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
osg_widget_ptr_ = new osgQOpenGLWidget(this);
ui->horizontalLayout->insertWidget(0, osg_widget_ptr_,3);
connect(osg_widget_ptr_, SIGNAL(initialized()), this, SLOT(initOsgWindow()));
}
初始化OsgWindow
void MainWindow::initOsgWindow()
{
osgviewer_ = osg_widget_ptr_->getOsgViewer();
osgviewer_->getCamera()->setClearMask(GL_DEPTH_BUFFER_BIT);
osgviewer_->setCameraManipulator(new osgGA::TrackballManipulator);
osg::ref_ptr<osg::Group> group = new osg::Group;
//创建一个节点用于读取osg模型
osg::ref_ptr<osg::Node> node = osgDB::readNodeFile("cessnafire.osg");
//添加到场景
group->addChild(node.get());
osgviewer_->setSceneData(group);
}
注意
如果new osgQOpenGLWidget(this)
出现异常大概率是因为Debug的版本依赖了Release的OSG