Jump to content
  • Advertisement
Sign in to follow this  

Units for HDR Textures

This topic is 2026 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

What units are the values in an HDR texture?


Unless they use radiometric or photometric units wouldn't it be hard to combine HDR textures in one game?


In MAX photometric rendering I can specify light values in lumens or candelas ... but what is stored in the output texture?


Is there an important difference between illuminance and luminance?


I think an HDR light map (recording incident light on a surface) would need to store illuminance

whereas an HDR environment map or light probe would store luminance?

Share this post

Link to post
Share on other sites

Typically you want a renderer to work with radiometric values, since you're essentially simulating the amount of energy being reflected off of various surfaces. In that cases your HDR environment maps will store radiance as a function of direction, while your traditional light map will contain the irradiance incident on a surface point. These days a light map is more likely to store multiple irradiance values using a higher-order basis that can be used to reconstruct/approximate the irradiance for a given surface normal.

Share this post

Link to post
Share on other sites

So have people standardised on SI units like: W·sr?1·m?2


(it would help if they had a name ...)


If I have 4 HDR textures from different sources can I assume they are in these units?


And can I assume that the output from an HDR render (with exposure control turned off) is in these units?


I am trying to use Paul Debevec's light probes inside my MAX photometric scene ...


PS I read your fantastic post about the H-basis

Edited by skytiger

Share this post

Link to post
Share on other sites

At last I found something:




which says:


For 3ds max, the conversion factor between the total pixel value and the luminance in (cd/m^2) is the "physical scale" (found in the exposure control configuration) divided by PI.

Of course, the exposure control itself must be off or it will affect the pixel values. As a trick can be noted, that if you add an exposure control (but keep it disabled!) and set the physical scale to PI (3.1415) and render to a floating point frame buffer, the total pixel values reported when you right click on them (by the "Mono:" heading) are in cd/m^2.

Share this post

Link to post
Share on other sites

I setup a test scene in MAX:

1) point light with intensity 10,000 candelas (cd)
2) a unit sphere with flipped normals and uvs

So the total flux
= 4 * pi * 10000 lumens

And the illuminance
= 4 * pi * 10000 / 4 / pi
= 10000 lux

Then I Render-to-texture DDS 32 bpp float (no gamma, no exposure, no shadows, no indirect)
result = 6.807
error factor = 1469

Then I scale up the intensity by 100
result = 680.7
error factor = 1469

So the result is proportional to lux

mentalraytips tip doesn't work for me
changing the Physical Scale of a disabled Exposure Control does nothing
(which is what the manual says will happen for photometric lights)

any ideas?


Share this post

Link to post
Share on other sites

Ensure System Unit = 1.0 metre


Activate Linear Exposure Control


(default settings won't change the light)


Brightness = 50.0
Contrast = 50.0
Exposure Value = 0.0
Physical Scale = 1.0


now 10,000 lux is stored as 10,000 in the .DDS or .HDR texture

Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!