Implementation of Analytical Lighting

Started by
4 comments, last by Willywill 9 years, 3 months ago

Hello again everyone! I was working on a tiled deferred rendering when I decided to implement some of the latest and greatest technology. I went and looked at the SIGGRAPH 2014 shading courses and stumbled upon something very unique.

Frostbite has taken the approach of using luminous power or luminous flux as a measure of luminosity and color for each punctual light.

References:

http://en.wikipedia.org/wiki/Luminous_flux

http://blog.selfshadow.com/publications/s2014-shading-course/frostbite/s2014_pbs_frostbite_slides.pdf

I wanted to implemented something like this myself but there wasn't much information I could gather about it such as formulas and conversions in order to achieve this. They did say they planned to release course notes that I am assuming cover some of the topics they presented but for now I figured I would as how would someone go about implementing such a thing?

Example image (page 39/91):

4QGc83e.jpg

Advertisement

See the bottom of this article:

http://www.fourmilab.ch/documents/specrend/

Note that what you are seeing in those slides is just an interface. Internally the engine is not using luminous power etc. Everything is baked into whatever the engine uses internally (which will likely be similar to any physically based renderer) upon export.

L. Spiro

I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid

See the bottom of this article:

http://www.fourmilab.ch/documents/specrend/

Note that what you are seeing in those slides is just an interface. Internally the engine is not using luminous power etc. Everything is baked into whatever the engine uses internally (which will likely be similar to any physically based renderer) upon export.

L. Spiro

Thank you! I'll give it a look wink.png

Isn't there a much easier way, now that I think about it? How about a LUT that has that ramp, and I just sample the ramp based on temperature?

The issue is what function would I use in order to sample the color based on the temperture chosen?

Isn't there a much easier way, now that I think about it? How about a LUT that has that ramp, and I just sample the ramp based on temperature?

The issue is what function would I use in order to sample the color based on the temperture chosen?

http://en.wikipedia.org/wiki/Planck%27s_law

In short, Planck's law describes how much energy per wavelength in the visible spectrum (or outside it for that matter) is emitted by a black body (a nonreflective body in thermodynamic equilibrium with its surroundings, don't fret too much about that, it's a sufficient approximation of reality for computer graphics purposes) at a given temperature, you integrate that power spectrum via a wavelength to RGB (or XYZ) reference table to obtain the corresponding RGB (or XYZ) color, and the color can perhaps be precomputed for each temperature of interest. That spectral conversion part is what the article Spiro linked discusses, so I think the physical basis for the temperature curve was what you were missing.

“If I understand the standard right it is legal and safe to do this but the resulting value could be anything.”

Isn't there a much easier way, now that I think about it? How about a LUT that has that ramp, and I just sample the ramp based on temperature?

The issue is what function would I use in order to sample the color based on the temperture chosen?

http://en.wikipedia.org/wiki/Planck%27s_law

In short, Planck's law describes how much energy per wavelength in the visible spectrum (or outside it for that matter) is emitted by a black body (a nonreflective body in thermodynamic equilibrium with its surroundings, don't fret too much about that, it's a sufficient approximation of reality for computer graphics purposes) at a given temperature, you integrate that power spectrum via a wavelength to RGB (or XYZ) reference table to obtain the corresponding RGB (or XYZ) color, and the color can perhaps be precomputed for each temperature of interest. That spectral conversion part is what the article Spiro linked discusses, so I think the physical basis for the temperature curve was what you were missing.

Ok gotcha, thank you very much! I just need to figure out the spectral conversion part huh.png. I've read enough of Reinhard's references to know about CIE, XYZ to RGB conversion biggrin.png

This topic is closed to new replies.

Advertisement