zoukankan      html  css  js  c++  java
  • OpenVDB For Windows

    OpenVDB 是梦工厂开源的体素数据格式库,虽然是开源的,但是对windows 的支持非常不好。如果想在windows上搞体素的话需要花一番功夫。写一个总结,编译中需要注意的地方。过两天整理好会写一个bat文件来一次性搞定配置。

    VS工程的建立就是把源代码和头文件按照文件夹的目录结构加到VS的空项目里就行,可以用CMake生成更加方便,目前测试VS08 和 VS 10 都能正确编译, 但你的依赖库和OpenVDB最好使用同一版本的VS编译器,否则编译链接会出错。

    OpenVDB依赖库:

    • OPENEXR
    • TBB
    • Zlib
    • CPPUnit(For unittest)

    TBB直接网上可以下载编译好的lib,是动态链接生成,链接到你的工程即可,其他的库自己在windows上编译就可以,注意OPENEXR如果是静态编译的请在工程的编译选项里加入OPENVDB_OPENEXR_STATICLIB

    如果有链接错误,那基本上都是代码生成的时候/MT方式和/MD方式选择不对,检查你的依赖库的生成方式,比如都是静态生成,就都选成/MT。

    预编译选项:所有的预编译选项都在Platform.h 和PlatformConfig.h里。比较重要的有:

      OPENVDB_PRIVATE:定义了这个宏才能把VDB的API导出。

      OPENVDB_STATICLIB: 如果你需要把OPENVDB 编译成静态库请一定加上该选项,默认OPENVDB会编成dll,另外该选项还必须在引用VDB的API的工程中定义,比如   OPENVDB的单元测试

      OPENVDB_DLL:编译成dll时需要定义,不然生成的dll会没有lib文件。

      OPENVDB_OPENEXR_STATICLIB:如果OpenExr是静态的,必须加上。

    编译单元测试需要的CPPUnit库下载源代码之后包含了VS的工程文件,直接打开转换到你的VS版本就可以生成所需要的库文件,还是需要注意/MT和/MD的生成方式选择,一定要一致。Unittest 工程需要链接OpenExr。

    如果你要编译OpenVDB自带的viewer,在windows下是比较困难的,首先请把所有头文件换成glew,然后注意请使用glfw2.0链接glfw,glfw3大幅度修改了API ,另外请在每个viewer的cc文件之前加入 #include <stdlib.h>

             
  • 相关阅读:
    Class的用途
    Flash网络编程安全沙箱问题隆重解决 (转)
    带参数的EventDispatcher
    Object的效率
    Oracle数据库语言修改成UTF8
    Python之字符串详解1
    初级/中级/高级运维,你是哪一级?
    这可能是php世界中最好的日志库——monolog
    vc程序大小优化最佳方案(转)http://blog.sina.com.cn/s/blog_4c50333c0100gjs3.html
    C# 调用lua 报错未能加载文件或程序集“lua51.dll”或它的某一个依赖项。找不到指定的模块。 解决方法
  • 原文地址:https://www.cnblogs.com/warpengine/p/3462359.html
Copyright © 2011-2022 走看看