Example files Render node examples
Volume_Smoke
Example for Mantra render node
$HFS/houdini/help/examples/nodes/out/ifd/volume_smoke.otl
Volume Rendering - File Referenced Smoke
Volume rendering is a new rendering approach in mantra 9.0 that allows high-quality, integrated rendering of volumetric effects like smoke, clouds, spray, and fire.
Volume rendering is suitable for rendering many types of volumetric effects. Scenes that are particularly suited to rendering with mantra volumes include:
-
Detailed “hero” clouds, smoke, or fire
-
Fields of instanced clouds, smoke, or fire
Scenes where volume rendering may not be quite so applicable include:
-
Scenes with a single uniform fog
In this particular example, a bgeo file (1 frame only) was exported from a fluid simulation of smoke and is now referenced using the File SOP. A material using VEX Volume Cloud is assigned to this volumetric data at the top level of the Volume Object. To see this scene in shaded mode, ensure that HOUDINI_OGL_ENABLE_SHADERS is set to 1 in the environment variables.
Controling Quality/Performance
Volume rendering uses ray marching to step through volumes. Ray marching generates shading points in the volume by uniformly stepping along rays for each pixel in the image. There are two ways to change the quality and speed of the volume ray marching:
-
The samples parameter on the Sampling tab of the mantra ROP. More pixel samples will produce more ray marches within that pixel leading to higher quality. Using more pixel samples will also improve antialiasing and motion blur quality for the volume.
-
The volumestepsize parameter on the Sampling tab of the mantra ROP. A smaller volume step size will produce more samples in the volume interior, improving quality and decreasing performance. A separate shadowstepsize can be used for shadows to separately adjust the quality of shadows.
Which parameter you should change will depend on your quality requirements for pixel antialiasing. In general, it is better to decrease the volume step size rather than increase the pixel samples because a smaller volume step size will lead to more accurate renders.
This render uses 2×2 samples and volumestepsize of 0.25. Notice the detail in the shadows.
This render uses the same scene with 4×4 samples and a volumestepsize of 1. The fine detail in the shadow has been lost and the volume is somewhat more transparent. The quality level is approximately the same.
Ambient_Occlusion
Example for Mantra render node
$HFS/houdini/help/examples/nodes/out/ifd/amb_occ_scene.otl
Ambient Occlusion
Ambient occlusion is a fast technique for producing soft, diffuse lighting in open spaces by using ray tracing. It is computed by determining how much of the hemisphere above a point is blocked by other surfaces in the scene, and producing a darker lighting value when the point is heavily occluded. This technique can be useful when you need a GI-like effect without paying the price for full global illumination.
With this particular example, an Ambient Occlusion light and some geometry is provided in the form of a Digital Asset. A Light Template was used with a GI_light shader assigned to it, and it’s parameters were promoted for easy access. #image ao.jpg goes right here
Optimizing performance/quality for ambient occlusion
There are two ways to adjust the quality and performance of renders using ambient occlusion.
-
adjusting the number of samples
-
using irradiance caching.
Decreasing the sample count allows you to improve render time at the expense of some additional noise in the render. The following render uses the same shader as the image above but decreases the samples from the default of 256 to 16. This value is set on the Sampling Quality under the Occlusion tab of the asset. #image ao_lowsample.jpg goes right here
Irradiance caching is a technique that allows ambient occlusion values to be shared across a surface to improve performance. To enable irradiance caching, turn on the Enable Irradiance Cache option on the Irradiance tab of a mantra ROP. #image icache1.jpg goes right here
When using irradiance caching, it is possible for artifacts to appear near sharp edges in the scene. For example, on the rim of the teapot lid there are some pixels that are brighter than they should be. To resolve these artifacts, decrease the Max Pixel Spacing parameter on the Irradiance tab. The following image was rendered with a spacing of 3. #image icache1.jpg goes right here
Environment Maps
If you have a smooth environment map, it is possible to replace the global background color (white) with the value from an environment map. To do this, change the Environment Map parameter under Occlusion tab. #image ao_envmap.jpg goes right here
Volume_Meta
Example for Mantra render node
$HFS/houdini/help/examples/nodes/out/ifd/meta_volume_smoke.otl
Volume Rendering - Metaballs as Volume
Metaball geometry can now be natively rendered as a volume in mantra. Metaball rendering can be enabled by checking the Metaballs as Volume parameter on the Geometry tab of a geometry object. Any point attributes on the metaballs will be interpolated to the shading position in the same manner that point attributes are interpolated for metaball surfaces.
Here is an example using randomized point color attributes:
Controlling Shadow Quality/Performance
Shadow map generation uses the Pixel Samples and Shadow Step Size parameters (in the Mantra Render Operator) to control quality and performance in exactly the same way they are used for surfaces. Since volumes often cast soft, diffuse shadows, it is often possible to use low-resolution deep shadow maps when rendering volumes, leading to much faster render times. Shadow map Resolution can be changed on the Shadow tab of a Houdini light.
Volume_Torus
Example for Mantra render node
$HFS/houdini/help/examples/nodes/out/ifd/torus_volume_smoke.otl
Volume Rendering - From Primitives
Volume rendering is a new rendering approach in mantra 9.0 that allows high-quality, integrated rendering of volumetric effects like smoke, clouds, spray, and fire.
Volume rendering is suitable for rendering many types of volumetric effects such as:
-
Detailed “hero” clouds, smoke, or fire
-
Fields of instanced clouds, smoke, or fire
It is easy to create volumes from primitives without invoking the fluid solver.
In this particular example, a primitive torus is used to render some smoke volume. Using an IsoOffset SOP produces a volume that fills the interior of the torus. Then, a material using VEX Volume Cloud is assigned to the volumetric data of the torus shape. Setting the Smoke Cloud Density to 5 and the Smoke Shadow Density to 10 helps create a more smoke-like look and feel.
Here is the torus rendered with tweaks to the volume step sizes (in the Mantra Render Operator), shadow map quality (under Depth Map Options of the spotlight), and volume primitive divisions (on the IsoOffset SOP). The smoke Diffuse color was adjusted too.
TorqueIFL
Example for Torque render node
$HFS/houdini/help/examples/nodes/out/torque/TorqueIFL.otl
This example illustrates using an IFL file with the Torque exporter.
TorqueVisAnim
Example for Torque render node
$HFS/houdini/help/examples/nodes/out/torque/TorqueVisAnim.otl
This example illustrates using animated visibility with the Torque exporter.
TorqueReflectanceMap
Example for Torque render node
$HFS/houdini/help/examples/nodes/out/torque/TorqueReflectanceMap.otl
This example illustrates using reflectance maps with the Torque exporter.
TorqueLOD
Example for Torque render node
$HFS/houdini/help/examples/nodes/out/torque/TorqueLOD.otl
This example illustrates using level of detail with the Torque exporter.
TorqueDetailMap
Example for Torque render node
$HFS/houdini/help/examples/nodes/out/torque/TorqueDetailMap.otl
This example illustrates using a detail map with the Torque exporter.
TorqueMorph
Example for Torque render node
$HFS/houdini/help/examples/nodes/out/torque/TorqueMorph.otl
This example illustrates using level of deforming geometry with the Torque exporter.
TorqueUV
Example for Torque render node
$HFS/houdini/help/examples/nodes/out/torque/TorqueUV.otl
This example illustrates using texture coordinates with the Torque exporter.