• 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时的时候 先是显示一个单单的球(那是地球= =!)之后用滚轮放大 直到出现海面为止。

  • 相关阅读:
    一款单机游戏应该有的一些要素
    终于成功注册了Amazon.com的Affiliate
    创办公司的步骤不完全讲解(二)
    继续新环境没有asp.net mvc3项目模板的问题
    在自己的博客上打个广告,Kinect for Windows要的来
    数据仓库走向灭亡??
    Oracle & Endeca
    无题
    无题
    【译著】第7章 SportsStore:一个真实的应用程序 — 《精通ASP.NET MVC 3框架》
  • 原文地址:https://www.cnblogs.com/xd-jinjian/p/3216587.html
Copyright © 2020-2023  润新知