BuildForMac_JP - CCSEPBVR/CS-IS-PBVR GitHub Wiki

Mac環境でのビルド

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

サーバ・フィルタ・KVSMLコンバータのビルド

任意のディレクトリにクローンされたソースコードパッケージの中で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モードでのコンパイルの設定

サーバ・フィルタのビルド

  1. 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
    
  2. CS-IS-PBVR/CS_server配下で下記のコマンドでビルドを行う

    make -j 16
    
  3. CS-IS-PBVR/CS_server配下で下記のように実行モジュールが作成される。
    フィルタ:Filter/pbvr_filter
    サーバ:pbvr_server

データ形式を拡張したサーバのビルド

サーバプログラムは独自のKVSML形式によるボリュームデータのみ処理できるが、
KVS・VTKライブラリを使用してサーバプログラムの対応データ形式を拡張することもできる。
使用方法についてはチュートリアルに記載している。

KVS及びVTKは事前にインストールされているものとする。
インストール方法は各ライブラリリポジトリを参考にする。

また、VTKのインストールにあたってはccmakeにおいて以下の設定を行うこと。

  1. BUILD_SHARED_LIBSオプションをオンにする。
  2. CMAKE_BUILD_TYPEオプションを”Release”にする。
  3. 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用のフィルタビルド

VTK用のフィルタのビルドにはVTK6.0以上が必要である。 VTKライブラリのインストールについてはVTKウェブサイトを参照すること。 また、インストールにあたってはCMake-guiにおいて以下の設定を行うこと。

  1. BUILD_SHARED_LIBSオプションをオンにする。
  2. CMAKE_BUILD_TYPEオプションを”Release”にする。
  3. 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ライブラリのインストール環境に合わせて書き換えること。

KVSMLコンバータのビルド

KVS及びVTKは事前にインストールされているものとする。
インストール方法は各ライブラリリポジトリを参考にする。

また、VTKのインストールにあたってはccmakeにおいて以下の設定を行うこと。

  1. BUILD_SHARED_LIBSオプションをオンにする。
  2. CMAKE_BUILD_TYPEオプションを”Release”にする。
  3. 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を利用してビルドする。

  • 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のビルド

  1. CS-IS-PBVR/QTPBVR/ディレクトリ配下のQTPBVR.proをQtCreatorで開く。
    開いた際に「有効な設定が見つかりません」と表示された場合は、「OK」ボタンをクリックする。 プロジェクトの設定画面で「Qt 6.2.4 for macOS」のキットにチェックを入れ、「Configure Project」のボタンをクリックする。 Local Image

  2. ビルド設定をReleaseに切り替える。 Local Image

  3. 下にスクロールし、環境変数KVS_DIRが設定されていることを確認する。もし設定されていない場合は手動で設定する。 Local Image

  4. 編集からqtpbvr.confの設定を確認します。.fbx、 .3dsフォーマットを読み込ませる場合はPBVR_SUPPORT_FBX、 PBVR_SUPPORT_3DSを1にし、FBXSDK、 Assimpライブラリのinclude、libディレクトリのフルパスを入力する。 Local Image

  5. プロジェクトを右クリックし、「qmakeの実行」をクリックする。 Local Image

  6. qmake完了後、プロジェクトを右クリックし、「ビルド」をクリックする。 Local Image

  7. ビルド完了後、画面左下の再生マークまたはCtrl+RでQTPBVRの実行ができることを確認する。 Local Image

⚠️ **GitHub.com Fallback** ⚠️