face <name> ( <component list> ) ;
A face is an object that may be instanced in the MODEL section. It defines a planar surface whose boundary is given by a spline curve.
A face may be specified as a literal or as a variable. If specified as a variable, it must have a name. Any of the following components may be specified between the parentheses:
All components are specified using a keyword=value form. Components are separated by commas. The components may be specified in any order. Components that are not specified take on their default value. If any component is specified more than once, the last such specification will be used, and all previous ones ignored.
face node7 (active = TRUE, divisions = 4,
shader = (DefaultShader ),
casts_shadow = TRUE,
boundaries = (
(degree = 3,
knots = (-0.4375 , -0.21875 , 0.0 , 1.0 , 2.0 ,
2.21875 , 2.4375 , 2.65625 , 3.65625 , 4.65625
),
cvs = ( cv(( -1.0839422, 0.0 , -1.8821912), 0.9999998),
cv(( -1.3428757, 0.0 , 0.220685 ), 1.0 ),
cv(( -0.2771195, 0.0 , 0.9785176), 0.9999996),
cv(( 1.1370566, 0.0 , 0.725904 ), 0.9999998),
cv(( 0.7208539, 0.0 , -1.9337564), 1.0000001),
cv(( -1.0839422, 0.0 , -1.8821912), 0.9999998),
cv(( -1.3428757, 0.0 , 0.220685 ), 1.0 ),
cv(( -0.2771195, 0.0 , 0.9785176), 0.9999996)
)
)
));
A Boolean flag that controls whether the face is visible or not.
This component may be animated. This is provided so the user can cause an object to suddenly appear or disappear in an animation.
active = TRUE
boundaries = (degree = <scalar>, knots = (....), ( <boundary description> ),
This defines the shape of the face, including the outer face and all inner faces.
The definition consists of a list of curves. The first curve in the list is considered the outer face-all subsequent curves are considered inner faces. Each curve specified has its own set of 3 components: cvs, to define the curve according to its polynomial basis; knots, to define the polynomial basis; and divisions, to define the quality of the rendering approximation. These components are discussed separately below. The boundaries component must be specified, and it must contain at least one curve. There may be any number of additional curves. Each curve in the list (even if there is only one) must be enclosed within parentheses, and the list itself must also be enclosed within parentheses. The boundaries component may not be animated.
boundaries = (
(degree = 3,
knots = (-0.4375 , -0.21875 , 0.0 , 1.0 , 2.0 ,
2.21875 , 2.4375 , 2.65625 , 3.65625 , 4.65625
),
cvs = ( cv(( -4.4072771, 0.0 , -7.6529346), 0.9999998),
cv(( -5.4600935, 0.0 , 0.897299 ), 1.0 ),
cv(( -1.1267598, 0.0 , 3.9786241), 0.9999996),
cv(( 4.623239 , 0.0 , 2.9515047), 0.9999998),
cv(( 2.9309711, 0.0 , -7.8625975), 1.0000001),
cv(( -4.4072771, 0.0 , -7.6529346), 0.9999998),
cv(( -5.4600935, 0.0 , 0.897299 ), 1.0 ),
cv(( -1.1267598, 0.0 , 3.9786241), 0.9999996)
)
)
A Boolean flag that controls whether or not this face will cast a shadow.
This component may be animated. Note that a transparent or semitransparent object will not cast a shadow when RayCasting.
casts_shadow = FALSE
clusters = (<cluster matrix list>),
A list of cluster matrices that affect the current surface.
A cluster matrix describes the initial position of the matrix (4X4 scalars), the type of cluster effect (JOINT or LEAF), JOINT level (or 0 if the type is LEAF), and translate, rotate, scale as 3 scalar tuples.
clusters = (
clm( CL_r_peak,
1.0 , 0.0 , 0.0 , 0.0 ,
0.0 , 1.0 , 0.0 , 0.0 ,
0.0 , 0.0 , 1.0 , 0.0 ,
0.283681 , 0.0285822, -0.5841172, 1.0 ,
LEAF, 0,
0.0 , 0.0 , 0.0 ,
0.0 , 0.0 , 0.0 ,
1.0 , 1.0 , 1.0 ),
clm( CL_knot45_section0_Rwrist,
1.0 , 0.0 , 0.0 , 0.0 ,
0.0 , 1.0 , 0.0 , 0.0 ,
0.0 , 0.0 , 1.0 , 0.0 ,
0.283681 , 0.0285822, -0.5841172, 1.0 ,
LEAF, 0,
0.0 , 0.0 , 0.0 ,
0.0 , 0.0 , 0.0 ,
1.0 , 1.0 , 1.0 )
clm( CL_cluster#10,
1.0 , 0.0 , 0.0 , 0.0 ,
0.0 , 1.0 , 0.0 , 0.0 ,
0.0 , 0.0 , 1.0 , 0.0 ,
0.283681 , 0.0285822, -0.5841172, 1.0 ,
JOINT, 3,
-0.2398842, -0.0303474, 0.0 ,
0.0 , 0.0 , 0.0 ,
1.0 , 1.0 , 1.0 ) ),
Defines the control vertices for a face boundary curve.
cvs= ( cv(( 1,6,0),1), cv((12,6,0),1), cv((12,1,0),1), cv(( 1,1,0),1) ),
This defines the order of the NURBS curve in the u direction. 1 is a linear curve, 3 is a cubic, and so on.
This component may not be animated.
degree = 3
This defines the smoothness of the contour along the face boundary curve.
This component may be animated. Note that face boundary curves are always subdivided using the uniform algorithm.
divisions = 8
knots = ( <scalar>, <scalar>, <scalar> )
This specifies the knot vector for a face boundary curve. It must match with the cvs given.
The individual values may be animated, but the number of items in the list must not change.
knots = ( 0, 1, 2, 3, 4, 5 )
light_list = ( <light>, <light>, <light> )
Each light given must have been defined; literals may not be used.
Each item referenced must be the name of a previously declared light data item (see Light Data Type), or an array element of type light. Literals may not be used. This lists the lights to be used by this patch. If light_list is omitted or if it is specified and is empty, all nonexclusive lights will be used to illuminate the patch. If light_list is specified, and the list contains defined lights, then all instances of those lights in the scene, and only those, will be used for this patch. This enables situations where the user may want 10 lights on a particular object, for example, but only two lights on the rest of the scene.
light_list = ( spot01, spot02, flood, globallight )
If motion_blur is turned on for the file, this flag indicates that motion blur should be calculated for this object.
motion_blur_shading_samples = <scalar>
3 - for bump or displacement mapped objects
>= 3 for bump or displacement mapped objects
If motion_blur is turned on for the file, this flag indicates the number of samples done for shading of motion-blurred objects.
motion_blur_shading_samples = 1
motion_blur_texture_sample_level = <scalar>
If motion_blur is turned on for the file, this flag indicates the level of sampling done for texturing of motion-blurred objects. A 0 indicates no extra samples (lowest quality) and 5 means highest quality motion-blurred textures. Note, this flag does not apply to bump or displayment mapping.
motion_blur_texture_samples = 3
particle_collisions = BOUNDING_BOX_COLLISIONS | OFF | GEOMETRY_COLLISIONS
To define which objects collide with particles.
particle_collisions = BOUNDING_BOX_COLLISIONS
shading = ( <shader>, <shader>,
The shaders given may be variables or array elements of type shader (see Shader Data Type). Note that there is no such thing as a literal shader.
This specifies which shading characteristics are assigned to the face.
This component may be animated. If a list of shaders is specified, they will be visible in the order given.
shader = ( label_1, bottle_1 )