POV-Ray

The Persistence of Vision Raytracer (POV-Ray).

This is the legacy Bug Tracking System for the POV-Ray project. Bugs listed here are being migrated to our github issue tracker. Please refer to that for new reports or updates to existing ones on this system.

Tasklist

FS#44 - Improve Normals Handling in Radiosity

Attached to Project: POV-Ray
Opened by Christoph Lipka (clipka) - Tuesday, 28 July 2009, 20:40 GMT
Last edited by William F Pokorny (wfpokorny) - Thursday, 19 January 2017, 14:12 GMT
Task Type Feature Request
Category Backend → Radiosity
Status Tracked on GitHub
Assigned To Christoph Lipka (clipka)
Operating System All
Severity Low
Priority Normal
Reported Version All
Due in Version Future release
Due Date Undecided
Percent Complete 0%
Votes 0
Private No

Details

Currently, radiosity does not make use of the fact that pertubed normals would theoretically just require a different weighting of already-sampled rays, leading to the following issues:

  • Honoring normal pertubations in radiosity leads to an increased number of samples, slowing down sample cache lookup.
  • The increased number of samples is generated from a proportionally higher number of sample rays, slowing down pretrace even further.
  • Low-amplitude pertubations tend to be smoothed out; “reviving” these is only possible by increasing the general sample density.
  • Handling of multi-layered textures with different normal pertubations is currently poorly implemented.

As a solution, I propose to store for each radiosity sample not only the resulting illumination for a perfectly unpertubed normal, but from the same set of sample rays also compute the illumination for an additional set of about a dozen standardized pertubed-normal directions, and interpolate among these when computing the radiosity-based illumination for a particular point that has a pertubed normal.

For backwards compatibility, this method of dealing with pertubed normals in radiosity might be activated by a different value for the “normal” statement in the radiosity block, say, “normal 2”.

This task depends upon

Comment by Thorsten Fröhlich (thorsten) - Tuesday, 23 August 2011, 06:42 GMT

What is the status of this?

Comment by Christoph Lipka (clipka) - Saturday, 03 December 2011, 03:08 GMT

Spherical harmonics might be the way to go; they might also allow radiosity to respect the brilliance parameter to some degree.

I don't intend to tackle this prior to 3.7.0 release proper though.

Comment by William F Pokorny (wfpokorny) - Thursday, 19 January 2017, 14:12 GMT
  • Field changed: Status (Assigned → Tracked on GitHub)

Now tracked on github as issue #188.

Loading...