Nodes
Pyro
Flexible, production-quality fire and smoke shader.
See also: Pyro effects, Using ramps
Overview
The Pyro material’s interface may appear intimidating at first. However, it’s actually quite straightforward once you grasp how it’s organized. There are three main optical components to the material: smoke, fire, and scattering, corresponding to the first three tabs of the interface.
Wherever the material allows you to specify a color, it is split into two complementary parameters: the chromaticity of the color (its hue and saturation), and its brightness (also known as value, luminance, or intensity). More often than not, you will want to manipulate a color’s luminance separately from its hue or saturation. Especially in the Pyro material, you will often be dealing with very bright or very dark values, where the standard RGB swatch stops giving meaningful feedback. However, if you prefer, you can still ignore the separate brightness control (by leaving it at 1) and use the RGB swatch to express both a color (hue and saturation) and its intensity.
In addition, in places where you can specify colors, the interface includes “mod” parameters (the menus throughout the interface that default to “No mods”). You can completely ignore these controls until you get a feel for the main parameters, as the Pyro material does not depend on them. See modifiers for more information.
Choosing fields
The pop-up menus allowing you to choose fields contain several different types of fields:
-
Standard fields: A fixed list of fields that typically exist on the shaded object:
density,temperature,heat,burn, andage. -
Shader fields: fields generated internally by the shader. The
speedfield contains the magnitude of the vector-valued velocity field. Thetimefield simply contains the current time in seconds. -
Mod fields: these correspond to the
Field1,Field2,Noise1,Noise2, etc. sub-tabs on the Modifiers tab when they are activated. See modifiers for more information. Use the Label parameter on the modifier to control how it appears in the menu. -
User fields: these let you use other fields besides the standard names. First, in the geometry network, use a Name surface node to rename the field to one of
user1,user2, etc. Then in the material, enable the field in the Settings / User fields tab. Then you can choose the field in the pop-up menu.
For example, you could assign the temperature field to be the smoke field by setting Density field to “temperature”.
Using scattering
The Pyro material can simulate scattering of light from the fire through smoke (to a rough, single scattering event approximation), that is, you can have the fire light up the smoke surrounding it. The material does this using point clouds.
Before rendering the final image, you need to have the Pyro material scatter points inside the smoke and fire volumes. The resulting point clouds are stored in two separate files for each frame, one for fire and one for smoke. Then, during shading, the Pryo material uses the point cloud files to simulate the emission of light from the fire field and the scattering of the light through the smoke field.
The Pyro material uses the fire point cloud to fill the fire volume with point light sources, with the intensity and color of each light derived from the parameters on the Fire tab. When calculating illumination of the smoke from fire emission, the material will loop over some subset of these fire point lights and accumulate their contribution just as it does for external lights. The amount of illumination contributed by each one of the fire points is subject to the same attenuation factors as the external sources: distance, the smoke’s own density, as well as any occluding objects embedded in the smoke. Each point in the smoke point cloud stores the resulting fire illumination. Then, while marching through the volume to shade it, the material will use a neighborhood of these precomputed fire illumination results, average them together, and use them in the final shading calculation.
See the scattering parameter help for more information.
How to generate scattering point clouds
The simplest way to generate point clouds is to render them from the Pyro material node’s parameter interface. This lets you generate all point clouds for a frame or animation at once, and re-generate as needed.
Advanced users may want to set up individual render output nodes to generate point clouds. This lets you generate point clouds for each frame before the final rendered image, and make Pyro shader point cloud generation part of a render dependency graph.
In general, the Volume Step Size used for generating the Pyro material’s point clouds can be a lot coarser that the step size for the final image. As a rough starting guideline, start with a step size around ten times coarser than the final render’s volume step size. For example, if the final render requires a Volume Step Size of 0.01, then you can set the step size for the scattering point clouds at 0.1 as a starting point, and refine based on look.
Depending on the relative smoke and fire content of the effect, you may want to generate the smoke point cloud with a different density than the fire point cloud (usually for efficiency, since a sparse cloud is faster to compute than a dense cloud). The instructions below include how to do this for the two methods of generating point clouds.
The scattered illumination (and attenuation) is based on the smoke density and fire intensity when the point clouds were saved. If you change any parameters that affect the smoke density or fire color or intensity, you must regenerate the point clouds. Changes that affect smoke color, shadow, or phase do not require regenerating the point clouds.
Point cloud files (extension .pc) are really geometry files (like .bgeo or .geo files). So, if you and want to visualize the point clouds, you can load the files into a Houdini using the File surface node.
| To... | Do this |
|---|---|
|
Set the filenames for point cloud files |
|
|
Generate point clouds from the Pyro material node |
|
|
Generate point clouds as part of a render network (advanced) |
The trick is to create separate render nodes for generating point clouds, where each render node uses a take in which the Pyro shader’s Shading mode is set to a different value.
Once you have the render nodes set up, you can use the Render button on each node to re-generate point clouds, or wire them into a render dependency network to make generating point clouds part of a pipeline. |
Using modifier fields
You can ignore the modifiers and the material will still work perfectly and be very useful. However, the modifiers are available when you need additional flexibility.
See also the modifier parameter help.
Modifier overview
The material’s main parameters let you shading existing volume fields, but often those fields are not shaped exactly right to shade them as you want. You don’t want to have to recalculate an entire simulation just to adjust some field slightly, or generate a new field which is just a simple transformation of an existing field. Modifiers let you do useful field manipulations at shading time:
|
Field Shaping |
|
|
High Frequency Detailing |
Increasing the volume resolution of a simulation is not always practical because of slower processing speed. In the context of smoke and fire, small-scale detailing usually means the addition of layers of noise. The material can add high resolution noise at shading time for a fraction of the cost of actually simulating it. The catch is you don’t know beforehand where this noise-based detailing may be needed. As a result, the shader-based noise needs to be assignable to not only the incoming fields themselves (to assist with shaping), but also to the main parameters |
|
Field-Driven Parameterization |
|
To support this wide variety of field modifications and noise generation, Pyro provides a bank of “Modifiers”. There are six field modifiers which can be used to shape or remap incoming fields, and four noise generators which can also optionally be driven by either the incoming fields or one of the six field modifiers. Any one of these modifiers, once activated, will be available to drive any one (or several) of the principal parameters which supports modification (any parameter which is accompanied by a “Mod” pop-up menu).
Modifier organization
-
The Pyro material only works with scalar (single floating point number) fields.
-
Field modifiers operate on simulation fields. Their output is yet another scalar field which represents a modified version of the base field.
-
Noise generators do not necessarily depend on any field, though they can optionally be constrained to exist within a field (either a simulation field or the output of one of the field modifiers). You can assign their output to any mod-able parameter, except the (very few) parameters which strictly expect a field (such as the Density Field parameter on the Smoke tab).
-
Field modifiers and noise generators normally produce scalar output. However, you can use the scalar output as to look up a value in a color/vector ramp to produce vector/color output from a modifier. Currently there are only a few mod-able vector parameters, all colors (such as the Smoke Color parameter).
How to set up modifiers
The Pyro material has two kinds of modifiers: field modifiers and noise modifiers. Field modifiers let you modify the values of a field from the sim before you use them in the shader. Noise modifiers let you add noise to a field or all fields before you use it/them in the shader.
| To... | Do this |
|---|---|
|
Modify the smoke and fire fields |
Tip
Instead of using actual fields (such as Usually when your sim values come into the material, the raw flame is a bit high, not high enough, or doesn’t have the right weight. By remapping the incoming range you can specify at what density the flame starts appearing and how it is distributed into the 0-1 range. Using the ramp you can then redistribute the intensity. This is very useful for both fire and smoke. |
|
Modify a value using a field |
Most parameters in the material have a pop-up menu to let you choose a modifier field as a multiplier for the parameter’s value. For example, you can use the Density amplitude parameter on the Smoke field with a modifier to remap smoke density. Set it to a high number (e.g.
|
|
Have fire light up the surrounding smoke |
See the Scattering parameters. |
Important parameters
Important smoke parameters:
|
Density amplitude |
Very important to achieve both wispy or billowy smoke. |
|
Smoke brightness |
Drastically changes brightness/exposure. |
|
Shadow density |
Very important to get a lighter smoke without blowing out the brightness. Less contrasty smoke. |
|
Scattering Phase |
Controls how deep light penetrates into the smoke. Small changes to this make a big difference. |
Important fire parameters:
|
Fire Intensity |
Especially important when scattering. |
|
Noise Modifiers |
Try adding a noise modifier with the default settings: tons of noise. |
|
Temperature |
Increasing this will create a hotter, whiter flame. |
|
Red Boost |
Increasing this will create a hotter whiter flame, without affecting the temperature values. |
Important scattering parameters:
|
Fire Intensity |
A high fire intensity will really increase the amount of light emitted. |
|
Distance Attenuation |
How far the light penetrates the point cloud. |
|
Density Attenuation |
How much the light penetrates the point cloud through dense areas. |
Density amplitude and volume step size
Fields generated by a simulation rarely have values as high as 1 inside a voxel. The Pyro shader’s default density scaling of 500 was chosen to push the typically low-valued simulation densities toward a very dense, sooty smoke by default.
This default is too high for if you begin with a very dense field. The result can be a very noisy image. The problem is the field is so dense that it’s becoming solid, and the boundary between the “air” that surrounds a solid and its surface is infinitesimally small: there’s nothing for a long time and then, suddenly, there is a surface. For the renderer to catch this sudden transition from “nothing” to “something”, it needs to take very small steps, otherwise it might overshoot the surface boundary and miss it by a small amount.
As mantra takes relatively large steps through space scanning for “density”, it overshoots the boundary by differing amounts each time and determines that the boundary happened slightly earlier or later in each case. Therefore, some of these approximated boundary positions end up receiving shadows and some don’t, resulting in an noisy image.
You can try several solutions to this problem, each with a different impact on render times and visual quality:
-
Remove shadows from the light. This gets rid of the problem, but is not very useful since you usually want shadows in your smoke.
-
Lower the Pyro material’s Density amplitude until it becomes “soft” enough that the current Volume Step Size setting in the mantra node has no problem catching it.
-
Decrease the Volume Step Size setting in the mantra node until it is fine enough to catch our (unusually solid) boundary.
The most common solution is a combination of choices #2 and #3: lower the density as you shorten the step until you find a place that is acceptable in terms of render time and image quality.
Parameters
Smoke
See how to use modifiers for information about the “mod” parameters. See color correction for information about the color correction parameters.
|
Enable smoke visibility |
Turns the visibility of smoke on or off. Note that this does not control whether the smoke calculations occur, just whether to display their output. This is useful for hiding smoke you can see other things, such as fire, more clearly. |
||||||
|
Density field |
The name of the field that represents the smoke density. All volume/fluid simulations will generate at lease one field named |
||||||
|
Density amplitude |
A scaling factor for the density values in the field. Smoke fields generated by a simulation rarely have values as high as The default value may be too high if you already begin with a dense field. The result will sometimes be a very noisy image. (image) See density amplitude and volume step size above for more information. |
||||||
|
Use point color (tint with Cd) |
When this option is on, the material will use the (Technically, it’s a “primitive” color, not a point color, since volumes are primitives and don’t have points, but surface shaders use “point color”, so the Pyro material uses it for the sake of familiarity.) |
||||||
|
Smoke color |
Modifies the reflectance color of the smoke. Note that if Use point color (tint with Cd) is on, this color will be tinted by the color of the volume geometry. You can use the separate Smoke brightness parameter to control the brightness. This is often more useful, since you will be dealing with very bright or very dark values, where the standard RGB swatch stops giving meaningful feedback. However, if you prefer, you can still ignore the separate brightness control (by leaving it at 1) and use the RGB swatch to express both a color (hue and saturation) and its intensity. |
||||||
|
Smoke brightness |
Modifies the brightness of the smoke. |
||||||
|
Shadow color |
Modifies the color of shadows in the smoke. You can use the separate Shadow density parameter to control the shadow intensity. This is often more useful, since you will be dealing with very bright or very dark values, where the standard RGB swatch stops giving meaningful feedback. However, if you prefer, you can still ignore the separate shadow density control (by leaving it at 1) and use the RGB swatch to express both a color (hue and saturation) and its intensity. |
||||||
|
Shadow density |
Modifies the intensity of smoke shadows. This is the complementary concept to “brightness” or “albedo” in the Smoke brightness parameter above. |
||||||
|
Scattering phase |
Note
Scattering Phase is currently not supported for PBR rendering. It is only available for raytracing and micropolygon rendering. By default, the Pyro material assumes that light scatters evenly in all directions (isotropic scattering). In reality, depending on the type of particles suspended in the volume, the direction of light scattering may show a bias. It might, for example, scatter more often in the same direction as the incoming light (“forward scattering”) or in the opposite direction of the incoming light (“backward scattering” or “retro-reflection”). The Pyro material simulates this behavior (to a rough, single scattering event approximation). When Scatter phase is This parameter has three components to give you separate control over scattering of the Red, Green, and Blue channels. You could, for example, let the blue channel scatter slightly more forward than the red or green channels. If you choose to modify them separately, you should be aware that you're introducing direction-based coloring to the volume, meaning that the color of the smoke depends on both the viewing direction and the direction of the incoming illumination.
|
Fire
See how to use modifiers for information about the “mod” parameters. See color correction for information about the color correction parameters.
Fire is shaded as a constant color as it is considered an emitter (or an illumination source). It is disabled by default because there’s no established standard for the naming of fields which represent fire: It could be “heat” or “temperature” or “burn” or some combination of all of these, or indeed, be a “user” field. The default field is “Bound: temperature”.
Because it is an emitter, the majority of the fire tab’s interface deals with how to map a field’s value to a color and an intensity. A secondary aspect of shading fire has to do with perceived opacity.
In the real world, fire is not opaque, and so its opacity should be set to zero. This is Pyro’s default behaviour: transparent fire. However, real fire may sometimes appear opaque due to its intense luminance (or, less often, because of matter suspended in the fire which has not yet combusted). If you choose to control its apparent opacity solely by its intensity, then you have to be prepared to deal with output images which contain a very large dynamic range. In addition, if you leave fire completely transparent and your fire volume is very deep (in relative units), you may find that the intensity levels accumulating over the depth of the volume are hard to control practically. These reasons combine to sometimes create a need for “artistic” control over the perceived opacity of the fire. To this end, the Pyro material exposes some opacity controls you can use to assign an artistic (physically incorrect) opacity to the fire field.
|
Enable fire visibility |
Turns the visibility of fire on or off. Note that this does not control whether the fire calculations occur, just whether to display their output. This is useful for hiding fire you can see other things, such as smoke, more clearly. |
|
Temperature field |
The name of the field to use for the fire’s temperature. |
|
Fire intensity |
Increases or decreases the brightness of the fire. |
|
Opacity field |
The name of a field to use for the fire’s opacity. The default “No mods” gives a physically correct fire with no opacity. |
|
Opacity amplitude |
A scaling factor for the value of the opacity field. The default |
|
Opacity blend rate |
The Pyro material keeps an internal mask for the extent of the flames (the volume within which they are incandescent). This control allows you to “feather” the fire opacity at the envelope boundaries of the flames. The blend rate has a nominal range of 0-1 and is a rate, meaning that the higher the number, the faster the opacity will take effect at the border of the flames, and the lower the number, the more “feathered” or gradual the opacity blend will be from the outside edge of the flame toward its interior. |
|
Color model |
There are two approaches mapping the value of the temperature field to an output color: A physically-based approach which assigns color (chromaticity) and intensity based on interpreting the field as a temperature distribution, and an artistic approach which simply maps color and intensity directly from the underlying field values. The default is the physical model. |
|
Use point color (tint with Cd) |
When this option is on, the material will use the (Technically, it’s a “primitive” color, not a point color, since volumes are primitives and don’t have points, but surface shaders use “point color”, so the Pyro material uses it for the sake of familiarity.) |
Physical model
The physical model derives a color and intensity based on the current temperature (as given by the value of the temperature field, scaled by the Temperature parameter below). This model uses Planck’s formulas for both the color and intensity of a perfect emitter (also known as a “black body”) at a certain temperature, given in degrees Kelvin.
The black body model is generally a good starting point for a color spread for a flame. The drawback is it’s based on measurements of near-perfect emitters/absorbers, which doesn’t necessarily apply to flames (though it’s not far off). In the case of flames, the visible color is more likely the result of chemical reactions than black body emission. For example, the bottom of a candle flame appears blue because it’s more oxygenated than the rest of the flame (and burns more efficiently). Therefore, the Pyro material gives you controls to adjust the red/blue content of physically modeled flames.
| Fire field at 3000 degrees K, Red boost = 0, Blue boost = 0 |
| Red boost = 4, blue boost = 0 |
| Red boost = 0, blue boost = 4 |
|
Temperature |
The temperature (in degrees Kelvin) corresponding to a value of As a rough reference for what these temperatures mean, thermal emission becomes visible at around 500°K (e.g. the temperature at which an iron rod will start looking “red hot”). Temperatures for typical flames can range from around 2000°K (candle flame) to 3000°K (blowtorch, limelight) and higher. The Pyro material uses a fairly “hot” temperature as a default. This is only a guess based on observation of a few temperature fields generated by simulations, which don’t always reach 1. It is entirely possible that the incoming fields may go well above one, in which case you should reduce the default. |
|
Red boost |
Artificially boosts the red (colder) end of the flame’s spectrum. This parameter has a lower bound of 0, but is unbounded on the positive side. However, practical values should rarely go above 4-8. |
|
Blue boost |
Artificially boosts the blue (hotter) end of the flame’s spectrum, essentially sliding the blackbody temperature up into the extreme heat end of the spectrum. Although this operates only on the perceived chromaticity (hue + saturation), it is likely that the overall intensity of the flame will also increase because as the color goes to blue it passes through white, which is much more luminous than fully saturated red. So, you will need to adjust the fire intensity when using either of these “boost” parameters. It’s possible that if you boost the blues, the core of the flame may be too bright and be clamped too much. You can use the Soft Clip parameter to address this. |
|
Soft clip |
Also known as a “knee” operator (although this uses is a cheaper algorithm because it has to run for every shaded point). If the hot portion of the flame starts becoming so bright that it ends up clamping too much, you can use soft-clip it to some ceiling. This is used to compress high intensities that can’t be displayed by a some device (like a TV or monitor). This material already applies a tone mapping operator to the black body intensities (which have an insane dynamic range). Nevertheless, there are cases where the accumulated brightness of the fire will “blow up” beyond any displayable value. This typically happens when the fire occupies a very large volume and has zero opacity, with the result that every step along the march through the volume will simply add itself to all the previous values. |
|
Start |
The intensity value at which compression will start. Keep in mind that these are values within each step of the volume march (that is, per voxel), not the absolute accumulated value at the end of the march, so it will typically be a small value around 0.2 to 0.5. |
|
Suppression |
The amount by which to suppress the output. This is an unbounded positive. It may need to be set quite high depending on the situation, and can be thought of as an exponent. The higher it goes, the closer the result will approach a standard “clamp” at the value given in the Start parameter. It is, actually, a “soft” clamp. The Start value indicates where the clipping or clamping will start, and the Suppression parameter determines how strongly values above Start will be compressed. In practice, it is better to see how intense the flame is in context (that is, with the smoke enabled) before making any decisions on whether to clamp its intensity. |
Artistic model
The horizontal axis of the ramps corresponds to field values from 0 to 1. Any values in the field lower than 0 or higher than 1 will be clamped, and so use the values at the left or right end of the ramp.
The default settings are a crude approximation of the physical model, simply as a plausible starting point for an artists to start modifying.
As with other color controls in the material, color and intensity have separate controls for practical reasons, but if you want you can embed intensity in the “hue” ramp.
|
Temperature to hue mapping |
The color of the flame for field values from |
|
Temperature to intensity mapping |
The intensity of the flame color for field values from |
Scattering
See using scattering above.
See also the Scatter phase parameter on the Smoke tab. See color correction for information about the color correction parameters.
The scattered illumination (and attenuation) is based on the smoke density and fire intensity when the point clouds were saved. If you change any parameters that affect the smoke density or fire color or intensity, you must regenerate the point clouds. Changes that affect smoke color, shadow, or phase do not require regenerating the point clouds.
|
Scattering |
Whether to simulate and display scattered light emission from fire through the smoke. |
Point cloud files
|
Smoke PC file |
The cache file for the smoke scattering point cloud. Remember to include the frame number (e.g. |
|
Fire PC file |
The cache file for the fire scattering point cloud. Remember to include the frame number (e.g. |
Generate point clouds
See how to generate scattering point clouds for more information.
|
Smoke step size |
Volume step size to use when generating the smoke point cloud. The smaller this number, the more dense the point cloud. A good rule of thumb is to start this value 10 times larger than the volume step size you are using for rendering the final image, then adjust based on the look. |
||||||
|
Fire step size |
You only need to set this parameter if you want a different step size for the smoke and fire point clouds (set Generate mode to “Use individual steps”). Otherwise, set Generate mode to “Use smoke step for both” and just set the Smoke step size parameter. |
||||||
|
Camera |
The camera to use when “rendering” the point clouds. This can be the same camera you use to render the final image, but it should have the entire effect in view, since the point cloud will only be built in areas visible to the camera. You may need to create a new camera for building point clouds that has the same point of view as the main camera but pulled back to show the entire effect volume. See how to generate scattering point clouds for more information. |
||||||
|
Frame range |
Turn this on and set the frame range to generate point clouds for multiple frames of animation. If this option is off, clicking Generate will only generate point clouds for the current frame. |
||||||
|
Generate mode |
|
||||||
|
Generate button |
Click to generate the point clouds necessary for simulating scattering. (If Generate mode is “Create ROPs only”, this will create render nodes in |
|
Amplitude |
A global “dimmer” dial: it controls the overall intensity of scattered light.
|
In the real world, density attenuation and distance attenuation are linked. In the Pyro material, they're decoupled to allow for more artistic control.
|
Density atten |
As light travels inside a dense medium it progressively loses intensity as bits of it are absorbed or scattered away. This parameter scales this “attenuation due to density”. Values greater than
|
||||||
|
Distance atten |
As in the real world, the light emitted by the point lights in the fire cloud attenuates with distance according to the inverse square law: the rate of attenuation is inversely proportional to the square of the distance. This parameter scales that attenuation. Values greater than Scaling distance attenuation retains the overall shape/distribution of the scattering, but scales the perceived length/size up or down (whereas density attenuation behaves more like an intensity dimmer).
|
||||||
|
Scattering phase |
Controls the directionality of scattered fire light. |
||||||
|
Max search radius |
How far the scattering will spread, in world space units. Depending on the radius, this distance may encompass thousands or hundreds of thousands of points. Use the Max contributors parameter to limit the number of points considered for efficiency. |
||||||
|
Max contributors |
Of all points in the Max search radius, the material will consider this many of the closest points. There is a point where additional light contributions stop having a significant effect on the overall result. However, this number is hard to determine without testing (it depends on several factors), so you should try to not limit the number of contributors at the beginning. Therefore, you should try starting with this parameter at a large number, like |
||||||
|
Filter points |
As the Pyro material marches through the volume, it computes the scattering contribution by averaging (or blurring) a neighborhood of precomputed point cloud points. This parameter is the number of cloud points in that “blur filter”. Higher values give blurrier results. The default ( The following image shows filter points settings of (left to right, top to bottom) 1, 2, 4, 8, 16, and 32 in a constant cloud.
Note
If you are using your own render nodes to generate the point clouds using raytracing instead of micropolygon rendering for some reason, you will need to use a filter size of between 30 and 80 points due to the randomness of point distribution in raytraced point clouds. |
||||||
|
Atten method |
How the material calculates the attenuation and occlusion of light emitted from the fire field. The three choices represent trade-offs between speed and accuracy.
|
||||||
|
Quality |
Available when Atten method is “Real”. A value from |
Modifiers
See how to use modifier fields above.
Field modifiers
|
Activate field modifier |
Make this field modifier “active”, so it shows up in the pop-up menus of modifiers next to mod-able parameters. |
|
Label |
A short, descriptive label for the field. This is how the field will appear in the pop-up menus of modifiers next to mod-able parameters. This string can include spaces and other non-alphanumeric characters. |
|
Comment |
An optional longer description of the modifier and its purpose. This value is not used by the material, it’s simply a convenient place to record information. |
|
Base field |
The field on the object to modify, for example |
|
Contour |
The Contour modifier operates on low field values and is useful to “sharpen” the contours of a smoke cloud. You can think of it as a “soft floor” operator. Values below the Width will be compressed according to Sharpness, where the higher the sharpness, the more abrupt the transition between 0 and the width will be.
The following images show a density field (with Density Amplitude set to 500) where the field values were rendered directly on the left, and then modified with contour sharpening (Width = 0.02, Sharpness = 20) on the right. (If you use sharp transitions like this, you’ll probably need to lower the Volume Step Size on the Mantra render node or you may see shadowing artifacts).
Turn on the checkbox to enable this modification. |
|
Soft clip |
The soft clip modifier operates on high field values and is useful to compress very high values. You can think of it as a “soft ceiling”. Values above Start will be progressively compressed according to Suppression such that, the higher the suppression, the more it will resemble a clamp operation.
The following images show a temperature field which was rendered directly on the left, and then modified with soft clipping (Start = 0.5, Suppression = 20) on the right.
Turn on the checkbox to enable this modification. |
|
Range mapping |
Range mapping simply fits one range to another, identically to the “fit” functions, VOPs, and operators available throughout Houdini. It maps the Field Range’s Min value to the Target Range’s Min value, and the Field Range’s Max value to the Target Range’s Max value. Values between these extremes will, by default, be interpolated linearly. However, you can use the Interpolation ramp to set a custom interpolation curve. Tip
Depending on the Min/Max settings of the field and target ranges, it may be tricky to predict the values produced by the interpolation ramp. Just remember: wherever the ramp has a value of zero, you will get the target range’s Min value, and wherever the ramp value is one, you will get the target Range’s Max value. The range mapping is only active within the specified Field Range. Field values outside this range will clamp to the Min/Max values of the Target Range. Therefore, it is usually best to set as large a Field Range as possible and then shape the output using the ramp, using the target range as more of a scaling factor. (images) Turn on the checkbox to enable this modification. |
|
Interpolation |
The interpolation curve to use when Range mapping is on. |
Noise modifiers
The Pyro material divides the visual characteristics of the noise into two categories: The basis (the fundamental type of noise), and the fractal construction (the method use to construct fractals using the basis) of the noise.
Settings
|
Shading mode |
Switches between normal shading and the generation of point clouds. See how to generate scattering point clouds. |
|
Current time/Current frame |
Used by the material for 4D noise and solving dual rest position fields. You should leave these at their defaults ( |
|
Dual rest |
Rest fields will become less defined as they diffuse, creating an undesirable stretching of any shader-based noise that is dependent on them. This option counteracts this by maintaining two rest fields which reset their values at different times. The material interpolates between the two fields to give the impression of a stable rest position. |
|
Start frame |
You do not normally need to change this parameter. However, if you change the Start frame parameter on the Rest tab of the Pyro solver node in the DOP network for the effect this material is applied to, you will need to change this parameter to match. |
|
Reset rate |
The number of frames between when the material resets a rest fields. The material staggers the reset points of the two fields so the reset of an individual rest field is not visible. |
User fields
If you need to use fields from the simulation besides the common ones already listed in the field pop-up menus (e.g. density, temperature), you can use a Name surface node to rename the field to one of user1, user2, etc. Then in the material, use the controls on this sub-tab to add the field(s) into the material’s pop-up menus.
|
Include in menus |
Turn this on to add a given |
|
Label |
A short, descriptive label for the field. This is how the field will appear in the pop-up field menus. This string can include spaces and other non-alphanumeric characters. |
|
Comment |
An optional longer description of the field and its purpose. This value is not used by the material, it’s simply a convenient place to record information. |
Output variables
A list of variables exported by this material.
Color correction controls
Each of the principal tabs, Smoke, Fire, and Scattering, has a block of color correction parameters. These are conveniences to allow in-shader tweaking of the final composition of each component. It is not always possible to delegate all correction to the compositing stage when working with volumes because the components influence each other during evaluation, so it is sometimes useful to have some basic correction control at the shading stage.
These corrections are applied in the order they appear in the interface. That is, HSV, then Contrast, then Gamma, and finally Tint.
Beyond that, the meaning of these corrections should hopefully be self explanatory as they are no different than the similarly named corrections found in the Halo (or, indeed, any other) compositing environment. Perhaps the only thing worth mentioning is the HSV correction as it is compressed into a single vector parameter.
|
Enable color correction |
When this option is on, the material uses the parameters below to modify the final composition of the Smoke, Fire, or Scattering. |
|
HSV |
Rotates the hue. This value is normalized 0-1, so a value of 1 rotates the hue by 360° (a full rotation back to the starting hue). This value is not bounded and can be either positive or negative. For example, a value of -0.5 will rotate the hue by -180° and be equivalent to -1.5, -2.5, -3.5, etc. |
|
Contrast |
Increases or decreases the contrast. |
|
Gamma |
Modifies the gamma. |
|
Tint |
Tints the output color with a second color. |
Usages in other examples
| Example name | Example for |
|---|
Approximated, No Shadows. Cost: 1.00
Approximated, Hard Shadows Only. Cost: 2.06
Real, quality set to 10. Cost: 26.67