前言
在國產麒麟系統上實現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是基於Qt5.12.8版本的,自行下載linux安裝linux版本,參照《[麒麟系統開發筆記(二):國產麒麟系統搭建Qt開發環境安裝Qt5.12]》
[OSG、OSGEARTH三維開發專欄]
osgQt和移植osgQt過來都是通過QGLWidget渲染,Qt在5.5及以後推薦使用QOpenGLWidget窗口替代QGLWidget,在應用層最大的區別就是在QGLWidget上放置控件是無法半透明的,而在QOpenGLWidget上放置控件是可以透明的。
當然,使用QOpenGLWidget實現,需要自行研究,之前是研究過一邊並且實現了,研究差不多一週才終於實現基礎Demo。
具體這部分代碼在博文《[OSG開發筆記(二十三):Qt使用QOpenGLWidget渲染OSG和地球儀]》
右下的控件實際上是Qt的控件,這樣開發可以節省一些hud控件開發,提高效率。
自帶了cmake,確認cmake版本:
安裝cmake-gui
sudo make install cmake-gui
運行:
cmake-gui
先解壓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:沒有顯示漢字是因爲沒有打字體庫進去)。