osxでopenvdbを気合で動かす
OpenVDBとはなんぞや
簡単に言えば「Volume Dataを.vdb
というformatで効率的に保存するためのLibrary」です(詳細は公式を要確認, Sample Dataはここ).
OpenVDBは2013年頃から開発がスタートしたため,あまり新しいものではありません.
一方で,最近はBlender 2.83でOpenVDBのサポートが始まったこと,Realtime fluid simulation toolであるEmbergenの台頭,相変わらずお強いHoudini,CV界隈でImplicit Representationで形状復元をする研究が盛んなこと(Lecture movie)などが絡まり合い,OpenVDBの需要は高くなっていくと考えられます.
OSXで使えない...なんで?
そこで,今のうちにOpenVDBに慣れていこう...と思ったのですが,公式githubのTutorialに沿ってosx環境下でInstallを行おうとすると,以下のようなエラーで詰みます.
CMake Error at CMakeLists.txt:36 (find_package):
Could not find a package configuration file provided by "OpenVDB" with any
of the following names:
OpenVDBConfig.cmake
openvdb-config.cmake
Add the installation prefix of "OpenVDB" to CMAKE_PREFIX_PATH or set
"OpenVDB_DIR" to a directory containing one of the above files. If
"OpenVDB" provides a separate development package or SDK, be sure it has
been installed.
この問題はTutorialに沿ってInstallしたとしても,OpenVDBConfig.cmake
が/usr/local/lib/cmake
以下に生成されないことに起因するのですが,issueを見る限り,現在も解決はされていないようです.
上記issueでは解決策として,cmakeを行う際にtarget_link_directories
に/usr/local/lib
を,target_include_directories
に/usr/local/include
を加えた後,linkする際に-lOpenVDB
とする方法が提案されていました.
しかし,OpenVDBはOpenEXRとTBBに依存しているため,これだけでは動きません1.
Solution
この問題に対し,CMakeLists.txt内部で以下のようにすると解決しました.
# tbb
find_library(TBB_LIBRARY tbb HINTS /usr/local/lib)
# openexr
find_library(HALF_LIB half HINTS /usr/local/lib)
# openvdb
list(APPEND SAMPLE_INCLUDE_DIR /usr/local/include)
find_library(OpenVDB_LIBRARY openvdb HINTS /usr/local/lib)
## include headers
include_directories(${SAMPLE_INCLUDE_DIR})
add_executable(sample ${SAMPLE_SOURCES})
target_link_libraries(
sample
${TBB_LIBRARY}
${HALF_LIB}
${OpenVDB_LIBRARY}
)
公式TutorialのHello Worldは動作確認済
tiny sampleを以下に上げたので,何かの参考になれば幸いです.
おまけ
これで自作Simulator開発が捗りますね!
-
bloscにも依存していますが関係なかったようなので省略] ↩
Author And Source
この問題について(osxでopenvdbを気合で動かす), 我々は、より多くの情報をここで見つけました https://qiita.com/mocobt/items/66e04d03ab5d991e8554著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .