Skip to content

Rendering: Add ANARI rendering capability

Kevin Griffin requested to merge griffin28/vtk:anari into master

This branch requires the ANARI SDK and at least one ANARI back-end. An example back-end (helide) is created when the ANARI SDK is built and can be used. However, the VisRTX back-end was used to generate the images for the CI tests since it supports more features than helide. The ANARI back-end needs to be on your LIBRARY_PATH and you will need to set the ANARI_LIBRARY environment variable with the correct back-end name (e.g. export ANARI_LIBRARY=visrtx).

Add ANARI rendering capability to the rendering infrastructure.

cc: @demarle @mwestphal

References:

Options used for building VTK_RenderingAnari module:

    vopts="-DCMAKE_BUILD_TYPE:STRING=Debug"
    vopts="${vopts} -DCMAKE_INSTALL_PREFIX:PATH=${vtk_inst_path}"
    vopts="${vopts} -DVTK_LEGACY_REMOVE=ON"
    vopts="${vopts} -DVTK_BUILD_TESTING=WANT"
    vopts="${vopts} -DVTK_ALL_NEW_OBJECT_FACTORY=ON"

    # Turn off module groups
    vopts="${vopts} -DVTK_GROUP_ENABLE_Imaging:STRING=DONT_WANT"
    vopts="${vopts} -DVTK_GROUP_ENABLE_MPI:STRING=DONT_WANT"
    vopts="${vopts} -DVTK_GROUP_ENABLE_Qt:STRING=DONT_WANT"
    vopts="${vopts} -DVTK_GROUP_ENABLE_Rendering:STRING=DONT_WANT"
    vopts="${vopts} -DVTK_GROUP_ENABLE_StandAlone:STRING=DONT_WANT"
    vopts="${vopts} -DVTK_GROUP_ENABLE_Views:STRING=DONT_WANT"
    vopts="${vopts} -DVTK_GROUP_ENABLE_Web:STRING=DONT_WANT"

    # Turn on individual modules. dependent modules are turned on automatically
    vopts="${vopts} -DVTK_MODULE_ENABLE_VTK_CommonCore:STRING=YES"
    vopts="${vopts} -DVTK_MODULE_ENABLE_VTK_DomainsChemistry:STRING=YES"
    vopts="${vopts} -DVTK_MODULE_ENABLE_VTK_FiltersFlowPaths:STRING=YES"
    vopts="${vopts} -DVTK_MODULE_ENABLE_VTK_FiltersHybrid:STRING=YES"
    vopts="${vopts} -DVTK_MODULE_ENABLE_VTK_FiltersModeling:STRING=YES"
    vopts="${vopts} -DVTK_MODULE_ENABLE_VTK_FiltersTexture:STRING=YES"
    vopts="${vopts} -DVTK_MODULE_ENABLE_VTK_FiltersParallel:STRING=YES"
    vopts="${vopts} -DVTK_MODULE_ENABLE_VTK_GeovisCore:STRING=YES"
    vopts="${vopts} -DVTK_MODULE_ENABLE_VTK_IOEnSight:STRING=YES"
    vopts="${vopts} -DVTK_MODULE_ENABLE_VTK_IOGeometry:STRING=YES"
    vopts="${vopts} -DVTK_MODULE_ENABLE_VTK_IOLegacy:STRING=YES"
    vopts="${vopts} -DVTK_MODULE_ENABLE_VTK_IOPLY:STRING=YES"
    vopts="${vopts} -DVTK_MODULE_ENABLE_VTK_IOXML:STRING=YES"
    vopts="${vopts} -DVTK_MODULE_ENABLE_VTK_InteractionStyle:STRING=YES"
    vopts="${vopts} -DVTK_MODULE_ENABLE_VTK_RenderingAnnotation:STRING=YES"
    vopts="${vopts} -DVTK_MODULE_ENABLE_VTK_RenderingFreeType:STRING=YES"
    vopts="${vopts} -DVTK_MODULE_ENABLE_VTK_RenderingOpenGL2:STRING=YES"
    vopts="${vopts} -DVTK_MODULE_ENABLE_VTK_RenderingVolumeOpenGL2:STRING=YES"
    vopts="${vopts} -DVTK_MODULE_ENABLE_VTK_RenderingVtkJS:STRING=YES"
    vopts="${vopts} -DVTK_MODULE_ENABLE_VTK_libxml2:STRING=YES"
    vopts="${vopts} -DVTK_MODULE_ENABLE_VTK_octree:STRING=YES"
    vopts="${vopts} -DVTK_MODULE_ENABLE_VTK_jsoncpp:STRING=YES"
    vopts="${vopts} -DVTK_MODULE_ENABLE_VTK_exodusII:STRING=YES"
    vopts="${vopts} -DVTK_MODULE_ENABLE_VTK_libharu:STRING=YES"
    vopts="${vopts} -DVTK_MODULE_ENABLE_VTK_ioss:STRING=YES"

    # ANARI
    vopts="${vopts} -DVTK_MODULE_ENABLE_VTK_RenderingAnari:STRING=YES"
    vopts="${vopts} -Danari_DIR=/home/kgriffin/VisIt/third_party/3.3.1/anari/0.3.0/linux-x86_64_gcc-9.4/lib/cmake/anari-0.4.0"

Merge request reports