ArnoldAttributes

Applies Arnold attributes to objects in the scene.

user

Container for user-defined plugs. Nodes should never make their own plugs here, so users are free to do as they wish.

out

The processed output scene.

enabled

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

in

The input scene

filter

The filter used to control which parts of the scene are processed. A Filter node should be connected here.

attributes

The attributes to be applied - arbitrary numbers of user defined attributes may be added as children of this plug via the user interface, or using the CompoundDataPlug API via python.

attributes.cameraVisibility

Whether or not the object is visible to camera rays. To hide an object completely, use the visibility settings on the StandardAttributes node instead.

attributes.shadowVisibility

Whether or not the object is visible to shadow rays (whether or not it casts shadows).

attributes.reflectedVisibility

Whether or not the object is visible in tight mirror reflections.

attributes.refractedVisibility

Whether or not the object is visible in refractions.

attributes.diffuseVisibility

Whether or not the object is visible to diffuse rays - whether it casts bounce light or not.

attributes.glossyVisibility

Whether or not the object is visible in soft specular reflections.

attributes.matte

Turns the object into a holdout matte. This only affects primary (camera) rays.

attributes.opaque

Flags the object as being opaque, allowing Arnold to render faster. Should be turned off when using partially transparent shaders.

attributes.receiveShadows

Whether or not the object receives shadows.

attributes.selfShadows

Whether or not the object casts shadows onto itself.

attributes.subdividePolygons

Causes polygon meshes to be rendered with Arnold’s subdiv_type parameter set to “linear” rather than “none”. This can be used to increase detail when using polygons with displacement shaders and/or mesh lights.

attributes.subdivIterations

The maximum number of subdivision steps to apply when rendering subdivision surface. To set an exact number of subdivisions, set the adaptive error to 0 so that the maximum becomes the controlling factor.

Use the MeshType node to ensure that a mesh is treated as a subdivision surface in the first place.

attributes.subdivAdaptiveError

The maximum allowable deviation from the true surface and the subdivided approximation. How the error is measured is determined by the metric below. Note also that the iterations value above provides a hard limit on the maximum number of subdivision steps, so if changing the error setting appears to have no effect, you may need to raise the maximum.

Note

Objects with a non-zero value will not take part in Gaffer’s automatic instancing unless subdivAdaptiveSpace is set to “object”.

attributes.subdivAdaptiveMetric

The metric used when performing adaptive subdivision as specified by the adaptive error. The flatness metric ensures that the subdivided surface doesn’t deviate from the true surface by more than the error, and will tend to increase detail in areas of high curvature. The edge length metric ensures that the edge length of a polygon is never longer than the error, so will tend to subdivide evenly regardless of curvature - this can be useful when applying a displacement shader. The auto metric automatically uses the flatness metric when no displacement shader is applied, and the edge length metric when a displacement shader is applied.

attributes.subdivAdaptiveSpace

The space in which the error is measured when performing adaptive subdivision. Raster space means that the subdivision adapts to size on screen, with subdivAdaptiveError being specified in pixels. Object space means that the error is measured in object space units and will not be sensitive to size on screen.

attributes.subdivSmoothDerivs

Computes smooth UV derivatives (dPdu and dPdv) per vertex. This can be needed to remove faceting from anisotropic specular and other shading effects that use the derivatives.

attributes.curvesMode

How the curves are rendered. Ribbon mode treats the curves as flat ribbons facing the camera, and is most suited for rendering of thin curves with a dedicated hair shader. Thick mode treats the curves as tubes, and is suited for use with a regular surface shader.

Note

To render using Arnold’s “oriented” mode, set mode to “ribbon” and add per-vertex normals to the curves as a primitive variable named “N”.

attributes.curvesMinPixelWidth

The minimum thickness of the curves, measured in pixels on the screen. When rendering very thin curves, a large number of AA samples are required to avoid aliasing. In these cases a minimum pixel width may be specified to artificially thicken the curves, meaning that fewer AA samples may be used. The additional width is compensated for automatically by lowering the opacity of the curves.

attributes.volumeStepSize

The step size to take when raymarching volumes. A non-zero value causes an object to be treated as a volume container, and a value of 0 causes an object to be treated as regular geometry.

global

Causes the attributes to be applied to the scene globals instead of the individual locations defined by the filter.