はじめに
NVIDIA GVDB Voxels(以下、GVDB)は、OpenVDBのようなデータ構造を持ったボリュームをGPUで描画するライブラリです。
GVDBは2017年の「GPU Technology Conference」でリリースされ、2018年の「GTC 2018」でアップデートされました。
詳しくは公式サイトを確認してみてください。
今回はライブラリに含まれるサンプルデータのビルドまでの私が行った手順を記述したいと思います。
ライブラリのダウンロード
ライブラリはGitHubからダウンロードできます。
https://github.com/NVIDIA/gvdb-voxels
展開したフォルダー内には、
- binフォルダー:ビルドされたサンプルデータなど
- sourceフォルダー:ライブラリとサンプルデータのソースコード
- ドキュメント
があります。
bin内のサンプルデータ(.exe)一覧
ファイル名 | 説明 | スクリーンショット |
---|---|---|
g3DPrint.exe | 3Dプリントの積層構造を描画 | ![]() |
gDepthMap.exe | OpneGLシーンとボリュームのマージ | ![]() |
gFluidSurface.exe | 動く流体モデルのボリューム化とレンダリング | ![]() |
gImportVDB.exe | ボリュームの読み込み | ![]() |
gInteractiveGL.exe | OpenGLでのGVDBの描画 | ![]() |
gInteractiveOptix.exe | GVDBとOptiXのマージ | ![]() |
gPointCloud.exe | ポイントクラウドのポリゴン化とレンダリング | ![]() |
gPointFusion.exe | ポイントクラウドのボリューム化 | ![]() |
gRenderKernel.exe | ユーザー定義のレンダーカーネル | ![]() |
gRenderToFile.exe | レンダリング画像の書き出し | ![]() |
gResample.exe | MRIやCTスキャンの高密度なボリュームデータをGVDBで置き換える | ![]() |
gSprayDeposit.exe | スプレーの塗料が堆積するシミュレーション | ![]() |
スクリーンショットは公式ドキュメント「GVDB Samples Descriptions v1.1」より引用 |
ビルド環境の構築
各種ツールのインストール
ライブラリのビルド
サンプルデータをビルドする前にGVDBライブラリをビルドする必要があります。
Cmakeでビルドするためのファイルを作成する
- 「Where is the source code」にライブラリのソースコードのパスを指定
- 「Where to build the binaries」に生成されるファイルのパスを指定
パスを指定し「Configure」を押すと、設定ウィンドウが開くので下図のようにします。
次に「Generate」を押すと「Where to build the binaries」で指定したパスに実際にファイルが書き出されます。
Cmake上の「Open Project」を押すか、エクスプローラーから「.sln」ファイルをダブルクリックすると、Visual Studio 2015が立ち上がります。
Visual Studio 2015でビルドする
Visual Studio 2015が立ち上がったら下図のようにスタートアッププロジェクトを「libgvdb」にして、ビルドします。
サンプルデータのビルド
基本的にライブラリのビルドの手順と同じです。
一例として「g3DPrint」をビルドします
Visual Studio 2015でサンプルデータをビルドし終えると、下図のように「g3DPrint.exe」が生成されます。
おわりに
今回の手順はすべてNvidiaの公式ドキュメントを参照しながら進めたのですが、いくつかのサンプルはビルドエラーになったり、同梱されていた実行ファイルすら立ち上がらないなどありました。
GVDBライブラリを実際に使っている人が少ないのか、インターネットでも公式以外の情報は殆どありませんでした。
OpenVDBはHoudiniなどのソフトウェアでも使われていますが、CPUベースなので処理が遅いことがあります。
今後、このライブラリのようにGPUが活用されることを期待します。
参考サイト
NVIDIA® GVDB Voxels | NVIDIA Developer https://developer.nvidia.com/gvdb
GitHub - NVIDIA/gvdb-voxels: Sparse volume compute and rendering on NVIDIA GPUs https://github.com/NVIDIA/gvdb-voxels
GVDB Samples Descriptions v1.1 https://developer.nvidia.com/designworks/gvdb/secure/1.1/GVDB_Samples_1.1-pdf (ログインが必要)