Polymesh to Volume

Polymesh objects can be rendered as volumes. This gives many creative opportunities for rendering solid objects in varied and interesting ways. This short 'making of' tutorial shows how to combine a polymesh with a volume by combining their shading using the displacement attribute of a standard_volume shader.

The polymesh should be closed and not have anything self-intersecting, otherwise, the volume may not render correctly.

A simple scene that demonstrates this process can be found here.

Step Size

Note:

More information about volume step_size can be found here.

Standard Volume

Polymesh rendered as a volume

You must add a step_size value and assign a standard_volume shader for the mesh to render as a volume.

Volume Padding

The next step is to enlarge the volume by using Padding. This will be useful for when we want to displace the volume with a texture. Note that this slack applies not only to the bounding box but also to the voxels used for ray extents inside the bounding box. In this case, a small amount of 0.05 was used.

For best performance, this should be set as low as possible, while still covering the maximum the displacement amount.

Volume

Next, place an Arnold Volume at the rear of the head and assign the same Standard Volume shader to it. Alternatively, you could use a different mesh and apply the same shader as the head to it. The aim is to have something that looks complex for the displacement texturing process.

Volume rendered with same standard_volume shader

Displacement Texture (Standard Volume Shader)

A Camera Projection shader is required, otherwise using an image for displacement is not valid.

Displacement texture is faintly visible

Range Shader

Displacement texture is more obvious due to range shader

Final shading network