LoginSignup
0
0

More than 1 year has passed since last update.

Visualization Toolkit (VTK)9.2 インストール&cmakeビルド備忘録Windows10

Posted at

新しく環境を整えてVTKのビルドをしたら昔と同じ部分で躓いたのでその備忘録。
こういった記事を書くのは初めてなので不備がありましたら教えていただけると幸いです。

やること

今回はGPU付きパソコンなのでcuda設定しつつVTK最新版インストールから確認まで

  • 最新版VTM9.2のインストール
  • cuda用設定
  • C++,python用ビルド
  • C++,cmake設定確認
  • python 確認

失敗したこと

最初に今回の失敗をまとめる

  1. cmakeのバージョン
    何も考えず一番上のをダウンロードしたら安定版ではなかったらしくエラーが出た?らしい。検証できなかったため本当にそうかどうかは不明。
  2. VTK9用のcmakeファイル設定
    VTK8までとは異なりVTK9ではautoinitの項目が必要とのこと。

あらかじめ必要なもの

  • cmake安定版
  • VisualStudio
  • python

インストール

ダウンロード

VTK公式サイトからダウンロード。今回(22/10/27現在)は最新版のsouce VTK-9.2.2.tar.gzを選択。ダウンロードしたら適当な場所に展開。C直下のほうがいいとのことなのでとりあえずC:\lib\VTKに展開。

Cmake

参照先

展開したVTKをCmakeでビルドする。VTKフォルダ直下にbuildフォルダを作成してcmakeにいれる。cmakeの参照先はこんな感じ。

  • source :C:/lib/VTK-9.2.2
  • binaries :C:/lib/VTK-9.2.2/build

設定後、configureボタンを押し利用するVisualStudioを決定する。そうすると新しい設定項目が赤枠で出てくるので設定したい項目を変更する。前回はここcmakeでエラーが出た。原因は安定版じゃない最新版cmake**-rc2をインストールしていたことだった。何も考えずに一番上ものをインストールしてはいけない…
cmake_VTK.png

Cmakeの設定

今回の設定項目はこんな感じ。ここは各自設定する。

Name Value 説明
CMAKE_CXX_MP_FLAG コンパイルの並列化
CMAKE_INSTALL_PREFIX C:/lib/VTK-9.2.2/install dllとかの作成先
VTK_USE_CUDA cudaの利用
VTK_WRAP_PYTHON python用のbuild
CMAKE_INSTALL_PREFIXのフォルダに最終的にパスを通すことになるのでわかりやすいところに変更した。

設定したらもう一度configureボタンを押す。今回の場合はpythonの参照先などが新たに追加されたので確認。また、変更箇所があった場合は改めてconfigureボタンを押す。

Generate->Open Project

まぁまぁ時間がかかる。うまくいったらプロジェクトを開く。

VisualStudioビルド

VisualStudioが起動したら、以下の流れでビルド。これまた時間がかかる。

  1. 設定をDebugからRelease
  2. ALL_BUILDをビルド
  3. INSTALLをビルド

うまくいったら CMAKE_INSTALL_PREFIXで設定したフォルダ(C:\lib\VTK-9.2.2\install)に以下のフォルダが生成されている。

  • bin
  • include
  • lib
  • share

できていたらひとまずビルドは終了。

パス設定

環境変数にインストール先のフォルダを登録。

変数 参照先
path C:\lib\VTK-9.2.2\install\bin
VTK_DIR C:\lib\VTK-9.2.2\install

pythonで使うためにパスを登録。
python用ファイルは、%{VTK_DIR}\bin\Lib\site-packageにあるのでこれでpthファイルを作成。

vtk.pth
C:\lib\VTK-9.2.2\install\bin\Lib\site-packages

作成したらcmakeの設定で確認したpythonの参照先のsite-packagesに移動。自分の場合**\Python38\Lib\site-packagesに移動した。

動作確認

C++

折角なのでcmakeで動くように設定する。

CMakeLists.txt
cmake_minimum_required( VERSION 3.10)

#create project
project(solution)
add_executable(project VTK_test.cpp)

find_package(VTK REQUIRED)
target_link_libraries(project ${VTK_LIBRARIES})
target_include_directories(project  SYSTEM PRIVATE ${VTK_INCLUDE_DIRS})
# autoinitがないとdllが見つかりませんエラーが発生する
vtk_module_autoinit(TARGETS project MODULES ${VTK_LIBRARIES})

VTK9ではRenderingContextOpenGL2の影響で正しくコンパイルできない(dllが見つかりません)となるのでvtk_module_autoinitが必要1。autoinitするのはRenderingContextOpenGL2だけでも問題なかった。前回も今回もここの修正に時間がかかった。

サンプルプログラムは@MusicScience37 さんの記事 を参照.
ちょっと粗めの球をぐりぐりできればOK

Python

こちらは普通にimport vtkでよい。
こちらもサンプルプログラムは@MusicScience37 さんの記事 を参照.
ちょっと粗めの球をぐりぐりできればOK

参考

今回の作業は以下のサイトを参考に執筆しました。とても助かりました。

Visualization Toolkit (VTK) のインストール on Windows, Visual Studio
4. VTKをPythonで動かす --- 3Dイメージ可視化に向けて
VTK:discourse"Can’t build VTK sample project: Missing module"

  1. https://discourse.vtk.org/t/cant-build-vtk-sample-project-missing-module/8056/21?page=2

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0