BuildForWindows_JP - CCSEPBVR/CS-IS-PBVR GitHub Wiki
フィルタプログラムおよびサーバプログラムは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 ※2 - CS_server/配下のソースコードをコンパイルする
├── pbvr.conf ※2 - makeの設定ファイル
├── pbvr.sln
├── pbvr.v12.suo
├── Common - プロトコル、通信、共通ライブラリ
├── Filter - フィルタプログラム
├── FunctionParser - 数式処理ライブラリ
├── arch - 各環境のコンパイラの設定ファイル
├── VisModule - 可視化ライブラリKVS※1とサーバプログラムを統合したもの
├── KVSMLConverter - KVSMLコンバータ
※1. このKVSはクライアントプログラムでは使用されない、このKVSはサーバ上の並列可視化処理に特化した独自のバージョンである。
※2. Windows環境ではMakefileとpbvr.confの代わりにVisual Studio用のソリューションファイルpbvr.slnを用いる。
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.slnを実行し、MSVCを起動する。
-
OpenMPにより並列化されたプログラムを生成する場合は、下記プロジェクトファイルのOpenMPのサポートを有効化する。
- Common
- Filter
- FunctionParser
- KVSMLConverter
- VisModule
VisModuleプロジェクトファイルのOpenMPのサポートを有効化する例を示す。
-
VisModuleを右クリックする。
-
プロパティを選択する。
-
C/C++ -> 言語からOpenMPのサポートを「はい(/openmp)」にする。
-
ビルドの構成がRelease x64であることを確認する。
-
ビルド -> ソリューションのビルドを選択してビルドを開始する。
-
ビルド完了後、CS-IS-PBVR¥CS_server¥x64¥Release配下に、pbvr_filter.exe(フィルタ)、pbvr_server.exe(サーバ)の実行モジュールが生成されることを確認する。
サーバプログラムは独自のKVSML形式によるボリュームデータのみ処理できるが、
KVS・VTKライブラリを使用してサーバプログラムの対応データ形式を拡張することもできる。
使用方法についてはチュートリアルに記載している。
KVS及びVTKは事前にインストールされているものとする。
インストール方法は各ライブラリリポジトリを参考にする。
また、VTKのインストールにあたってはCMake-guiにおいて以下の設定を行うこと。
- BUILD_SHARED_LIBSオプションをオンにする。
- CMAKE_BUILD_TYPEオプションを”Release”にする。
- CMAKE_INSTALL_PREFIXをVTKをインストールする場所に設定する。
1.以下の環境変数を設定する。
変数 | 値 |
---|---|
KVS_DIR | d:\environments\KVS\install |
VTK_VERSION | n.n |
VTK_LIB_PATH | d:\environments\VTK\lib |
VTK_INCLUDE_PATH | d:\environments\VTK\include\vtk-n.n |
PATH | d:\environments\VTK\bin |
ここで、n.nには使用するVTKのバージョンを入力し、パスはVTKライブラリのインストール環境に合わせて書き換えること。
2.CS-IS-PBVR/CS_serverディレクトリ配下のpbvr.slnを実行し、MSVCを起動する。
3.プロジェクト「VisModule_vtk」を右クリックし、「ビルド」を選択。
4.ビルド完了後、CS-IS-PBVR\CS_server\x64\Release配下に、pbvr_server.exe(サーバ)の実行モジュールが生成されることを確認する。
VTK用のフィルタのビルドにはVTK6.0以上が必要である。 VTKライブラリのインストールについてはVTKウェブサイトを参照すること。 また、インストールにあたってはCMake-guiにおいて以下の設定を行うこと。
- BUILD_SHARED_LIBSオプションをオンにする。
- CMAKE_BUILD_TYPEオプションを”Release”にする。
- CMAKE_INSTALL_PREFIXをVTKをインストールする場所に設定する。
以下の環境変数を設定する。
変数 | 値 |
---|---|
VTK_VERSION | n.n |
VTK_LIB_PATH | d:\environments\VTK\lib |
VTK_INCLUDE_PATH | d:\environments\VTK\include\vtk-n.n |
ここで、n.nには使用するVTKのバージョンを入力し、パスはVTKライブラリのインストール環境に合わせて書き換えること。
KVS及びVTKは事前にインストールされているものとする。
インストール方法は各ライブラリリポジトリを参考にする。
また、VTKのインストールにあたってはCMake-guiにおいて以下の設定を行うこと。
- BUILD_SHARED_LIBSオプションをオンにする。
- CMAKE_BUILD_TYPEオプションを”Release”にする。
- CMAKE_INSTALL_PREFIXをVTKをインストールする場所に設定する。
1.以下の環境変数を設定する。
変数 | 値 |
---|---|
KVS_DIR | d:\environments\KVS\install |
VTK_VERSION | n.n |
VTK_LIB_PATH | d:\environments\VTK\lib |
VTK_INCLUDE_PATH | d:\environments\VTK\include\vtk-n.n |
PATH | d:\environments\VTK\bin |
ここで、n.nには使用するVTKのバージョンを入力し、パスはVTKライブラリのインストール環境に合わせて書き換えること。
2.CS-IS-PBVR/CS_server/KVSMLConverterに移動し nmake /A
を実行してビルドする。
3.CS-IS-PBVR/CS_server/KVSMLConverter/Example/Releaseにkvsml-converter.exeの実行モジュールが生成されることを確認する。
本クライアントプログラムは、オリジナルのKVSではなく改良した独自バージョンのKVSを利用してビルドされる。
-
GLUTのインストール
freeglutのWebサイトから'freeglut-MSVC-3.0.0-2.mp.zip'をダウンロードし解凍する。解凍後、以下のディレクトリ構造に合わせて配置する。 -
glewの配置
GLEWのWebサイトから'glew-2.1.0-win32.zip'をダウンロードし解凍する。解凍後、以下のディレクトリ構造に合わせて配置する。
<BASE_DIR>
└── lib
└── OpenGL
├── bin
│ ├── freeglut.dll
│ └── glew32.dll
├── include
│ └── GL
│ ├── eglew.h
│ ├── freeglut.h
│ ├── freeglut_ext.h
│ ├── freeglut_std.h
│ ├── glew.h
│ ├── glut.h
│ ├── glxew.h
│ └── wglew.h
└── lib
├── freeglut.lib
├── glew32.lib
└── glew32s.lib
配置が完了したら以下のユーザー環境変数を設定する。
変数 | 値 |
---|---|
KVS_GLUT_DIR | <BASE_DIR>¥OpenGL |
KVS_GLEW_DIR | <BASE_DIR>¥OpenGL |
Path | <BASE_DIR>¥OpenGL¥bin |
- KVSライブラリのインストール
「x64 Native Tools Command Prompt for VS 2022」を起動し任意のインストール先に移動する。その後、QTPBVR用KVSライブラリをクローンする。
git clone [email protected]: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 = 1
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 #imgui並びにOpenXR-SDKをインストールしている場合は1にする。
KVS_SUPPORT_PYTHON = 0
KVS_SUPPORT_MPI = 0
KVS_SUPPORT_EGL = 0
KVS_SUPPORT_OSMESA = 0
KVS_SUPPORT_EXTENDED_FILE_FORMAT = 0
編集後、以下のユーザ環境変数を設定してプロンプトを再起動する。
変数 | 値 |
---|---|
KVS_DIR | <BASE_DIR> ¥KVS¥install |
再起動後、<BASE_DIR> ¥KVSに移動し、ビルドとインストールを行なう。
c:¥>cd <BASE_DIR>¥lib¥KVS
<BASE_DIR>¥lib¥KVS>nmake
~~ビルドが完了するまで待つ~~
<BASE_DIR>¥lib¥KVS>nmake install
- QTPBVRのビルド
-
CS-IS-PBVR/QTPBVR/ディレクトリ配下のQTPBVR.proをQtCreatorで開く。
開いた際に「有効な設定が見つかりません」と表示された場合は、「OK」ボタンをクリックする。 プロジェクトの設定画面で「Desktop Qt 6.2.4 MSVC2019 64bit」のキットにチェックを入れ、「Configure Project」のボタンをクリックする。 -
ビルド設定をReleaseに切り替える。
-
下にスクロールし、環境変数KVS_DIRが設定されていることを確認する。
-
編集からqtpbvr.confの設定を確認します。.fbx、 .3dsフォーマットを読み込ませる場合はPBVR_SUPPORT_FBX、 PBVR_SUPPORT_3DSを1にし、FBXSDK、 Assimpライブラリのinclude、libディレクトリのフルパスを入力する。 またOpenXRを利用してHMDに可視化結果を表示させる場合はDESKTOP_SCREEN_MODE = 0, OPENXR_SCREEN_MODE = 1にする。
-
プロジェクトを右クリックし、「qmakeの実行」をクリックする。
-
qmake完了後、プロジェクトを右クリックし、「ビルド」をクリックする。
-
ビルド完了後、画面左下の再生マークまたはCtrl+RでQTPBVRの実行ができることを確認する。