Rendering smoke

   13987   8   2
User Avatar
Member
250 posts
Joined: 2月 2013
Offline
Hello,

Here's a screenshot of my scene, and I want my render to looks like the smoke in the viewport. Because in the render everything seems to be at the same density, but in the viewport there are a lot of differents shades in the smoke. Where do I have to go to control this kind of settings ?


Thanks

Lewul

Attachments:
render_pyro.png (792.9 KB)

https://vimeo.com/obreadytom [vimeo.com]
User Avatar
Member
250 posts
Joined: 2月 2013
Offline
Oh, this is what I get when I use “Micropolygon rendering” instead of the pbr. But it seems that the density is the same everywhere…

Attachments:
forum1.png (704.9 KB)
forum1.picnc (1.2 MB)

https://vimeo.com/obreadytom [vimeo.com]
User Avatar
Member
250 posts
Joined: 2月 2013
Offline
I found it, by tweaking the parameters of the shader… (I feel stupid)
https://vimeo.com/obreadytom [vimeo.com]
User Avatar
Member
67 posts
Joined: 10月 2011
Offline
Hey Lewul,
You can have a lot of control over your simulation with the shader in pyro.
So use your viewport as a quick visualization and reference of your sim but generally I would rely on the visualization tabs (temperature, fuel, …)
when your happy with your Sim then you should check the density's Final Amplitude value of the shader to match what you want in your final render…

lari

lari
User Avatar
スタッフ
2540 posts
Joined: 7月 2005
Offline
The pyro shader has a feature where you can sync it up to any Smoke Object DOP or any Volume Visualization SOP and it can “transfer” the settings used to get the viewport look directly on to the pyro shader, and back again if you wish.


First create the Pyro shader in /shop (not on the material palette…).
There is the Utils folder on the Pyro.
Add a transfer then select the smoke object DOP in the pyro sim.
Finally press on the transfer to modify the Pyro parameters to match the visualization settings on the Smoke Object DOP.

Should get you close-ish…

Attachments:
pyro_match_Smoke_pyro_utils.jpg (56.4 KB)
pyro_match_Smoke_pyro_compare.jpg (166.4 KB)
pyro_match_SmokeObjectDOP.hip (3.4 MB)

There's at least one school like the old school!
User Avatar
Member
250 posts
Joined: 2月 2013
Offline
Hi,

Thanks for your answers !
I don't know why I took the billowy smoke shader instead of keeping the original shader…
So the shader is really important when creating smoke ? I mean if I want to control the amount of smoke I can only do it in the shader ? Because I didn't find the way to do it in the solver itself
Jeff, I will test your solution, thanks for the tip !
Just an other question : how can I see the shader I assigned to my pyro ?
https://vimeo.com/obreadytom [vimeo.com]
User Avatar
スタッフ
2540 posts
Joined: 7月 2005
Offline
Lewul
Hi,
So the shader is really important when creating smoke ? I mean if I want to control the amont of smoke I can only do it in the shader ? Because I didn't find the way to do it in the solver itself
The pyro shader can be used to completely re-shape the volumes it is fed in so yes, absolutely, the shader is crucial in achieving “your” look. Think of the volume coming in as just the start and in many cases, a not so good start that mandates a lot of tweaking in the pyro shader.

Here is the general method used for reshaping a volume being fed in to the Pyro shader whether it is used as density (smoke) or fire:

Referenced_Volume
|
Fit Range
|
Ramp
|
Multiply
|
Sharpen Filters
|
Final_Multiply

Any one of the steps above can completely change how you render the smoke.

For example if you invert the slope of the ramp, you take any value of 0 and flip it to 1 and 1 to 0 literally inverting the density value of the smoke turning it inside out.

It is very common to accentuate a single band in your smoke by reshaping the ramp to have a spike or two.

—-
As for more or less “dense” smoke, that is a common misconception.

You need to understand that the smoke field in your sim acts more as a mask than smoke. It is the only field that is essentially either 0 or 1. The density field is generally used to resize the sim. It is used in many cases to multiply other fields prior to that field affecting the sim (temperature comes to mind in a few places), etc. It really is more mask than smoke as far as the pyro simulation is concerned.
As far as the artist is concerned, you go in thinking density is smoke and yes ultimately the density field is repurposed for smoke.

But these days (on advice from a high-end user) I am using temperature more and more as smoke. Temerature has a nice continuous variation in values from 0 to 10, 20, 30 or higher. It isn't clipped down from 0-1. This gives you the advantage of revealing a lot more detail with the ramps reshaping the result tremendously.

Now how to do you see the min and max range of a field in Pyro? You can use expressions but I like to see this visually. On the Smoke Object DOP's Visualization tab I will turn off all the fields and then turn on the one I am interested in, say temperature. You then can go to the temperature vis tab and adjust the Guide Range parameters to adjust the display of the smoke. By using the XCF ladder handle on the max Guide Range, increase it until the temperature field has barely any white spots left. That's about the maximum value of the temperature field in your sim.
This min and max value in the field directly maps in to the min and max ranges of the simulation. This is the full bandwidth of information you can work with in sculpting your volume.

Again the density field is a boring 0-1 but as far as Pyro is concerned, you are guaranteed decent results. This is the “anyone can get a decent look” default.
Then you ask questions as you have and you dig deeper and you see that there is an entire playground of fields to muck about with and to achieve a look no one else has ever achieved. This is pure Houdini. This is what we encourage.

So you substitute temperature as your base smoke field instead of density and knowing the full range of your temperature across the simulation, you can pull out even more detail. Simply set the first set of min max parameters in the density shaping pipeline to the min and max ranges of your temperature (which remaps temperature to 0-1) and now adjust the ramp to adjust the density within the full range of temperature all from 0-1 at this point.

In buoyancy type pyro simulations, the difference in shape between temperature and density is minimal as density is generally a mask for the temperature, well kinda loosely but can be thought of as such.

The two big advantages of using temperature in place of density as your smoke:
1. The Temperature field is quite continuous and even from 0 through 1 on to it's max value allowing you to create an initial spike in the ramp to accentuate the initial boundary layer of smoke resulting in much sharper smoke.
2. All of that wonderful information above the boring smoke cap of 1. The temperature field will have a lot more info in the body of the volume to play with. You can wash it out by just flatlining the ramp at 1 or 0 or you can accentuate it with peaks in your ramp.

I can't think of a better look-dev time waster than to play with temperature mapped to smoke and the ramp adjustment in the Pyro shader.

Not that I am encouraging you to use temperature to drive in to smoke…

Oh btw the issues with rendering sharp crisp smoke? Use temperature as your density field but KNOW THE FULL RANGE OF THE TEMPERATURE using the visualization method above so you know what values to play with. If you use the min and max hscript density expressions instead of the visual method for look dev of your effect, you know it will be hammer time.

—-

Back to the “I want more smoke” issue.

If you want more smoke, you need to ask your self by more do I mean:

more dense smoke injecting more temperature and changing the look of my simulation

or

don't change the sim but how do I get denser smoke?

If you want more smoke that affects the simulation, simply increase the Source Density DOPs smoke amount parameter. This will affect the simulation and depending on the velocities present, can give you denser smoke (accumulating to 1 and not too much further) or it will streak even further faster.
You may also want to reduce the dissipation of the smoke on the Pyro solver if it is disappearing too fast.

If you want the smoke to be visually more dense, you need to multiply the density but only for display. This is easily done on the Smoke Object DOP that initializes the smoke simulation object (called pyro if you used the shelf).

In the visualization tab you will see that Multi Field is on and the rest of the fields are off. This is what you see.
You can sculpt the fields for display purposes in the dedicated Multi tab. The Multi Field parameters are identical to the Pyro shader's parameters and as I mentioned in the previous post, can be mapped in to the pyro shader.
Simply increasing the density on the final multiply for the sculpting of the density part is all you need to do to have your smoke more or less dense.

Just an other question : how can I see the shader I assigned to my pyro ?
Easy one.
Shader assignments are either at the Object level in the material parameter or at the SOP level with Material SOPs.

The object material assignments has to be there and is easy to find.

The geometry material assignment not so much. Once a Material SOP has assigned a material to a primitive, that becomes a geometry primitive attribute. This means that say you are loading geometry from disk and it already has a material primitive string assignment, there will be no Material SOP. I won't get in to whether the material is still present in the hip file as it may not be…

So the only way to be assured that there is no material assignment at the primitive level is to use the Details View geometry spreadsheet and inspect the primitive attributes looking for a vm_material attribute.

Having said all of that, I simply can not remember a single case, either with my files or any of the many files that pass through support where someone has assigned a smoke shader to a primitive volume container… They have been entirely object based material assignments.

Interesting…

Attachments:
temperature_guide_range.jpg (218.5 KB)
temperature_match_Smoke_pyro_utils.jpg (268.7 KB)
pyro_temp_into_smoke.hip.zip (1.1 MB)

There's at least one school like the old school!
User Avatar
Member
250 posts
Joined: 2月 2013
Offline
Thanks for your big answer

So if I understood correctly the most important field is the temperature one. As a novice in pyro I tend to underestimate the temperature field…
And the same for the ramp, I don't really understand the way it works, and also in Maya. Just the fact to translate a 2D ramp into a 3D shape… But it will come, I'm learning, so… Does the beginning of the ramp represent the inside of the smoke, or the outside, or the base ?… It's a bit confused.

But does the visualization of temperature (and others fields) affect the simulation or is it only for visualization in the viewport ? (or is it why you set the density as “temperature” with the same “source range” ?)

I'll have to read your post a few times before understanding it completely

Oh and what is “hammer time” ?
https://vimeo.com/obreadytom [vimeo.com]
User Avatar
Member
250 posts
Joined: 2月 2013
Offline
“So you substitute temperature as your base smoke field instead of density and knowing the full range of your temperature across the simulation, you can pull out even more detail. Simply set the first set of min max parameters in the density shaping pipeline to the min and max ranges of your temperature (which remaps temperature to 0-1) and now adjust the ramp to adjust the density within the full range of temperature all from 0-1 at this point. ”

Sorry I have my answer ! (I read it a second time)
https://vimeo.com/obreadytom [vimeo.com]
  • Quick Links