前言
在国产麒麟系统上实现C++三维仿真,使用OSG技术,其他基于web的技术也是可以但是交互上鼠标拽托等交互相对差一些,所以这块需要斟酌选择到底是何种技术来取舍。
本篇在厂家指定的麒麟系统上编译OSG。
环境
- 系统版本:银河麒麟桌面操作系统V10(SP1)(注意:不对外提供)
- Gcc版本:gcc (Ubuntu 9.3.0-10kylin2) 9.3.0
- Qt版本:qt5.12.8
- OSG版本:osg3.4.0
- Cmake版本:cmake3.16.3
安装Qt
Qt是基于Qt5.12.8版本的,自行下载linux安装linux版本,参照《[麒麟系统开发笔记(二):国产麒麟系统搭建Qt开发环境安装Qt5.12]》
OSG开发系列博客
[OSG、OSGEARTH三维开发专栏]
说明
osgQt和移植osgQt过来都是通过QGLWidget渲染,Qt在5.5及以后推荐使用QOpenGLWidget窗口替代QGLWidget,在应用层最大的区别就是在QGLWidget上放置控件是无法半透明的,而在QOpenGLWidget上放置控件是可以透明的。
当然,使用QOpenGLWidget实现,需要自行研究,之前是研究过一边并且实现了,研究差不多一周才终于实现基础Demo。
具体这部分代码在博文《[OSG开发笔记(二十三):Qt使用QOpenGLWidget渲染OSG和地球仪]》
右下的控件实际上是Qt的控件,这样开发可以节省一些hud控件开发,提高效率。
OSG编译
步骤一:准备源码
步骤二:安装cmake和cmake-gui
自带了cmake,确认cmake版本:
安装cmake-gui
sudo make install cmake-gui
运行:
cmake-gui
步骤三:使用cmake配置目标工程
先解压osg,然后打开cmake的界面:
cmake-gui
是没有找到opengl,笔者这个麒麟版本特殊,无法在线安装,联系厂家更新安装的方式:
cd /etc/apt
sudo cp sources.list sources.list.bak
sudo vi sources.list
修改:
deb http://archive.kylinos.cn/kylin/KYLIN-ALL 10.1-hwe main
sudo apt-get update
sudo apt-get install libgl1-mesa-dev
安装完opengl后,在cmake-gui的配置,配置成功:
(PS1:那些额外的库,都需要编译然后添加进cmake环境变量,此处先不管,优先编译去osg,能跑,库实在太多)
修改安装路径,避免直接安装到系统):
步骤四:生成工程
步骤五:终端编译
打开终端,切换至build目录:
cd /home/yang/work/src/OpenSceneGraph-OpenSceneGraph-3.4.0/build-kylinV10
开始make:
make -j8
在来一次make,确认每个线程都过了。
步骤六:安装
安装到我们之前设置的路径,这样可以完整的提取头文件和库
make install
至此编译好了。
迁移之前的三维文字查看工具
《[项目实战:Qt+OSG三维2D文字实时效果查看工具](》
(PS:没有显示汉字是因为没有打字体库进去)。