It is possible to designate objects to be part of one or many trace sets. The trace_set shader marks specific rays with an inclusive or exclusive trace set. Both geometry and rays can be designated as trace sets:

  • A piece of geometry can have none or any number of trace sets.
  • A ray can optionally have one trace_set, and it can be exclusive or inclusive.

The way those two interact makes it possible to control visibility for specific rays:

  • A ray with no trace_set will hit all geometry.
  • A ray marked with an inclusive trace set will only hit geometry that has that trace_set.
  • A ray marked with an exclusive trace set will only see geometry that does NOT have that trace_set.
  • An empty trace set name means that the shape belongs to all sets. So to remove objects from, say reflections, one must assign a dummy set name.
  • The trace set name must be set before the ray is fired. For example, for "direct" reflections, the trace_set node must be connected to the "camera" rays in addition to the "reflection" one.

'Eyeball' set in Trace Sets of sphere and shader.

A scene file is available here.

In the Arnold Visibility attributes, it is possible to tag objects to be part of one or many trace sets. 


The shader that gets called after setting the label.

Trace Set

The string label defining the set of objects to be traced or avoided. Objects are labeled using the Arnold Parameters Tag property.


If on, the tracing works in inclusive mode, else in exclusive, as described above.

trace_set assigned to plane

  • No labels
Privacy settings / Do not sell my personal information / Privacy/Cookies