BuildForMac_JP - CCSEPBVR/CS-IS-PBVR GitHub Wiki
CS/IS-PBVRはC++で実装されており、コンフィグファイルで設定することで逐次処理版、スレッド並列処理用のOpenMP版、および、超並列処理用のMPI + OpenMP版を切り替えてビルドできる。 クライアントプログラムはC++、QtとOpenGLによって実装されている。
gitコマンドを利用して以下のようにクローンを行う。
git clone https://github.com/CCSEPBVR/CS-IS-PBVR.git
cd CS-IS-PBVR
git checkout release/vX.X.X
任意のディレクトリにクローンされたソースコードパッケージの中でCS-IS-PBVR/CS_Server/ディレクトリは以下のpbvr.conf、Makefileによってコンパイルされる。 pbvr.confファイルによりmakeを設定し、フィルタ、サーバプログラムをビルドする。 CS-IS-PBVR/CS_server/ディレクトリの構成は以下の通りである。
CS-IS-PBVR
└── CS_server
├── main.cpp
├── Makefile - CS_server/配下のソースコードをコンパイルする
├── pbvr.conf - makeの設定ファイル
├── pbvr.sln
├── pbvr.v12.suo
├── Common - プロトコル、通信、共通ライブラリ
├── Filter - フィルタプログラム
├── FunctionParser - 数式処理ライブラリ
├── arch - 各環境のコンパイラの設定ファイル
├── VisModule - 可視化ライブラリKVS※1とサーバプログラムを統合したもの
※1. このKVSはクライアントプログラムでは使用されない、このKVSはサーバ上の並列可視化処理に特化した独自のバージョンである。
pbvr.confにおいて変数の入力値を変更することで、インストールする機能を指定する。
pbvr.confの変数一覧を以下に示す。
変数 | 入力値 | 説明 |
---|---|---|
PBVR_MACHINE | 文字列 | arch/配下のコンパイル設定ファイル |
PBVR_MAKE_FILTER | 0 or 1 | フィルタのサポートの有無 |
PBVR_MAKE_SERVER | 0 or 1 | サーバのサポートの有無 |
PBVR_MAKE_KVSML_CONVERTER | 0 or 1 | KVSMLコンバータのサポートの有無 |
PBVR_SUPPORT_VTK | 0 or 1 | VTKサポートの有無(フィルタのみ) |
変数PBVR_MACHINEではコンパイル環境に応じてarch/ディレクトリ配下に格納されているMakeFileの設定ファイルを指定する。
ファイル名 | 説明 |
---|---|
Makefile_machine_gcc | gccによる逐次版コンパイルの設定 |
Makefile_machine_gcc_omp | gccによるOpenMP版コンパイルの設定 |
Makefile_machine_gcc_mpi_omp | gccによるMPI+OpenMP版コンパイルの設定 |
Makefile_machine_intel | intelによる逐次版コンパイルの設定 |
Makefile_machine_intel_omp | intelによるOpenMP版コンパイルの設定 |
Makefile_machine_intel_mpi_omp | intelによるMPI+OpenMP版コンパイルの設定 |
Makefile_machine_s86_mpi_omp | JAEA大型計算機上でコンパイルの設定 |
Intelコンパイラとmptライブラリを使用 | |
Makefile_machine_fugaku_clang | 富岳(ARM)clangモードでのコンパイルの設定 |
Makefile_machine_fugaku_trad | 富岳(ARM)tradモードでのコンパイルの設定 |
-
CS-IS-PBVR/CS_server/ディレクトリ配下のpbvr.confを、各環境で使用する機能に合わせて編集する。
gccコンパイラを使用してOpenMPにより並列化されたフィルタ、サーバプログラムをビルドする例を示す。
PBVR_MACHINE=Makefile_machine_gcc_omp PBVR_MAKE_FILTER=1 PBVR_MAKE_SERVER=1 PBVR_MAKE_KVSML_COMVERTER=0 PBVR_SUPPORT_VTK=0
-
CS-IS-PBVR/CS_server配下で下記のコマンドでビルドを行う
make -j 16
-
CS-IS-PBVR/CS_server配下で下記のように実行モジュールが作成される。
フィルタ:Filter/pbvr_filter
サーバ:pbvr_server
サーバプログラムは独自のKVSML形式によるボリュームデータのみ処理できるが、
KVS・VTKライブラリを使用してサーバプログラムの対応データ形式を拡張することもできる。
使用方法についてはチュートリアルに記載している。
KVS及びVTKは事前にインストールされているものとする。
インストール方法は各ライブラリリポジトリを参考にする。
また、VTKのインストールにあたってはccmakeにおいて以下の設定を行うこと。
- BUILD_SHARED_LIBSオプションをオンにする。
- CMAKE_BUILD_TYPEオプションを”Release”にする。
- CMAKE_INSTALL_PREFIXをVTKをインストールする場所に設定する。
1.以下の環境変数を設定する。
export KVS_DIR=<BASE_DIR>/KVS/install
export VTK_VERSION=n.n
export VTK_LIB_PATH=/usr/local/lib
export VTK_INCLUDE_PATH=/usr/local/include/vtk-n.n
export DYLD_LIBRARY_PATH=/usr/local/lib:$DYLD_LIBRARY_PATH
ここで、n.nには使用するVTKのバージョンを入力し、PATHはVTKライブラリのインストール環境に合わせて書き換えること。
2.KVS/kvs.confのKVS_SUPPORT_EXTENDED_FILE_FORMAT
を1に設定してKVSをビルド・インストールする。
3.CS-IS-PBVR/CS_server配下で下記のコマンドでビルドを行う
make -j 16
4.CS-IS-PBVR/CS_server配下に下記のように実行モジュールが作成される。
サーバー:pbvr_server
VTK用のフィルタのビルドにはVTK6.0以上が必要である。 VTKライブラリのインストールについてはVTKウェブサイトを参照すること。 また、インストールにあたってはCMake-guiにおいて以下の設定を行うこと。
- BUILD_SHARED_LIBSオプションをオンにする。
- CMAKE_BUILD_TYPEオプションを”Release”にする。
- CMAKE_INSTALL_PREFIXをVTKをインストールする場所に設定する。
VTK用フィルタに必要な設定を以下に示す。
export VTK_VERSION=n.n
export VTK_LIB_PATH=/usr/local/lib
export VTK_INCLUDE_PATH=/usr/local/include/vtk-n.n
ここで、n.nには使用するVTKのバージョンを入力し、PATHはVTKライブラリのインストール環境に合わせて書き換えること。
KVS及びVTKは事前にインストールされているものとする。
インストール方法は各ライブラリリポジトリを参考にする。
また、VTKのインストールにあたってはccmakeにおいて以下の設定を行うこと。
- BUILD_SHARED_LIBSオプションをオンにする。
- CMAKE_BUILD_TYPEオプションを”Release”にする。
- CMAKE_INSTALL_PREFIXをVTKをインストールする場所に設定する。
1.以下の環境変数を設定する。
export KVS_DIR=<BASE_DIR>/KVS/install
export VTK_VERSION=n.n
export VTK_LIB_PATH=/usr/local/lib
export VTK_INCLUDE_PATH=/usr/local/include/vtk-n.n
export DYLD_LIBRARY_PATH=/usr/local/lib:$DYLD_LIBRARY_PATH
ここで、n.nには使用するVTKのバージョンを入力し、PATHはVTKライブラリのインストール環境に合わせて書き換えること。
2.CS-IS-PBVR/CS_Server/pbvr.confのPBVR_MAKE_KVSML_COMVERTERを1に設定する。
3.CS-IS-PBVR/CS_server配下で下記のコマンドでビルドを行うとサーバ・フィルタと一緒にビルドされる。
make -j 16
4.以下の場所に実行モジュールが作成される。
CS-IS-PBVR/CS_server/KVSMLConverter/Example/Release/kvsml-converter
クライアントプログラムは可視化ライブラリKVSと統合開発環境Qt Creatorを利用してビルドする。
本クライアントは、オリジナルのKVSを改良した独自バージョンのKVSを利用してビルドする。
-
KVSライブラリのインストール
ターミナルから以下のコマンドを実行しQTPBVR用KVSライブラリをクローンする。git clone https://github.com/TO0603/KVS.git cd KVS git checkout main
KVS/kvs.confを以下の通りに編集する。
#============================================================================= # KVS enable/support flags # $Id: kvs.conf 1525 2013-04-11 02:58:08Z [email protected] $ #============================================================================= KVS_ENABLE_OPENGL = 1 KVS_ENABLE_GLU = 1 KVS_ENABLE_GLEW = 0 KVS_ENABLE_OPENMP = 0 KVS_ENABLE_DEPRECATED = 0 KVS_SUPPORT_CUDA = 0 KVS_SUPPORT_GLUT = 1 KVS_SUPPORT_GLFW = 0 KVS_SUPPORT_FFMPEG = 0 KVS_SUPPORT_OPENCV = 0 KVS_SUPPORT_QT = 1 KVS_SUPPORT_OPENXR = 0 KVS_SUPPORT_PYTHON = 0 KVS_SUPPORT_MPI = 0 KVS_SUPPORT_EGL = 0 KVS_SUPPORT_OSMESA = 0 KVS_SUPPORT_EXTENDED_FILE_FORMAT = 0
編集後、「~/.zshrc」に以下のコマンドを追記する。
export KVS_DIR=<BASE_DIR>/KVS/install
追記後、以下のコマンドを実行しインストールを行う。
source ~/.zshrc make -j 16 ~~ビルドが完了するのを待つ~~ make install
-
QTPBVRのビルド
-
CS-IS-PBVR/QTPBVR/ディレクトリ配下のQTPBVR.proをQtCreatorで開く。
開いた際に「有効な設定が見つかりません」と表示された場合は、「OK」ボタンをクリックする。 プロジェクトの設定画面で「Qt 6.2.4 for macOS」のキットにチェックを入れ、「Configure Project」のボタンをクリックする。 -
ビルド設定をReleaseに切り替える。
-
下にスクロールし、環境変数KVS_DIRが設定されていることを確認する。もし設定されていない場合は手動で設定する。
-
編集からqtpbvr.confの設定を確認します。.fbx、 .3dsフォーマットを読み込ませる場合はPBVR_SUPPORT_FBX、 PBVR_SUPPORT_3DSを1にし、FBXSDK、 Assimpライブラリのinclude、libディレクトリのフルパスを入力する。
-
プロジェクトを右クリックし、「qmakeの実行」をクリックする。
-
qmake完了後、プロジェクトを右クリックし、「ビルド」をクリックする。
-
ビルド完了後、画面左下の再生マークまたはCtrl+RでQTPBVRの実行ができることを確認する。