OpenSceneGraph 3.6.4 源代碼編譯(x86) + chm 文檔生成


導讀

  本文將介紹在 Windows 平台下,OpenSceneGraph 源碼的編譯、發布、以及 chm 文檔生成。文章將使用 Visual Studio 2015 ,以 3.6.4 版本為例,編譯生32 位 (x86) 版本 進行說明。

      最后一小節提供 3.6.4 版本編譯的發布 (OpenSceneGraph-3.6.4-VC2015-x86 )、幫助文檔(OpenSceneGraphReferenceDocs-3.6.4.chm)和 學習文檔 的下載,以供參考。

      本文鏈接:https://www.cnblogs.com/BensonLaur/p/12697333.html


目錄
  1. 入門與准備
  2. 編譯源碼
  3. 發布與開發
  4. 文檔生成
  5. 相關下載
1、入門與准備

OpenSceneGraph是一個開源的三維引擎,應用廣泛,可通過相關網站進行進一步的了解

官方網站(英文):http://www.openscenegraph.org/

中文網站:http://www.osgchina.org/

同時這里推薦 《OpenSceneGraph三維渲染引擎設計與實踐》一書,個人認為比較適合新手入門,在本文最后 “相關下載” 章節,可以下載

 

2、編譯源碼

這里使用 Visual Studio 2015, 對 OpenSceneGraph 2.6.4 源碼進行編譯 32 位(x86)版本

工具准備

版本控制軟件 git , 用於下載源代碼

git   (下載)

安裝(編譯)工具 CMake ,用來構建具體平台的項目文件(這里用來構建 VS 的解決方案 Solution)

cmake (下載)

 

如果想要自己生成代碼文檔,則需要額外准備:

文檔自動生成工具 doxygen , 用於更具代碼注釋自動生成參考文檔 

doxygen   (下載)

圖像可視化軟件 graphviz, 這里用來輔助構建文檔中的圖表 (這里下載 Stable 2.38 Windows install packages)

graphviz (下載)

 

下載並安裝以上工具

 

下載源代碼進行編譯
(1)下載源代碼

參考 osg 中文網下載說明,使用 git 下載代碼(3.6.4 版本)到本地,(個人建議單獨創建一個父目錄用來存放 osg 相關的代碼和數據)

git clone --branch OpenSceneGraph-3.6.4 https://github.com/openscenegraph/OpenSceneGraph.git

 

這里下載到 D:\osg 目錄,如下:

 

(2)下載第三方依賴

 OpenSceneGraph 本身沒有包含讀取 png、jpeg 的模塊,為了編譯的發布功能相對完善,這里先下載依賴的第三方模塊

 當前(2020/04/14)中文網提供的依賴目前鏈接失效了,這里訪問英文官網提供的第3方依賴: http://www.openscenegraph.org/index.php/download-section/dependencies

這里下載其中 使用VS2015 編譯的版本

由於這里使用 VS2015 編譯 x86 版本,這里下載 v140-x86 版本依賴,放置到 D:\osg\3rdParty  目錄下

 

 

(3)使用 cmake 構建 VS 項目

 打開安裝 CMake 目錄下的 cmake-gui.exe 

 

 將第(1)步下載的源代碼中的 CMakeLists.txt 拖放到軟件中,如下:

 

 構建代碼的路徑 最好選擇另一個和 源代碼不同的路徑,這樣構建的數據和源代碼目錄分離數據比較清晰不容易混亂。

設置第3方庫目錄,比如這里使用的 : D:/osg/3rdparty

如果需要想要構建使用例子(對新手有幫助,不過編譯會多費些時間),可以勾選 BUILD_OSG_EXAMPLES

如果需要自己構建文檔,可以勾選 BUILD_DOCUMENTATION

 

如果勾選 BUILD_DOCUMENTATION,那么需要如下圖,勾選 “Advanced” , 確保 DOXYGEN_DOT_EXECUTABLE DOXYGEN_EXECUTABLE 指定到安裝的 Graphviz 和 doxygen 對應的文件,如下圖所示

 

 

 點擊 “Configure” 再次確認一下配置,確認完畢后,點擊 "Generate" 生成解決方案,成功生成后,點擊 “Open Project” 可打開生成的 VS 方案

 

 最后,在項目中,分別在 DebugRelease 下構建 ALL_BUILD 項目即可:

 

3、發布與開發
發布

編譯完成后,如果要安裝發布到之前 CMake 中指定的目錄 C:/Program Files(x86)/OpenSceneGraph 

 

 可以構建 INSTALL 項目,將自動完成復制安裝(DebugRelease 需要分別安裝)

 

 

 執行成功后,安裝目錄下將出現對應的文件如下:

 

復制安裝成功后,為了后續開發,需要配置一些環境變量:

 

 

設置 OSG_3RDPARTY_DIR 為剛才下載的第三方庫的路徑  D:\osg\3rdParty

設置 OSG_NOTIFY_LEVEL 打印提醒等級為 WARN

設置 OSG_VERSION 為當前使用的版本號 3.6.4 (方便如果升級版本的時候使用)

設置 OSGDIR 為當前代碼復制安裝的目錄 

在 Path 中添加路徑:%OSGDIR%\bin;%OSG_3RDPARTY_DIR%\bin;%OSGDIR%\bin\osgPlugins-%OSG_VERSION%;

 

驗證

為了方便快速驗證是否安裝成功,可以打開命令行,執行 osgversion.exe 

 

如果想測試運行更多數據,可以下載使用官方提供的標志示例數據 http://www.osgchina.org/show-list.php?id=38

 

 

 並配置 配置 OpenSceneGraph 內部專用的環境變量 OSG_FILE_PATH  如下:

 

OSG_FILE_PATH  是 osg 內部約定專用的變量,當指定打開文件不指定文件名時,osg自動搜索該目錄

設置完后,命令行可執行:

 

 或者:

 

開發測試

 本地創建一個 VS 控制台應用程序項目

 

 在項目屬性頁中,設置 C/C++ -> General(通用)->Additional Include Directories (額外include 目錄),添加 $(OSGDIR)\include

 

  在項目屬性頁中,設置 C/C++ -> Linker (鏈接器) ->General->Additional Library Directories (額外庫目錄),添加 $(OSGDIR)\lib

 

 在項目屬性頁中,設置 C/C++ -> Linker (鏈接器) ->input->Additional Dependencies 下,  添加需要導入的 lib 

 

 

 這里debugrelease 需要區分導入,debug 版本庫名稱有 d 后綴

這里根據我生成的庫文件,添加 debug 版本如下:

OpenThreadsd.lib
osgd.lib
osgAnimationd.lib
osgDBd.lib
osgFXd.lib
osgGAd.lib
osgManipulatord.lib
osgParticled.lib
osgPresentationd.lib
osgShadowd.lib
osgSimd.lib
osgTerraind.lib
osgTextd.lib
osgUId.lib
osgUtild.lib
osgViewerd.lib
osgVolumed.lib
osgWidgetd.lib

這里根據我生成的庫文件,添加 release 版本如下:

OpenThreads.lib
osg.lib
osgAnimation.lib
osgDB.lib
osgFX.lib
osgGA.lib
osgManipulator.lib
osgParticle.lib
osgPresentation.lib
osgShadow.lib
osgSim.lib
osgTerrain.lib
osgText.lib
osgUI.lib
osgUtil.lib
osgViewer.lib
osgVolume.lib
osgWidget.lib

配置完畢后,添加代碼如下:

#include "stdafx.h"
#include <osgDB\ReadFile>
#include <osgViewer\Viewer>

int main()
{
    osgViewer::Viewer viewer;
    viewer.setSceneData(osgDB::readNodeFile("cow.osg"));
    return viewer.run();
}
#include "stdafx.h"
#include <osgDB\ReadFile> #include <osgViewer\Viewer> int main() { osgViewer::Viewer viewer; viewer.setSceneData(osgDB::readNodeFile("cow.osg")); return viewer.run(); }

 

運行效果:

 

4、文檔生成

 如需生成文檔,可以編譯  doc_openscenegraph 

 默認情況下,編譯生成的只是 html 文檔,如果想要生成 chm 文檔,還需要再 在 doxygen 配置文件 (doxyfile)中:

#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
GENERATE_HTML          = YES
HTML_OUTPUT            = OpenSceneGraphReferenceDocs
HTML_FILE_EXTENSION    = .html
HTML_HEADER            =
HTML_FOOTER            = "D:/osg/OpenSceneGraph-source-3.6.4/doc/Doxyfiles/custom_Footer.html"
HTML_STYLESHEET        =
HTML_DYNAMIC_SECTIONS  = NO
GENERATE_DOCSET        = NO
DOCSET_FEEDNAME        = "Doxygen generated docs"
DOCSET_BUNDLE_ID       = org.doxygen.Project
GENERATE_HTMLHELP = YES
CHM_FILE               = "../OpenSceneGraphReferenceDocs-3.6.4.chm"
HHC_LOCATION           = "C:/Program Files (x86)/HTML Help Workshop/hhc.exe"
GENERATE_CHI           = NO

將紅色部分 GENERATE_HTMLHELP 設置為 YES參考

 

 這樣,在編譯成功后,在編譯目錄下則會生成 chm 文檔:

 

 

 

5、相關下載

 這里已經編譯好了  OpenSceneGraph-3.6.4-VC2015-x86 

 連同編譯好的參考手冊 OpenSceneGraphReferenceDocs-3.6.4.chm

 和 OpenSceneGraph 學習電子書 《OpenSceneGraph三維渲染引擎設計與實踐》

 放置到了百度雲盤

百度雲盤:https://pan.baidu.com/s/1SX8nu83IvnmKmj6pwI9vxg
密碼   :iplk

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM