Rendering is the process of computing a three-dimensional geometric description of a scene into a two-dimensional image representation that looks real. Ray-tracing and Radiosity are two of the most famous rendering techniques for photo realistic images, right?

So which technique is suitable for rendering ten under-water images of marine creatures showing total internal reflection needed by ABC Marine Department. The department needs the images to be more natural and can wait for image generation for a month.

  • 2
    $\begingroup$ Not radiosity. You can look into photon mapping, vertex connection and merging, and MLT. $\endgroup$
    – lightxbulb
    Feb 4, 2020 at 18:41
  • $\begingroup$ Hey nice to see a fellow countrymen lurking around a Graphics site :) As lightxbulb said you'd be better off looking towards photon mapping/MLT. While the core rendering algorithm does matter, the equally or maybe more important part is simulating the sea effectively using proper light attenuation, absorption and scattering models, etc. So do check up on that as well. $\endgroup$ Feb 5, 2020 at 7:55

1 Answer 1


Radiosity is only efficient for diffuse to diffuse rendering. Path tracing is more versatile on the type of light transport that could be computed. The main issue with underwater rendering is the caustics generated from specular from the water-air interface. These caustics are very important to generate a realistic underwater image (except for deepwater rendering here the sunlight is completely attenuated).

The problem of rendering caustics from path tracing is the lack of non-efficient sampling strategies to generate a valid path. Density estimation [1] (a.k.a. photon mapping) could be a good candidate for rendering these difficult caustics, but a large scene will require light subpaths guiding to get a reasonable rendering time. Metropolis light transport (MLT) [2,3] provide this guiding automatically and could be used in a density estimation framework [4].

Recently, path guiding techniques [5,6] was proposed to render these difficult paths efficiently with unidirectional path tracing. The simplest approach to use/implement is the technique proposed by Muller et al. [5]. A Mitsuba code plugin is available on GitHub: https://github.com/Tom94/practical-path-guiding

Note that, inside water, there might are volume scattering events [7] to take into account, depending on the amount of particle floating.

[1] "Stochastic progressive photon mapping" Hachisuka et al., 2009

[2] "Metropolis light transport" Veach et al. 1997

[3] "Primary sample space MLT" Kelemen et al. 2002

[4] "Robust Adaptive Photon Tracing using Photon Path Visibility", Hachisuka et al., 2011

[5] "Practical path guiding for efficient light-transport simulation", Muller et al. 2017

[6] "On-line Learning of Parametric Mixture Models for Light Transport Simulation", Vorba et al. 2014

[7] "Monte Carlo Methods for Physically Based Volume Rendering", Novak et al., 2018


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.