Share

Points - Arnold User Guide

Note:

SSS is not supported for points (only poly meshes).

Points Data

Mode

Choose to render points as disks, spheres, or quads (rectangles).

Min Pixel Width

If this value is non-zero, points with a small on-screen width will be automatically enlarged so that they are at least the specified size in pixels. The enlargement fraction is then used in the point shader to adjust the opacity so that the visible thickness of the point remains the same. For a given number of AA samples, this makes it a lot easier to anti-alias very small points, at the expense of render time (because of the additional transparency/depth complexity). Good values are in the range of 0.2 to 0.7. Values closer to 0 are faster to render but need more AA samples. So if your scene already uses very high AA settings, you should use a low value like 0.1.

Min Pixel Width doesn't work on points with varying radius over time (which is the case when motion blur is enabled). Also, for the automatic transparency to work, it needs a special material that supports the internal geo_opacity shader such as the Standard Hair shader.

Min Pixel Width doesn't work on points with varying radius over time (which is the case when motion blur is enabled). Also, for the automatic transparency to work, it needs a special material that supports the internal geo_opacity shader such as the Standard Hair shader.

Volumes

Volume Step Size

Points switch to rendering in volume mode when using this attribute. This controls the rate at which the volume shader gets called. The value indicates the average distance between adjacent volume shader samples along a given ray, in world space units. Generally, you will want this setting to be as large as possible before visibly noticeable artifacts occur, and in the case of voxelized volumes no smaller than about half the size of your voxels (in world space). A low Step Size will increase render times. For example, when the Step Size is 0.1 and the volume is 10 units big in world space, there are approximately 100 primary samples and therefore the volume shader is called 100 times.

Noise -> Scattering & Attenuation of Standard Volume

Note:

The volume Step Size has a fixed size, therefore, the larger the container the more steps will be taken and the longer it will take to render. Also, beware that if the Step Size is too small your render times will increase. If you cannot see anything rendered, you may need to reduce the Step Size value.

VDB Data

You can use a points node to load OpenVDB points, complete with automatic attribute mapping to position, radius and velocity; motion blur, and additional attributes as user data.

You can set up VDB points with the Arnold API, or with an ass file. For example, this ass file uses the bunny_points example from the OpenVDB downloads.

points
{
 name bunny
 file_name C:/downnloads/bunny_points.vdb-1.0.0/bunny_points.vdb
 # Grid name must be set correctly
 file_grid "points"

 # These are inferred automatically
# file_attribute_point "P"
# file_attribute_radius "pscale"
# file_attribute_velocity "v"

 file_velocity_scale 2.0

 # Radius is provided by the VDB file; if it were missing, we'd set this
 radius 1 1 FLOAT 0.01

 shader openPBRSurface1
 mode sphere
}


openpbr_surface
{
 name openPBRSurface1
 base_color aiUserDataColor1
 geometry_normal 1 1 1
 geometry_tangent 1 1 1
}

user_data_rgba
{
 name aiUserDataColor1
 attribute "Cd"
 default 0 1 0 1
}
Tip: With debug verbosity, the Arnold log includes information about the VDB points like this:
00:00:15  3419MB         |  [volume] searching OpenVDB file: C:/downloads/bunny_points.vdb-1.0.0/bunny_points.vdb
00:00:15  3419MB         |   [volume] found grid "points"
00:00:16  3480MB         |  [points] bunny: VDB point count: 48276957
00:00:16  3480MB         |  [points] bunny: VDB vec3s attribute loaded as user data: Cd
00:00:16  3480MB         |  [points] bunny: VDB vec3s attribute loaded as user data: N

Name

file_name: Path to a VDB file containing OpenVDB points.

Data

file_data: Buffer containing contents of a VDB file with OpenVDB points.

Compress

file_compress: Compress VDB data in memory while loading points.

Grid

file_grid: Name of the points grid in the VDB file.

Attributes

file_attribute_point: Attribute name in points grid containing the point positions.

file_attribute_radius: Attribute name in the points grid containing the radius (scale).

file_attribute_velocity: Attribute names in the points grid containing the point velocities.

Velocity

file_velocity_scale: Scale factor to apply to the point velocities from the grid.

file_velocity_fps: Expected frames-per-second for the point velocities from the grid.

Was this information helpful?