Page MenuHomePhabricator

Update MITK to use VTK 9
Closed, ResolvedPublic


MITK should be made compatible with the latest VTK 9.0 . For now this is a wishlist item but we should investigate and document the effort to evaluate if this is something we could achieve for MITK 2020

Event Timeline

nolden triaged this task as Wishlist priority.Jun 2 2020, 3:55 PM
nolden created this task.

VTK 9 changed core components like vtkCellArray that require a thorough adaption of existing code (including external projects like ACVD).

Status: Workbench with WorkbenchRelease configuration excluding ACVD/Remeshing starts on Windows. Does not solve T26981: [Segmentation] Multiple Segmentations under one parent node aren't displayed. :/

Fixed a bug where images appeared brighter as they should as soon as the 3d renderer rendered its first image. Only thing missing now is ACVD I guess.

Deleted branch feature/T27461-VTK9.

I migrated the old branch to the changes in develop since June.

Migrating ACVD to VTK 9 is not a trivial task as it heavily depends on VTK's data structures that fundamentally changed between VTK 8 and VTK 9. I already spent some hours and managed to compile ACVD but I still get runtime errors related to all the indexing in data structures. Given that ACVD is maintained by only a single person and most of the upgrades over the past years were contributions, I really think that we should look for alternatives to replace ACVD. Its choice to be deeply entangled with VTK for mesh processing added a lot of complexity and I really want to get rid of the additional VTK dependency. There were some advancements over the past years in terms of remeshing/mesh decimation and I already found solid CMake-based, license-friendly alternatives like OpenMesh.

Found very old isolated code (everything related to mitk::Mesh), that I would like to drop instead of migrate. Seems to be from the time when Visual C++ 6.0 was a thing. :D

All build configuration now works on Windows, Ubuntu, and macOS. OpenMesh also integrated but the remeshing/decimation is not yet implemented to replace the old functionality of ACVD.

Deleted branch feature/T27461-VTK9.