Hello,
I am currently doing some bb related math in vex and need to match (as most as possible) arnold's bb output, but cant figure out what multiplier is used to drive intensity. In my formula, once i get rgb from temp and spectrum , i do multiplication by BOLTZMANN_CONSTANT * T*T*T*T which produces huge ranges pretty quickly, but arnold outputs orders of magnitude lower values even at intensity=1 for the same temperatures. Could you elaborate on what intensity rescaler is used ?
Solved! Go to Solution.
Solved by thiago.ize. Go to Solution.
What if you multiply the result with (1e-6f / AI_PI)? That could explain your orders of magnitude difference?
IIRC,
once you get to rgb using Planck's energy distribution formula given the temperature of the emitter in degrees Kelvin (and the wavelength..)... you probably want to use the Stefan-Boltzmann constant times the fourth power of the temperature (as per Stefan's law).
thanks, this reduced the difference down to roughly x1.2 (in case if i normalize rgb and then multiply by all constants, and x2 if unnormalized). Does it has some physical meaning ?
Initially, i did exactly that -- multiply by BOLTZMANN_CONSTANT * T*T*T*T , but quickly went to millions while the arnold's output is about few hundreds (i am generating temperatures up to 13000 K)
The division by PI is required in order to get radiance. As for the 1e-6, I don't know why that was done. It wouldn't surprise me if there's no physical meaning and it's just what happens to give pretty results with commonly used arnold settings.