Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 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 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 on volumes.
  • Limited AOV support.

  • Light groups, shadow groups, trace 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)


Multiexcerpt

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.

...

Closures

Supported closures include:

...

...

Shading operations

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

...

  • Dynamic string operations
  • Message passing

OpenVDB

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.

Volume displacement

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.


Supported Features and Known Limitations

Div
stylewidth:100%

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_filterYesOne 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

Yes


point_light

Yes

Light groups not supported.


quad_light

Yes

Light

groups not

portals 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_read_floatYes
aov_read_intYes
aov_read_rgbYes
aov_read_rgbaYes

aov_write_float

No

Yes

 

 


aov_write_int

No

 

Yes


aov_write_rgb

No

 

Yes


aov_write_rgba

No

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

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

 mipmap


image

Yes

All textures converted to half-float.

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

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 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

No

Yes

User data inherited from parent procedurals is not currently supported

utility

Yes

The

wire, polywire,

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

No

Yes

 


Shapes

box

Yes

Light groups, shadow groups, trace

Trace sets are not supported.

cone

No

 


curves

Yes

Light groups, shadow groups, trace

Trace sets are not supported. Oriented curves are not supported.

cylinder

No

 


disk

No

 


ginstance

Yes

Light groups, shadow groups, trace

Trace sets are not supported.

nurbs

Yes

 


plane

Yes

Light groups, shadow groups, trace

Trace sets are not supported.

points

Yes

Light groups, shadow groups, trace sets

Trace sets are not supported. Points rendered as a volume are not supported.

polymesh

Yes

Light groups, shadow groups, trace

Trace sets are not supported.

sphere

Yes

Light groups, shadow groups, trace

Trace sets are not supported.

implicit

No

 


volume_implicit

No

 


alembic

Yes

Light groups, shadow groups, trace

Trace sets are not supported.

procedural

Yes

Light groups, shadow groups, trace

Trace sets are not supported.

volume

Yes

Light groups, shadow groups, trace

Trace sets are not supported.

AOVs
AA_inv_densityYes
 

IDYes
 

NYes
 

PYes
 

PrefNo
 

RGBAYes
 

ZYes
 

albedoYes
 

backgroundYes
 

coatYes
 

coat_albedoYes
 

coat_directYes
 

coat_indirectYes
 

cputimeYes
 

diffuseYes
 

diffuse_albedoYes
 

diffuse_directYes
 

diffuse_indirectYes
 

directYes
 

emissionYes
 

indirectYes
 

motionvectorNo
 

opacityYes
 

raycountYes
 

shadow_matteNo
 

sheenYes
 

sheen_albedoYes
 

sheen_directYes
 

sheen_indirectYes
 

specularYes
 

specular_albedoYes
 

specular_directYes
 

specular_indirectYes
 

sssYes
 

sss_albedoYes
 

sss_directYes
 

sss_indirectYes
 

transmissionYes
 

transmission_albedoYes
 

transmission_directYes
 

transmission_indirectYes
 

volumeYes
 

volume_ZNo
 

volume_albedoNo
 

volume_indirectNo
 

volume_opacityNo
 

Custom plugins
BSDFNo
 

CameraNo
 

Color ManagerYes
 

DriverYes
 

FilterNo
 

ShaderNo
Procedural
 
Yes
ProceduralYes
 

ImagerYes
OperatorsYes