curves

Class

Shape

Synopsis
An arbitrary curved shape which can be either flat (ribbon and oriented) or thick. Useful for modeling hair. The curve can be specified in various ways (Bezier, B-Spline, Catmull-Rom, etc.)

 

num_points 
An unsigned integer array of the number of control points. 
points

A 3d vector array of control points.

radius
A float array of radii. 
orientations

A 3d vector array of orientation vectors, for oriented mode.

basis

Describes how the curve is formed from the control points. Can choose from Bezier, B-Spline, Catmull-Rom, Linear.

mode
There are three algorithms for rendering curves in Arnold.  

Ribbon

Ribbon mode is recommended for fine geometry such as realistic hair, fur or fields of grass. These curves are rendered as camera-facing flat ribbons. For secondary and shadow rays, they face the incoming ray direction. This mode doesn't look so good for very wide hairs or dramatic zoom-ins because of the flat appearance. This mode works best with a proper hair shader (perhaps based on a Kay-Kajiya or Marschner specular model).

Thick

Thick mode resembles spaghetti. It has a circular cross section and a normal vector that varies across the width of the hair. Thick hairs look great when zoomed in, and are especially useful for effects work, but their varying normals make them more difficult to antialias when they are small. You can use any shader with this rendering mode, including Lambert, Phong, etc. 

Oriented

Similar to ribbon mode, except the ribbons do not face the camera. 

min_pixel_width

If this value is non-zero, curves with a small on-screen width will be automatically enlarged so that they are at least the specified size in pixels. The enlargement fraction is then used in the hair shader to adjust the opacity so that the visible thickness of the hair remains the same. For a given number of AA samples, this makes it a lot easier to antialias fine hair, at the expense of render time (because of the additional transparency/depth complexity). Good values are in the range 0.2 to 0.7. Values closer to 0 are faster to render but need more AA samples. So if your scene already uses very high AA settings, you should use a low value like 0.1. For best results, you may need to increase the auto-transparency depth, and/or lower the auto-transparency threshold, but watch the effect on render times. Note that this parameter currently works with the ribbon mode only. 

uvs

A 2d vector array of UV coordinates. The coordinates may be specified per curve (uniform) or curve point (varying).

shidxs  

A byte array of shader indices. Arnold supports up to 256 different shaders per object.

visibility

You can selectively disable an object's visibility for the various types of rays in the renderer. By default, objects are visible to all types of rays. Camera - Camera (AA) rays (i.e., primary or view rays). Shadow - Shadow rays fired in the direct lighting calculations. Specular - specular reflection rays. Transmission - Transmission rays. Diffuse - Indirect diffuse rays (i.e. global illumination, hemi, or GI rays). Specular - Indirect specular rays (i.e. specular reflection rays).

sidedness

Just like you can disable the visibility for specific ray types, you can also change an object's sidedness depending on the ray type. By default, objects are double-sided for all rays. By unclicking any of these checkboxes, the object will become single-sided, which means that those parts of the object whose normal vector points away from the incoming ray direction will not be rendered.

receive_shadows

Determines whether or not the object picks up shadows from other objects.

self_shadows

Determines whether or not the object casts shadows on itself.


invert_normals

Invert normals (so that normals face inwards and not outwards).

ray_bias

Raytrace bias value specified for the object.

matrix

Transformation matrix. This can be either a single matrix or an array of matrices that define the SRT motion of the object for the current frame. (The matrices define the motion for the full frame, not just between the shutter open - close time.)

shader

An array of nodes pointing to the shader or shaders in the case of per-face shader assignment.

opaque

The opaqueness (transparency) of the object. By default, all objects are marked as opaque, because that speeds up the rendering considerably. Note that this flag is not set automatically by adding a transparent material to the object, it has to be set manually!

use_light_group

A boolean to enable selective light linking

light_group

An array of nodes pointing to the lights that will affect the node if use_light_group is enabled.

use_shadow_group

A boolean to enable selective shadow linking.

shadow_group

An array of nodes pointing to the lights that will not cast shadows on the polymesh, if use_shadow_group is enabled.

trace_sets

An array of strings each of which names a trace set. A custom shader must be used to make an effective use of these strings via the AiShaderGlobalsSetTraceSet and the AiShaderGlobalsUnsetTraceSet API calls.

id

Unique ID for a node in the Arnold scene. 

motion_start

The time at which the first motion key of the shape is sampled. Other motion keys must be uniformly spaced within this range. By convention, the times are frame relative. For example, start and end times -0.5 to 0.5 indicate that the motion keys were sampled midway between the previous and current frame, and the current frame and next frame. This is applied to cameras, lights, and shapes.

motion_end

The time at which the last motion key of the shape is sampled. Other motion keys must be uniformly spaced within this range. By convention, the times are frame relative. For example, start and end times -0.5 to 0.5 indicate that the motion keys were sampled midway between the previous and current frame, and the current frame and next frame. This is applied to cameras, lights, and shapes.

transform_type

Specifies what type of motion the object has. Options are linearrotate_about_center, and rotate_about_originlinear corresponds to the linear interpolation between matrices. rotate_about_origin corresponds to curved_motionblur=true. Unlike, rotate_about_origin which sets the rotation pivot at the origin, rotate_about_center will rotate about the object's center. This is the default mode and is useful for wheels, propellers, and other objects which spin.

 

 


user attributes

 

geo_opacity

...

  • No labels