zoukankan      html  css  js  c++  java
  • 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:oceanosg2_8_2b3rdPartyx86或

    E:oceanosg2_8_2b3rdPartyx64

    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:oceanosg2_8_2buildsrcOpenThreadswin32目录下的中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:oceanosg2_8_2buildinDebug目录下;

    这个有两种办法解决这个问题:

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

    E:oceanosg2_8_2buildinDebug

    但是这种方法劳动量很大,很为工程中有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:oceanosgOceanosgOcean-Source-1.0.1osgOcean中的resources目录copy到上面的工作目录中,这样exe可以找到纹理文件等;

    其中注意到OSGOCEAN中的库的设置为

    final:enjoy your ocean

    基于proland的海面仿真

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

    其中OCEAN 是其中的一个例子 直接下载就可以了 不用编译

    但注意运行OCEAN时的时候 先是显示一个单单的球(那是地球= =!)之后用滚轮放大 直到出现海面为止。

  • 相关阅读:
    219. Contains Duplicate II
    189. Rotate Array
    169. Majority Element
    122. Best Time to Buy and Sell Stock II
    121. Best Time to Buy and Sell Stock
    119. Pascal's Triangle II
    118. Pascal's Triangle
    88. Merge Sorted Array
    53. Maximum Subarray
    CodeForces 359D Pair of Numbers (暴力)
  • 原文地址:https://www.cnblogs.com/xd-jinjian/p/3216587.html
Copyright © 2011-2022 走看看