To render a polygon object as a volume you have to add an Arnold Mesh Volume tag to it.
Polymesh rendered as a volume (rollover image).
noise connected (through range shader) to displacement of standard_volume.
step_size: 0.1, volume_padding: 0.05.
When the Step Size is positive, it turns a polymesh into a volume and its value is used as the base step for raymarching the volume.
The mesh should be closed and not have anything self-intersecting, otherwise, the volume may not render correctly.
You must add a step_size value and assign a standard_volume shader for the mesh to render as a volume.
A simple scene that demonstrates this process can be found here.
Sets the size for sampling inside the volume. It should be small enough to capture the smallest feature in the volume (aka the Nyquist limit). If the size is too large, aliasing, bias or banding will appear. Smaller (and therefore more accurate) sizes will increase render times while larger sizes will render more quickly.
More information about volume Step Size can be found here.
Enlarge the volume by Padding. This is useful when displacing a volume with a noise for example. Note that this slack applies not only to the bounding box but also to the voxels used for ray extents inside the bounding box. When velocity motion blur is enabled, some extra padding is computed, based on the maximum value of the velocity field, and the maximum of the velocity padding and user padding is applied. When padding exceeds the bounding box maximum dimension, the ray extents acceleration makes little sense and is disabled, so you should set the padding as tightly as possible.
For best performance, this should be set as low as possible, while still covering the maximum displacement amount.
The amount of padding to add to the volume bounds for displacement
Head models rendered as volumes with different textures connected to displacement of standard_volume