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.shadowGroup
The lights that cause this object to cast shadows. Accepts a set expression or a space separated list of lights. Use “defaultLights” to refer to all lights that contribute to illumination by default.
attributes.diffuseReflectionVisibility
Whether or not the object is visible in reflected diffuse ( ie. if it casts bounce light )
attributes.specularReflectionVisibility
Whether or not the object is visible in reflected specular ( ie. if it is visible in mirrors ).
attributes.diffuseTransmissionVisibility
Whether or not the object is visible in transmitted diffuse ( ie. if it casts light through leaves ).
attributes.specularTransmissionVisibility
Whether or not the object is visible in refracted specular ( ie. if it can be seen through glass ).
attributes.volumeVisibility
Whether or not the object is visible in volume scattering.
attributes.subsurfaceVisibility
Whether or not the object is visible to subsurface rays.
attributes.autoBump
Automatically turns the details of the displacement map into bump, wherever the mesh is not subdivided enough to properly capture them.
attributes.cameraAutoBumpVisibility
Whether or not the autobump is visible to camera rays.
attributes.diffuseReflectionAutoBumpVisibility
Whether or not the autobump is visible in reflected diffuse ( ie. if it casts bounce light )
attributes.specularReflectionAutoBumpVisibility
Whether or not the autobump is visible in reflected specular ( ie. if it is visible in mirrors ).
attributes.diffuseTransmissionAutoBumpVisibility
Whether or not the autobump is visible in transmitted diffuse ( ie. if it casts light through leaves ).
attributes.specularTransmissionAutoBumpVisibility
Whether or not the autobump is visible in refracted specular ( ie. if it can be seen through glass ).
attributes.volumeAutoBumpVisibility
Whether or not the autobump is visible in volume scattering.
attributes.subsurfaceAutoBumpVisibility
Whether or not the autobump is visible to subsurface rays.
attributes.transformType
Choose how transform motion is interpolated. Linear produces classic linear vertex motion, RotateAboutOrigin produces curved arcs centred on the object’s origin, and RotateAboutCenter, the default, produces curved arcs centred on the object’s bounding box middle.
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.sssSetName
If given, subsurface will be blended across any other objects which share the same sss set name.
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.subdivUVSmoothing
Determines how UVs are subdivided.
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.subdivFrustumIgnore
Turns off subdivision culling on a per-object basis. This provides
finer control on top of the global subdivFrustumCulling
setting
provided by the ArnoldOptions node.
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.
Caution
This is not equivalent to converting a polygon mesh into a subdivision surface. To render with Arnold’s subdiv_type set to “catclark”, you must use the MeshType node to convert polygon meshes into subdivision surfaces.
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
Override the step size taken when raymarching volumes. If this value is disabled or zero then value is calculated from the voxel size.
attributes.volumeStepScale
Raymarching step size is calculated using this value multiplied by the volume voxel size or volumeStepSize if set.
attributes.shapeStepSize
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.
attributes.shapeStepScale
Raymarching step size is calculated using this value multiplied by the shapeStepSize.
attributes.volumePadding
Allows a volume to be displaced outside its bounds. When rendering a mesh as a volume, this enables displacement.
attributes.velocityScale
Scales the vector used in VDB motion blur computation.
attributes.velocityFPS
Sets the frame rate used in VDB motion blur computation.
attributes.velocityOutlierThreshold
Sets the outlier threshold used in VDB motion blur computation.
When rendering physics simulations resulting velocities are potentially noisy and require some filtering for faster rendering.
attributes.toonId
You can select in the toon shader to skip outlines between objects with the same toon id set.
global
Causes the attributes to be applied to the scene globals instead of the individual locations defined by the filter.
extraAttributes
An additional set of attributes to be added. Arbitrary numbers
of attributes may be specified within a single IECore.CompoundObject
,
where each key/value pair in the object defines an attribute.
This is convenient when using an expression to define the attributes
and the attribute count might be dynamic. It can also be used to
create attributes whose type cannot be handled by the attributes
CompoundDataPlug, with IECoreScene.ShaderNetwork
being one example.
If the same attribute is defined by both the attributes and the extraAttributes plugs, then the value from the extraAttributes is taken.