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).
- Floating-point textures are converted to half-float. Filename attribute tags are supported. Mipmap bias is not supported.
- Light linking is not supported.
Limited AOV support.
- Light groups, shadow groups, 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. Supported closures include: Currently, there is limited support for 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
Closures
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 | Light groups not supported. |
mesh_light | Yes | Light groups not supported. |
photometric_light | No |
|
point_light | Yes | Light groups not supported. |
quad_light | Yes | Light groups not supported. |
skydome_light | Yes | Light groups not supported. |
spot_light | Yes | Light groups not supported. |
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_write_float | No |
|
aov_write_int | No |
|
aov_write_rgb | No |
|
aov_write_rgba | No |
|
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 | UV sets are not supported. |
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 | All textures converted to half-float. mipmap 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 | ID AOVs are not supported extra depth and extra samples are not supported |
standard_surface | Yes | ID AOVs are not supported. 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_int | Yes |
|
user_data_rgb | Yes |
|
user_data_rgba | Yes |
|
user_data_string | No |
|
utility | Yes | The wire, polywire, edgelength, pixelerror, 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 | No |
|
Shapes | ||
box | Yes | Light groups, shadow groups, trace sets are not supported. |
cone | No |
|
curves | Yes | Light groups, shadow groups, trace sets are not supported. Oriented curves are not supported. |
cylinder | No |
|
disk | No |
|
ginstance | Yes | Light groups, shadow groups, trace sets are not supported. |
nurbs | Yes |
|
plane | Yes | Light groups, shadow groups, trace sets are not supported. |
points | Yes | Light groups, shadow groups, trace sets are not supported. |
polymesh | Yes | Light groups, shadow groups, trace sets are not supported. |
sphere | Yes | Light groups, shadow groups, trace sets are not supported. |
implicit | No |
|
volume_implicit | No |
|
alembic | Yes | Light groups, shadow groups, trace sets are not supported. |
procedural | Yes | Light groups, shadow groups, trace sets are not supported. |
volume | Yes | Light groups, shadow groups, 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 |