Path-Tracing
Introduction
HOOPS Luminate, amongst other rendering algorithms, offers path-tracing to render pre-visualization as well as high end pictures from 3d scenes. It can be turned on when calling RED::IWindow::FrameTracing
by selecting the right feedback mode (RED::FTF_PATH_TRACING
).
Path-tracing works by sending rays from the eye and following only a single randomly-chosen bounce at each surface interaction. It computes reflections, refractions, lighting and GI at once, without the need of any pre-processing work. Therefore, it makes path-tracing the method of choice when it comes to render immediate, fully-featured pictures.
The main issue with path-tracing is noise which is difficult to remove from the pictures without any additional post-processing. However, in some cases (exterior lighting, object design), path-tracing can still be used to render high-quality final images. Otherwise, the method is perfect for quick pre-visualization of 3d scenes under complex lighting conditions.
Note
In HOOPS Luminate, path-tracing is supported only by realistic materials (RED::IMaterial::SetupRealisticMaterial
). Other materials will render black. Caustics, because they can’t be correctly handled by path-tracing) are also discarded when using path-tracing to render.
As mentioned earlier, path-tracing explicitly computes GI without the need of extra structures like the GI cache for examples. So, none of the GI cache parameters is meaningful to the path-tracing method and, as a consequence, it can starts rendering immediately.
Path-Tracing Parameters
Path-tracing in HOOPS Luminate is controlled with only two parameters: the number of paths traced per pixel and the depth of the GI computation.
The number of paths traced per pixel lets you control the quality of each pixel colour estimation. Increasing it enhances the anti-aliasing, the quality of lighting and glossy effects but also the rendering time. You can change the number of paths per pixel by calling RED::IViewpointRenderList::SetSoftAntiAlias
. The actual number of paths traced will be the square value of the passed parameter.
The depth of the GI controls how far in inter-diffuse reflections the renderer goes. Set it to 0 to remove any GI computation. At 1, only one single bounce of indirect lighting will be computed. At 10, 10 bounces will be computed and so on. Increasing this value lets more lighting to be added to the scene but also increase the noise and the rendering time (not in a linearly way though). This parameter is controlled through the RED::OPTIONS_PATH_GI
engine option.