MeVis Path Tracer¶
Introduction¶
The MeVis Path Tracer offers a state-of-the-art Monte Carlo Path Tracing framework running on CUDA GPUs. It supports high-quality physically based rendering of:
- Volumes
- Triangle Meshes
- Lines
- Spheres
- Volume Slices
- Volume Instances
- Volume Iso Surfaces
- Tag/Mask Volume + Per Tag Shading
- Clipping planes
It supports lighting and shadowing via:
- Area Lights (Rectangles and discs)
- Background Light (Image based lighting from a sphere or cubemap)
There are various BRDF materials that can be selected for shading:
- Matte BRDF
- Microfacet Blinn/Fresnel BRDF
- Principled BRDF
and for low gradient values in volumes, we also support:
- Isotropic Phase Function
- HenyeyGreenstein Phase Function
The camera model allows to apply 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, whom we want to thank for the great 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 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. We are looking into porting it to a cross platform environment like OpenCL or AMD HCC, but since this means a substantial extra effort, we will consider carefully.
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 appear on the right in your scene.
It collects the current Open Inventor camera and clipping planes and uses them when rendering.
There are various extensions that can be used:
- Volumes
SoPathTracerVolume
loads and renders a volume, multiple volumes with arbitrary world coordinates are supportedSoPathTracerMaskVolume
can be used to mask voxels inSoPathTracerVolume
volumesSoPathTracerTagVolume
can be used to tag voxels inSoPathTracerVolume
volumesSoPathTracerVolumeInstance
can be used to render aSoPathTracerVolume
with differnt transformation, subvolume, LUT, material, …SoPathTracerSlice
renders a slice at the given plane, showing the volume data of the given volumeSoPathTracerIsoSurface
renders an iso surface (with first hit refinement) on the given base volume
- Geometry
SoPathTracerMesh
scans the input scene for triangle meshes and ray traces themSoPathTracerLines
scans the input scene for line sets and ray traces them as cylinders with round capsSoPathTracerSpheres
renders a marker list as ray traced spheres
- Lights
SoPathTracerAreaLight
provides a realistic area light with attenuation, area and distanceSoPathTracerBackgroundLight
provides a background light, using image based lighting from a sphere or cube map
- Material
SoPathTracerMaterial
allows to specify 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.