VTK amb Visual Studio 2017 (C ++)

X

Privadesa i galetes

Aquest lloc utilitza galetes. A l’continuar, acceptes el seu ús. Aconsegueix més informació; per exemple, sobre com controlar les galetes.

Entès

Anuncis

VTK (The Visualization Toolkit) és una excel·lent biblioteca multiplataforma de codi obert enfocat en el desplegament de dades científiques en 2D i 3D. El core d’VTK està desenvolupat en C ++, però conté interfícies per emprar Tcl / Tk, Java, Python, (ActiViz.NET per a C #). VTK conté algoritmes per a visualitzar valors escalars, vectorials, tensorials, textures, així com un conjunt de widgets, processament en paral·lel, o suport d’altres eines com Qt o Tk. També implementa algoritmes per al suavitzat de malles geomètriques, reducció de polígons, triangulació de Delaunay, tall de polígons, entre d’altres. VTK és desenvolupada per Kitware la qual és una empresa líder en investigació i desenvolupament en camps com visió per computador, visualització mèdica.

en aquest post, veurem com executar el nostre primer programa en VTK emprant Visual Studio 2017 sota un ambient de Windows en el llenguatge C ++. Per a això, primer hem d’instal·lar i configurar VTK. I després executar un senzill codi d’exemple que està allotjat en aquest repositori de Github.

Configura i compilar VTK

El primer pas és descarregar VTK de la seva pàgina web https://www.vtk.org/download/

Farem servir la versió 8 (específicament la versió 8.1.0), descarregant l’arxiu. zip de fonts (Source). Després, recomano col·locar la carpeta descomprimida en alguna ubicació “global” com c: /VTK/VTK-8.1.0, en el futur potser tinguem més versions de VTK instal·lades en alguna cosa com c: /VTK/VTK-9.0

La idea de tenir el font de VTK, és poder compilar en el teu ordinador i generar els .lib i .dll del teu compilador, que en aquest cas és Visual Studio 2017 a Windows 10. Per a això, es requereix una eina anomenada CMake que permet generar codi automàticament d’acord amb la configuració de l’ordinador (multiplataforma). No m’estendré en les àmplies avantatges de CMake, abreviatura de cross platform make, però és realment molt útil quan tens una gran quantitat de biblioteques. per descarregar CMake per Windows en https://cmake.org/download/ emprant el Installer o el .zip, qualsevol estarà bé.

Un cop instal·lat CMake, procedim a executar-lo i col·locar la ubicació de la font d’VTK prèviament descarregat, i la ubicació on es compilarà:

Per a aquest exemple, crearem la carpeta x64 / que és on s’allotjarà la versió compilada de VTK. Realment pots col·locar-li qualsevol nom, build, asdf, compiled, o qualsevol :-). Després, hem de fer clic en Configuri:

cmakeCompiler

Ens apareixerà un diàleg per seleccionar el compilador a utilitzar, Visual Studio, mingw , etc .. de fet, si tens diverses versions de Visual Studio, apareixen totes. Jo seleccionaré Visual Studio 15 2017 Win64, que significa la versió de l’compilador per VS17 (encara que sembli estrany, la versió de l’VS2017 és 15, el Toolset és v141 i el compilador de C ++ potser 19.x, però aquest és un altre tema per conversar) . Deixem l’opció de Utilitza Default native compilers i fem clic a Finish. Aquest procés explora sobre els arxius necessaris per compilar VTK correctament, i pot portar alguns minuts.

Ara, és possible seleccionar les opcions de compilació per VTK (ús de Python, Qt, WebViews, generar la documentació, els exemples, construir els wraps per a Java / Python, entre d’altres). Això pot canviar diversos aspectes de l’procés, però per ara no hi haurà canvis significatius en el resultat llançat. Fem clic una vegada més en Configureu, i ha d’aparèixer a la consola de CMake GUI el missatge Configuring done, i finalment fer clic en Generate. Quan aparegui a la consola de Generating done, ja es pot tancar CMake i anar-nos a C: \ VTK \ VTK-8.1.0 \ x64.

Allà, hi haurà el fitxer VTK.sln que és el solution que correspon a Visual Studio 2017, el qual obrim a l’IDE on veurem molts projectes associats que hem de compilar. Un punt important és que la compilació es pot fer per diverses maneres: Debug, MinSizeRel, Release, RelWithDebInfo. Per ara, fem-ho per Debug que està seleccionat per defecte, pressionant F7 o l’opció Build que apareix a l’fer clic dret sobre el projecte ALL_BUILD. Aquest procés porta un temps (més temps que CMake), i construirà un seguit de .libs i .dlls que són la base per a emprar VTK.

vsVTK.jpg A l’acabar, dins de C: \ VTK \ VTK-8.1.0 \ x64 hi haurà moltes carpetes (corresponent a cada projecte inclòs en la solució VTK.sln), a més de la carpeta bin / (que conté tots els .dll de VTK), i la carpeta lib / (que conté tots els .lib de els projectes). Com es va fer la compilació en mode Debug, la carpeta que hi haurà dins d’aquestes serà Debug /, i si es compila per exemple Release, s’anirà afegint Release / dins lib / i bin /.

És important destacar que aquest procés només es fa una vegada sempre que no hi hagi canvis en la configuració de VTK. Si es vol afegir una opció que estava quan es va configurar CMake, s’ha de repetir el procés. També, és possible no fer BUILD_ALL, sinó només als projectes que realment s’empraran. Cada projecte de la solució de VTK representa un conjunt de funcionalitats com vtkCommonCore, vtkpng, etc., llavors si tens coneixement dels projectes que faràs servir de VTK, no has de compilar tot, estalviant una mica de temps. No obstant això, per aquest post, simplement esperarem que acabi de compilar: D.

El meu primer programa amb VTK

L’ús de CMake en VTK va ser possible perquè existia un arxiu anomenat CMakeLists .txt que és un arxiu de configuració de el projecte. Aquest és el punt d’entrada de CMake on s’indiquen tots els paràmetres associats a un projecte i així poder-lo fer-ho multiplataforma independent de la ubicació de les biblioteques necessàries per a la seva execució.

Per al nostre primer programa a VTK, farem aquest arxiu CMakeLists.txt per generar de forma automàtica la configuració de VTK fent-ho compatible en una altra plataforma on es trobi instal·lat VTK. La pàgina oficial de VTK ofereix moltíssims exemples, https://lorensen.github.io/VTKExamples/site/Cxx/, i tots contenen la descripció de l’arxiu CMakeLists.txt.

Per no començar des de zero, utilitzarem un codi base que està en https://github.com/esmitt/FirstVTK que conté l’arxiu CMakeLists.txt i l’arxiu ConeRendering.cpp. El nostre CMakeLists.txt conté el següent:

cmake_minimum_required(VERSION 2.8)PROJECT(ConeRendering)find_package(VTK 8.0.0 REQUIRED)include(${VTK_USE_FILE})file(GLOB SOURCES src/ConeRendering.cpp)add_executable(ConeRendering MACOSX_BUNDLE src/ConeRendering.cpp)target_link_libraries(ConeRendering ${VTK_LIBRARIES})

No anem a explorar en la formació d’un arxiu CMakeLists.txt, però, és possible identificar certs paràmetres com el nom de el projecte que es generarà en Visual Studio, o el nom de fitxer .cpp que conté el main.

Un cop descarregat el codi (o clonat amb git), fem el mateix procés que es va fer per compilar VTK: utilitzarem CMake. Així, hem de col·locar tant la ubicació de la nostra carpeta FirstVTK, i la carpeta de sortida, where to build the binaries, que serà FirstVTK / x64 / (recorda que el nom de x64 / pot ser qualsevol). Fem clic en Configureu i obtindrem alguna cosa com:

FirstVTKjpg

Si aquestes en aquest punt, tot està bé! Hem de indicar-li a CMake la ubicació dels .lib i .dll de VTK, en aquest cas, per a la variable VTK_DIR col·loquem C: \ VTK \ VTK-8.1.0 \ x64. i fem clic en Configureu i després a Generate. Obrim l’arxiu FirstVTK / x64 / ConeRendering.sln amb Visual Studio 2017, on trobarem 3 projectes: AL_BUILD, ConeRendering i ZERO_CHECK.

  • ALL_BUILD construeix tots els projectes de la solució (com un make all)
  • ZERO_CHECK s’empra per tornar a executar cmake quan es fa un canvi al fitxer CMakeLists.txt
  • ConeRendering és el projecte que conté el codi en C ++ de el desplegament amb VTK

Després, fem Build en el projecte BUILD_ALL, i ens situem en el projecte ConeRendering (per exemple, emprant setembre As StartUp Project a l’fer clic dret sobre el nom de el projecte). Si tractem d’executar sense estar ubicats en ConeRendering, obtindrem un error, per això és important situar-se en aquest projecte dins de la solució.

Ara ja pots executar el codi! Si apareix un missatge com aquest:

errorVTK

Vas pel bon camí 😊 Què passa? Atès que estem en Windows, cal afegir els DLLs a l’PATH de el sistema perquè Windows sàpiga on trobar-los. No obstant això, tens diverses opcions com afegir com a variables de sistema, o copiant els DLLs a la carpeta de l’executable (carpeta Debug /), o usant una funcionalitat de Visual Studio.

Fent servir Visual Studio, hem de fer clic dret en el projecte ConeRendering – > Properties, i ens situem en Debugging – > Environment:

addpath

Allà, afegim la ruta a on es troben els DLLs de VTK, en el nostre cas estan situats en C: \ VTK \ VTK-8.1.0 \ x64 \ bin \ Debug. Això fa que es col·loquin com a part de l’PATH de Windows però només per a l’execució de el projecte, és equivalent a col·locar-lo en una consola de Windows, que un cop s’hagi tancat, es perd aquesta configuració. Potser no és la forma eficient, però és una manera depenent de el projecte.És important destacar que si hi ha una variable d’entorn per VTK , per exemple VTK_DIR , llavors la instrucció canviària a PATH = % PATH % ; % VTK_DIR %.

Ara , torna a executar el codi :

conerendering

Encara que sembla un procés llarg , això permet molta més portabilitat del teu codi , ja sigui al Linux o amb un altre compilador. A més, un cop tinguis la configuració inicial, ja només queda escriure el codi en VTK . VTK és força ampli en els seus algoritmes i estructures de dades disponibles, per al rendering de dades, de fet, fins ha una versió web.

En un altre post explorarem una mica més en VTK , per ara, ja completem un pas important per a seguir escrivint codi .

Et van funcionar bé els passos explicats ? No dubtis a preguntar.

Resum : Si aquestes en l’àrea de visualització científica , ¡ has de conèixer VTK !

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *