OSG和ProLand 的海面仿真


基於OSG的海面仿真

OSG中國官網 http://www.osgchina.org/

OSG-ocean的效果圖如下

proland的效果圖如下

 

下面為OSG和OCEAN的配置 

配置方法轉自 http://blog.csdn.net/sohu_2011/article/details/7909803

下面所有的文件都可以在 http://download.csdn.net/detail/xdjinjian/5698027 下載到

一步步編譯OsgOcean

電腦:

操作系統:win7

編譯器:vs2010

顯卡:NVIDIA GeForce GTX 550Ti

准備工作

一 安裝cmake

網絡下載cmake,並安裝;

我安裝的是cmake-2.8.9-win32-x86.exe

二 下載OSG並編譯

osgOcean 1.0.1是用osg開發的,所以要安裝OSG,官網上說可以用OSG2.8.2編譯,所以我下載了OSG2.8.2源碼來編譯。OSG的國外官網進不去,但是國內的osgchina可以下載源碼,

網絡地址:http://www.osgchina.org/projects/osgcn/wikicn/Downloads.php

目前下載OSG2.8.2只能通過該網址提供的svn來下載;下面是svn

http://www.openscenegraph.org/svn/osg/OpenSceneGraph/tags/OpenSceneGraph-2.8.2b

 

編譯OSG2.8.2

(一)  下載3rdParty_Win32binaries_2005_05_10.zip

可在http://www.osgchina.org/projects/osgcn/wikicn/Downloadscn/Dependencies.php下載

(二)  下載OpenSceneGraph-Data-2.0.zip

可在http://www.osgchina.org/projects/osgcn/wikicn/Downloadscn/SampleDatasets.php

(三)  通過cmake生成vs工程

3rdParty_Win32binaries_2005_05_10.zip解壓,將加壓目錄copy到osg2.8.2目錄內

OpenSceneGraph-Data-2.0.zip解壓,將解壓目錄copy到osg2.8.2目錄內

在osg2.8.2目錄內建一個build目錄,cmake會把vs工程產生到該目錄下

打開安裝的cmake,填寫osgsource code目錄與build binaries目錄:

如圖:

 

之后點擊Configure,然后選擇編譯器

 

然后,點擊finished

此時,cmake會顯示出很多紅色,表示需要配置,有些需要配置有些采用默認即可;

 

需要配置的相有:

ACTUAL_3DPART_DIR:填寫上面解壓3rdpart目錄即可;編譯32未程序,要包含x86子目錄內容,如果64位填寫x64目錄,即:

E:\ocean\osg2_8_2b\3rdParty\x86或

E:\ocean\osg2_8_2b\3rdParty\x64

BUILD_MFC_EXAMPLE:選中

CMAKE_INSTALL_PREFIX:最后安裝目錄,也就是要把 bin目錄,include目錄,lib目錄copy到該目錄下,這樣其他工程只要引用該目錄內容,即可使用osg

點擊generate,在build目錄下回產生VS工程,打開工程build即可

用vs2010編譯osg2.8.2會出現語法錯誤,如back_inserter錯誤,只要在文件開頭包含

#include<iterator>即可

還可能遇到png錯誤,將

png_set_gray_1_2_4_to_8(png);

改為      png_set_expand_gray_1_2_4_to_8(png);

 

編譯ALL_BUILD工程

編譯INSTALL工程,此時可能遇到如下錯誤:

 

這個錯誤的意思是:

E:\ocean\osg2_8_2b\build\src\OpenThreads\win32目錄下的中44行記錄的

 “E:/ocean/osg2_8_2b/build/bin/Debug/../../bin/ot11-OpenThreadsd.dll”找不到

把..翻譯過來就是:“E:/ocean/osg2_8_2b/build/bin/bin/ot11-OpenThreadsd.dll”

根本不存在E:/ocean/osg2_8_2b/build/bin/bin/這個目錄,查看E:/ocean/osg2_8_2b/build/bin/目錄,發現ot11-OpenThreadsd.dll在E:\ocean\osg2_8_2b\build\bin\Debug目錄下;

這個有兩種辦法解決這個問題:

方法一:“E:/ocean/osg2_8_2b/build/bin/Debug/../../bin/ot11-OpenThreadsd.dll”改成

E:\ocean\osg2_8_2b\build\bin\Debug

但是這種方法勞動量很大,很為工程中有cmake_install.cmake文件要修改;

方法二:把ot11-OpenThreadsd.dll copy到E:/ocean/osg2_8_2b/build/bin/目錄下;

會有很多dll 需要copy;

 

再次build INSTALL工程,會出現如下錯誤:

 

意思是src/osgPlugins/osgAnimation/cmake_install.cmake文件的32行記錄的

E:/ocean/osg2_8_2b/build/bin/Debug/../osgPlugins-2.8.2/osgdb_osganimationd.dll

找不到,解決方法同上面方法二;

Osg編譯完畢

 

 

 

三 編譯osgOcean

一 准備快速傅里葉變換庫

有連個可用庫:FFTW, FFTSS

我選擇了FFTW,下載地址:

http://www.fftw.org/install/windows.html

加壓之后,在啟動vs命令行,並切換到解壓目錄:

 

然后運行如下三個命令:

    lib /def:libfftw3-3.def
     lib /def:libfftw3f-3.def
     lib /def:libfftw3l-3.def

然后會在目錄中生成.h文件.lib文件,這也是編譯時要連接的文件;

 

(二)編譯osgOcean

首先采用上面用cmake生成osg工程的步驟產生osgOcean工程;

生成結構如下:

 

打開osgOcean.sln,

編譯ALL_BUILD

會出現一大堆連接錯誤,原因是:

沒有連接.lib文件,工程屬性中添加所有osg的.lib文件

 

注意也要把快速傅里葉變換的庫也加進來;

再編譯一次,成功,完畢;

把oceanExample設置為啟動工程,把工作路徑設置為exe所在目錄:

 

把E:\ocean\osgOcean\osgOcean-Source-1.0.1\osgOcean中的resources目錄copy到上面的工作目錄中,這樣exe可以找到紋理文件等;

其中注意到OSGOCEAN中的庫的設置為

 

 

final:enjoy your ocean

基於proland的海面仿真

下載地址 http://proland.inrialpes.fr/

 

其中OCEAN 是其中的一個例子 直接下載就可以了 不用編譯

但注意運行OCEAN時的時候 先是顯示一個單單的球(那是地球= =!)之后用滾輪放大 直到出現海面為止。

 

 


免責聲明!

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



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