Jump to content

  • Log In with Google      Sign In   
  • Create Account

Units for HDR Textures

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
5 replies to this topic

#1   Members   -  Reputation: 294


Posted 01 April 2013 - 02:15 PM

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?

#2   Moderators   -  Reputation: 18036


Posted 01 April 2013 - 03:26 PM

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.

#3   Members   -  Reputation: 294


Posted 01 April 2013 - 04:15 PM

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, 01 April 2013 - 04:18 PM.

#4   Members   -  Reputation: 294


Posted 02 April 2013 - 05:22 PM

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.

#5   Members   -  Reputation: 294


Posted 04 April 2013 - 12:32 PM

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?


#6   Members   -  Reputation: 294


Posted 05 April 2013 - 04:47 AM

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

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.