Blackbody Radiation Shader or Idea for Maya Fluids


From all the whitepapers I read, big studios are using a shader based on blackbody radiation for explosions and etc. This shader gathers the temperature values of voxels

getFluidAttr -at “temperature” -xi 15 -yi 2 -zi 15; for example, and converts this to kelvin I guess, then adjusts the color of the voxel accordingly to the right color.

this is my understanding of the situation. does anybody have an idea how to implement this ???



This is widely explained at PAGE 181 of production volume rendering papers from siggraph 2011, this link is from a vimeo link …


Now I have sweet sims, but i would like to make them even better so lets work on this guys, I am no mathematician so help me here…


you could sample volumes for temperature, i would just make a separate pass with an incandescence curve based on just density, and tweak the results by eye. You are talking about black body volume emission right? as in heated air glowing? You can then use additive on the resulting pass and tone it down and maybe shift its colors and add glow as needed.


Blackbody radiation

When rendering emissive phenomena such as energy, fire, etc., the look is often achieved by the artist through the use of color ramps. These let the user remap an attribute to a color value.

In the volumetric shading context this is often used to drive the emission and opacity (absorption) of the volume, which makes it a very flexible tool with lots of control for the artist. 

A color ramp used to achieve an energy look
A color ramp used to simulate a fire look e.g. density or temperature

While color ramps have the advantage of being infinitely tweakable, the amount of control can also be a drawback. Fire tends to have a very particular color range, and when trying to model its look, it can be difficult to place the color values in such a way that the rendered result looks realistic. Also, broad changes where a range of values needs to be shifted can be difficult, as each sample is individually editable by the user.

Refference:Production Volume Rendering Systems SIGGRAPH 2011 Volume rendering at Sony Pictures Imageworks page 37

I am very happy with the current results, but Houdini has this implemented, I would like to be able to have this working within maya for fluids also. 

After all if this approach is used in many blockbuster movies.


bit late here to reply,

Having a black body radiation shader in maya will be a great add on. I also agree with Stooch’s technique to visually eyeball the temperature & adjust the opacity & incandescence setting of what u see in the hardware display but having a shader which automatically adjust shading based on just temperature or fuel values will be great.

I hope Duncan is listening & might take this a feature request :slight_smile:
Since maya in the viewport already allow us to isolate the density , temperature , fuel , pressure from each other in the display attribute of the fluidshape node then why is not possible to render them as a separate pass rather eyeballing with ramps. Ramp thing is great but to maintain the consistency in the look this feature might be of very useful.

In my Ex-Studio we had a volume shader which interprets the volume into density & temperature as a different channel. Based on its intensity/vaues it use to shade them in RGB color values.
here is the example that i used in production long time back with the temperature shading for the first impact explosion & the last Heart shape explosion.

hope u guys might like it but I am totally in favor of having a black body radiation shader as a feature in maya. Mr Duncan please surprise us in the next version of maya. I hope to see many rendering improvements like light scattering , optimization in rendering , motion blur etc etc. Implementing Deep Images for holdouts/cutouts will be awesome too :).


  • Vik


Just came across this guy who has implemented blackbody shading here … Quite impressive :slight_smile:


Hi there.

I’ve be informed by Vikas about this thread.
Thank you introduce my video, Vikas.
And I hope you like it.

Today, I released my blackbody tool on github under the MIT license.

It drives temperature ramp by blackbody radiation expression.

Please try it!!

If you have some good ideas or some opinions, please tell me it.

I hope you like it and helps your daily work!!

Thank you.


Thanks very much taikomatsu for the share. Really appreciate it a lot :slight_smile:
I will keep you posted !


  • Vik


Hi all.

Python - noob here wondering how should this work:

I get this

#Error: ImportError: No module named stdObserver #

is this just a path problem because there really is not module by that name, so…??



I had to rename CIE_StandardObserver to stdObserver but when launching the blackbodyUI() procedure I’m getting errors about an unsubscriptable module in the file.

taikomatsu can you please check the scripts and the folder names?

BTW, thanks for sharing this, very useful!!!


Actually never mind, just downloaded the update and works pretty well!


Hi ristopuukko,

Sorry, I had failed to upload it.
But I uploaded missing file and this problem was already settled.
Please download it once again.




Hi ristopuukko,

Sorry, I had not upload some necessary files.
I updated it yesterday.

Please download and try it again.



Sorry, I repeated same post because this thread couldn’t be refreshed when logged in my account.
I’m just a beginner on this forum, sorry.

Hi MMighe,
Thank you for try it.
I’m so sorry, I had some mistake when upload it.
But now, it’s solved.



Hi Tai

I downloaded the new version and it seems to work.

I’ll take it for a testrun and let you know how it went.



Lol my own thread was keep going, gotta check my mails more often, will try this asap. thanks man gr8 work…


It is working great, now we can study the magic behind it too. Thanks a lot :smiley: :buttrock:


will this work with maya 2012 SP2 ? i cant get this plugin loaded !


oops double post !


Is Python and Mel so yes, it works.


Sorry,I haven’t tested on Maya 2012 SP2.
Didn’t it work? I’m terribly sorry.

I’d like to modify the problem, but I’ll not be able to test on 2012 SP2 quickly.

If don’t you have some reasons you should use the node, remove from your $MAYA_PLUG_IN_PATH.
You can use it with “Expression mode” without the plugin.

Please try it!