8
$\begingroup$

In the style of trichoplax' question, I want to talk about yet another Wikipedia article: Radiosity (computer graphics). The article states:

Radiosity is viewpoint independent, which increases the calculations involved, but makes them useful for all viewpoints.

The technique works with diffuse surfaces only. This way, form factors can be precalculated and are independent of the viewer. The lighting needs to be updated only if some light source changed. If, on the other hand, the technique would support specular reflection, the form factors would depend on the viewer. Form factors and lighting would need to be updated constantly when the camera moves.

How does the limitation to diffuse surfaces increase calculations? Diffuse surfaces need to take light from all directions into account, which is more complex than taking light only from a smaller specular lobe. Is this what this sentence means? Is it just me or should this be rephrased?

$\endgroup$
  • 2
    $\begingroup$ I generally agree with your argumentation. But I think what the author means is, that the approach needs to perform its calculations for all existing patches, not only the visible ones. One could argue that path-tracing in contrast computes radiance only for visible patches/samples. While rays may still go everywhere, there might be parts of the scene that never receive any view-rays/paths; therefore there are no computations at all. Comparing with local GI the "problem of viewpoint independence" its even more apparent. Though, I still agree with you that this should be rephrased. $\endgroup$ – Wumpf Sep 4 '15 at 17:25
  • 1
    $\begingroup$ I agree with Wumpf, the view-independent technique does not take visibility into account which results in extra calculations because it needs to compute lighting for entire scene no matter where the camera is looking. Furthermore, you cannot reduce resolution of your computation in areas that are far. I think @Wumpf should paraphrase his comment as an answer. $\endgroup$ – ap_ Sep 4 '15 at 23:02
  • $\begingroup$ @ap_ Done. Feel free to edit :) $\endgroup$ – Wumpf Sep 5 '15 at 12:13
  • 1
    $\begingroup$ Are you going to improve article on Wikipedia? I see question like yours pretty often in Comptuter Graphics SE. Maybe it's worth considering? :) $\endgroup$ – bartosz.baczek Oct 8 '15 at 5:24
8
$\begingroup$

While it may not entirely clear from the formulation of the wikipedia article, the author raises an important issue: In contrast to many other approaches, Radiosity needs to perform its calculations for all existing patches, not only the visible ones. It is not the limitation to diffuse surfaces that increases the involved computations, but the fact that radiance is computed for all surfaces in the entire scene, not only the visible ones.

This is in strong contrast to other global illumination techniques like path-tracing, where radiance is computed only for visible samples. While the view-paths may still reach every point of the scene, there might be parts of a scene that are never reached by any view-rays/paths. Therefore, there are no computations at all. Comparing with local GI the "problem of viewpoint independence" its even more apparent.

On the other hand, as the Wikipedia article suggests, this may also be seen as a very useful property, since the computations do not need to be performed for each different viewpoint. This is not the case for most other techniques.

$\endgroup$
  • 1
    $\begingroup$ Ok, seems the main problem was that I read "viewpoint independent" as "BRDF is isotropic", not "lighting is calculated, whether you look at the surface or not". I'll wait another day for another answer and then probably accept this, thanks :) $\endgroup$ – David Kuri Sep 7 '15 at 10:20
4
$\begingroup$

Radiosity, by definition, handles only the diffuse component. You cannot 'limit' Radiosity to diffuse, because it already is handling just that diffuse component (remember - the diffuse lighting is just one (albeit popular) application of the energy distribution).

So, you just misinterpreted the quote.

Also, contrary to popular misconception, you do not have to distribute all energy to get great results. Look into Progressive Refinement method, which only processes the largest emitors, thus allowing to converge to 'close enough' solution much sooner.

Usually, you set some threshold (e.g. I want to redistribute 85% if all energy) and before processing the next Shooter patch, you do a simple check for the running total of the distributed energy (and quit the loop). This is usually few orders of magnitude faster (for a very minor implementation cost) than the reference brute-force method.

Of course, to get true benefits of Radiosity (e.g. color bleeding) it's best to redistribute as much as possible (given the resources available).

$\endgroup$
1
$\begingroup$

The sentence says it: radiosity precomputes an "image" for all potential viewpoints at the same time, i.e. it doesn't focus on just the rays that hit a particular observer. Hence there are naturally many more rays to consider, as you are actually rendering a multitude of views simultaneously.

Whether the surfaces are specular or diffuse isn't really relevant in regard to this statement.

To make the approach viable, radiosity performs very gross rendering, as if using large beams instead of thin rays.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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