Share

Supported Features and Known Limitations - Arnold User Guide

Quick Summary

  • Arnold GPU supports complex shading networks, SSS, hair, atmospherics, instancing, and procedurals.

  • With the same settings, GPU renders will currently be noisier than CPU renders since GPU renders are "non-splitting" (i.e. one path per camera/AA sample). Accordingly, to achieve equivalent noise the AA sample count will need to be increased in GPU renders. Adaptive rendering is fully supported.

  • Standard Surface, Standard Hair, and Standard Volume are supported, with some limitations (see the table below).

  • OSL is supported, with some limitations currently (see below).

  • OpenVDB volumes are supported, with some limitations currently (see below).

  • Volume displacement is supported, with some limitations currently (see below).

  • Filename attribute tags are supported. Mipmap bias is not supported.

  • Light linking is not supported on volumes.

  • Limited AOV support.

  • Trace sets are not supported.

  • Custom procedurals, drivers, color managers are supported.

  • Custom shaders, cameras, filters, BSDFs are not supported.

  • Noice is not supported with Arnold GPU renders (because the variance filter is not supported on Arnold GPU).

OSL

Initial support for OSL has been added to the GPU renderer. As in the CPU renderer, you can mix and match OSL and Arnold shaders in the same shading network. Note that this initial support is still not complete and currently has a number of limitations as listed below.

Shading operations

Currently, there is limited support for specific shading operations, as follows:

  • Dynamic string operations
  • Message passing

OpenVDB

The GPU renderer supports OpenVDB and matches the CPU renderer visually quite well and is feature-complete. The match with CPU will become increasingly good as the step-size parameter is reduced.

Volume displacement

The match with CPU will become increasingly good as the step-size parameter is reduced.

Supported Features and Known Limitations

Feature GPU Support Notes
Cameras
cyl_camera Yes
fisheye_camera Yes
ortho_camera Yes
persp_camera Yes
spherical_camera Yes
uv_camera Yes
vr_camera Yes
Color Managers
color_manager_ocio Yes
color_manager_syncolor Yes
Drivers
cryptomatte_manifest_driver Yes
driver_deepexr ** No **
driver_exr Yes
driver_jpeg Yes
driver_png Yes
driver_tiff Yes
Filters
blackman_harris_filter Yes One single filter for all AOVs.
box_filter Yes One single filter for all AOVs.
gaussian_filter Yes One single filter for all AOVs.
triangle_filter Yes One single filter for all AOVs.
closest_filter Yes One single filter for all AOVs.
All other filters ** No ** Fallback to box filter. One single filter for all AOVs.
Lights
cylinder_light Yes
disk_light Yes
distant_light Yes
mesh_light Yes
photometric_light Yes
point_light Yes
quad_light Yes Light portals supported
skydome_light Yes
spot_light Yes
Operators
collection Yes
disable Yes
include_graph Yes
materialx Yes
merge Yes
set_parameter Yes
set_transform Yes
switch_operator Yes
options Yes
override Yes
Shaders
abs Yes
add Yes
ambient_occlusion Yes Trace sets are not supported.
aov_read_float Yes
aov_read_int Yes
aov_read_rgb Yes
aov_read_rgba Yes
aov_write_float Yes
aov_write_int Yes
aov_write_rgb Yes
aov_write_rgba Yes
atan Yes
atmosphere_volume Yes
barndoor Yes
blackbody Yes
bump2d Yes
bump3d Yes
c4d_texture_tag Yes
c4d_texture_tag_rgba Yes
cache Yes This is a no-op on GPU.
camera_projection Yes
car_paint Yes
cell_noise Yes
checkerboard Yes
clamp Yes
clip_geo ** No **
color_convert Yes
color_correct Yes
color_jitter Yes
compare Yes
complement Yes
complex_ior Yes
cross Yes
cryptomatte Yes
curvature Yes Trace sets are not supported.
divide Yes
dot Yes
exp Yes
facing_ratio Yes
flakes Yes
flat Yes
float_to_int Yes
float_to_matrix ** No **
float_to_rgb Yes
float_to_rgba Yes
fog Yes
fraction Yes
gobo Yes
image Yes Mip-map bias is not supported.
is_finite Yes
lambert Yes
layer_float Yes
layer_rgba Yes
layer_shader Yes
length Yes
light_blocker Yes
light_decay Yes
log Yes
matrix_interpolate ** No **
matrix_multiply_vector Yes The matrix parameter is not linkable on GPU.
matrix_transform ** No **
matte Yes
max Yes
maya_layered_shader Yes
min Yes
mix_rgba Yes
mix_shader Yes
modulo Yes
motion_vector Yes
multiply Yes
negate Yes
noise Yes
normal_map Yes
normalize Yes
osl Yes Some limited support shading operations.
passthrough Yes
physical_sky Yes
pow Yes
query_shape Yes
ramp_float Yes
ramp_rgb Yes
random Yes
range Yes
ray_switch_rgba Yes
ray_switch_shader Yes
reciprocal Yes
rgb_to_float Yes
rgb_to_vector Yes
rgba_to_float Yes
round_corners Yes Trace sets are not supported.
shadow_matte Yes This initial version has a number of limitations currently, including: no support for indirect lighting, no AOV generation, and possibly incorrect self-reflections in shadow-matte objects.
shuffle Yes
sign Yes
space_transform Yes Camera and screen spaces are not supported.
sqrt Yes
standard_hair Yes extra samples is not supported
standard_surface Yes Diffusion SSS mode is not supported. Transmit AOVs is not supported (so, for example, you'll get solid white in the alpha for transmission)
standard_volume Yes
state_float Yes
state_int Yes
state_vector Yes
subtract Yes
switch_rgba Yes
switch_shader Yes
toon Yes Limited to rendering direct lighting only (no reflections, refractions, or indirect lighting).
trace_set ** No **
trigo Yes
triplanar Yes
two_sided Yes
user_data_float Yes User data inherited from parent procedurals is not currently supported
user_data_int Yes User data inherited from parent procedurals is not currently supported
user_data_rgb Yes User data inherited from parent procedurals is not currently supported
user_data_rgba Yes User data inherited from parent procedurals is not currently supported
user_data_string Yes User data inherited from parent procedurals is not currently supported
utility Yes The edgelength, pixelerror, and nlights color modes are not supported.
uv_projection Yes
uv_transform Yes
vector_map Yes
vector_to_rgb Yes
volume_sample_float Yes
volume_sample_rgb Yes
wireframe Yes
Shapes
box Yes Trace sets are not supported.
cone ** No **
curves Yes Trace sets are not supported. Oriented curves are not supported.
cylinder ** No **
disk ** No **
ginstance Yes Trace sets are not supported.
nurbs Yes
plane Yes Trace sets are not supported.
points Yes Trace sets are not supported. Points rendered as a volume are not supported.
polymesh Yes Trace sets are not supported.
sphere Yes Trace sets are not supported.
implicit ** No **
volume_implicit ** No **
alembic Yes Trace sets are not supported.
procedural Yes Trace sets are not supported.
volume Yes Trace sets are not supported.
AOVs
AA_inv_density Yes
ID Yes
N Yes
P Yes
Pref Yes
RGBA Yes
Z Yes
albedo Yes
background Yes
coat Yes
coat_albedo Yes
coat_direct Yes
coat_indirect Yes
cputime Yes
diffuse Yes
diffuse_albedo Yes
diffuse_direct Yes
diffuse_indirect Yes
direct Yes
emission Yes
indirect Yes
motionvector Yes
opacity Yes
raycount Yes
shadow_matte Yes
sheen Yes
sheen_albedo Yes
sheen_direct Yes
sheen_indirect Yes
specular Yes
specular_albedo Yes
specular_direct Yes
specular_indirect Yes
sss Yes
sss_albedo Yes
sss_direct Yes
sss_indirect Yes
transmission Yes
transmission_albedo Yes
transmission_direct Yes
transmission_indirect Yes
volume Yes
volume_Z ** No **
volume_albedo ** No **
volume_indirect ** No **
volume_opacity ** No **
Custom plugins
BSDF ** No **
Camera ** No **
Color Manager Yes
Driver Yes
Filter ** No **
Shader ** No **
Procedural Yes
Procedural Yes
Imager Yes
Operators Yes

Was this information helpful?