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)
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. Currently, there is limited support for specific shading operations, as follows: Initial support for OpenVDB has been added to the GPU renderer. In this initial implementation, each VDB grid is loaded to GPU in a dense format. While this matches the CPU renderer visually quite well and is feature-complete, the memory consumption can be larger due to the lack of sparse representation. The rendering speed may be slower than CPU in cases with high opacity volumes, as the GPU implementation does not skip empty space as efficiently as the CPU version. The match with CPU will become increasingly good as the step-size parameter is reduced. Initial support for volume displacement has been added to the GPU renderer. The rendering speed may be slower than CPU in cases with high opacity volumes, as the GPU implementation does not skip empty space as efficiently as the CPU version. The match with CPU will become increasingly good as the step-size parameter is reduced.OSL
Shading operations
OpenVDB
Volume displacement
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 | No | |
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 | No | |
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 | No | |
max | Yes | |
maya_layered_shader | Yes | |
min | Yes | |
mix_rgba | Yes | |
mix_shader | Yes | |
modulo | Yes | |
motion_vector | No | |
multiply | Yes | |
negate | Yes | |
noise | Yes | |
normal_map | Yes | |
normalize | Yes | |
osl | Yes | Some limited support for closures and shading operations. |
passthrough | Yes | |
physical_sky | Yes | |
pow | Yes | |
query_shape | Yes | |
ramp_float | Yes | Connected colors and positions not supported. |
ramp_rgb | Yes | Connected colors and positions not supported. |
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 depth and extra samples are 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 | No | |
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 | No | |
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 | No | |
opacity | Yes | |
raycount | Yes | |
shadow_matte | No | |
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 |