VTK9: Problem with display helper object factory

Trying to build and run our application against VTK 9, I’m running into the trouble that when we create our 3D volume rendering pipeline, it crashes on line 647 of vtkFixedPointVolumeRayCastMapper.cxx (apparently there is no vtkRayCastImageDisplayHelper implementation registered). However, RenderingVolumeOpenGL2 is in the list of components we require from VTK on FIND_PACKAGE, and we link our target subsequently against VTK::RenderingVolumeOpenGL2. Shouldn’t this be enough to make the vtkOpenGLRayCastImageDisplayHelper available? At least it used to be with version 8.x… or what else could we be missing?

Regarding such an error, I only found this rather old report on the mailing list: https://public.kitware.com/pipermail/vtkusers/2014-July/084594.html, for which the fix back then was to load RenderVolumeOpenGL module; checking here: https://vtk.org/Wiki/VTK/VTK_6_Migration/Factories_now_require_defines
which mentions the VTK_USE_FILE automating this module adding; now that VTK_USE_FILE is not needed/supported anymore, is there something else required for the factories to work properly?
I’ve seen the documentation of the “new module system” (https://vtk.org/doc/nightly/html/md__home_kitware_dashboards_buildbot_vtk_nightly-master-ike-linux-shared-release_doc_nightly_osm749dd663df9981384f2598c108aac3b0.html), but this seems to be internal vtk development info, not for me as a user of VTK, right?
I didn’t find a migration guide for VTK9 yet - I guess it is still in the works (https://gitlab.kitware.com/vtk/vtk/issues/17696). I’d be happy to contribute there what little I can!

Anyway, in the spirit of following the “most important design guideline” as put by Scott Meyers, namely, " *Make interfaces easy to use correctly and hard to use incorrectly" (https://www.aristeia.com/Papers/IEEE_Software_JulAug_2004_revised.htm), wouldn’t it in general be a good idea to provide at least a warning if no concrete implementation is available for an object requested from a factory, and a guidance on how to enable one?

Ah, through


I came to this:
https://gitlab.kitware.com/vtk/vtk/-/blob/1abfe43a7b32b4606964005627b6c40723883a2e/Documentation/Doxygen/ModuleMigration.md
and it seems indeed there are some additional steps required. I’ll try that and report back my findings!

Issue fixed with info from above post!