MeVis Path Tracer¶
Introduction¶
The MeVis Path Tracer offers a state-of-the-art Monte Carlo path tracing framework that operates on CUDA GPUs. It supports high-quality, physically based rendering of:
- Volumes
- Triangle Meshes
- Lines
- Spheres
- Volume Slices
- Volume Instances
- Volume Isosurfaces
- Tag/Mask Volume + Per Tag Shading
- Clipping planes
It supports lighting and shadowing through:
- Area Lights (Rectangles and discs)
- Background Light (Image based lighting from a sphere or cubemap)
Various BRDF materials can be selected for shading:
- Matte BRDF
- Microfacet Blinn/Fresnel BRDF
- Principled BRDF
For low gradient values in volumes, we also support:
- Isotropic Phase Function
- HenyeyGreenstein Phase Function
The camera model allows for applying an depth-of-field effect. It supports both perspective and orthographic cameras, taken from the Open Inventor scene. To integrate with other OpenGL content, it can render the first hit depth to the depth buffer.
Credits¶
The MeVis Path Tracer is a completely refactored and substantially extended fork of the “ExposureRender” framework by Thomas Kroes, to whom we extend our gratitude for the insightful paper and for open-sourcing the renderer:
https://github.com/ThomasKroes/exposure-render “An interactive photo-realistic volume rendering framework”, T. Kroes, F. H. Post, C. P. Botha
The framework utilizes various third-party libraries, as listed in the MeVisLab “About” screen. It contains an MLPathTracer DLL that does not depend on Open Inventor and a SoPathTracer
module that implements the Open Inventor bindings.
The framework uses various third party libraries, as listed in the MeVisLab “About” screen. It contains a MLPathTracer DLL, which does not depend on Open Inventor and SoPathTracer which implements the Open Inventor bindings.
Requirements¶
The first iteration is based on CUDA and only works on Nvidia GPUs.
Screenshots¶
The following screenshots demonstrate the various features of the MeVis Path Tracer, including volume instancing, meshes, clipping planes, image-based lighting, and depth of field:
Modules¶
The SoPathTracer
is the main renderer of the framework and should always be positioned to the right in your scene. It collects the current Open Inventor camera and clipping planes and utilizes them during rendering.
There are various extensions that can be used:
- Volumes
SoPathTracerVolume
: Loads and renders a volume; multiple volumes with arbitrary world coordinates are supported.SoPathTracerMaskVolume
: This can be used to mask voxels inSoPathTracerVolume
volumes.SoPathTracerTagVolume
: This can be used to tag voxels inSoPathTracerVolume
volumes.SoPathTracerVolumeInstance
: This can be used to render aSoPathTracerVolume
with differnt transformation, subvolume, LUT, material, etc.SoPathTracerSlice
: Renders a slice at the specified plane, displaying the volume data of the given volume.SoPathTracerIsoSurface
: Renders an isosurface (with first-hit refinement) on the specified base volume.
- Geometry
SoPathTracerMesh
: Scans the input scene for triangle meshes and ray-traces them.SoPathTracerLines
: Scans the input scene for line sets and ray-traces them as cylinders with rounded caps.SoPathTracerSpheres
: Renders a marker list as ray-traced spheres.
- Lights
SoPathTracerAreaLight
: Provides a realistic area light with attenuation, area, and distance properties.SoPathTracerBackgroundLight
: Provides a background light using image-based lighting from a sphere or cube map.
- Material
SoPathTracerMaterial
: Allows the specification of which material should be used for a given object.
Have a look at the example networks of the modules to learn how to use them.