10. Glossary#
- Attribute state
The set of variables that determines all the properties (other than shape) of a geometric primitive — such as its local transformation matrix, the surface, displacement, and volume shaders to be used, which light sources illuminate objects that share the attribute state, whether surfaces are one-sided or two-sided, etc. Basically all of the options that determine the behavior and appearance of the primitives, that are not determined by the shape itself or the code of the shaders. A single attribute state may be shared among multiple geometric primitives. Also sometimes called graphics state.
- BSDF
Bidirectional scattering distribution function, a function that describes light scattering properties of a surface.
- Built-in function
A function callable from within a shader, where the implementation of the function is provided by the renderer (as opposed to a function that the shader author writes in OSL itself).
- Closure
A symbolic representation of a function to be called, and values for its parameters, that are packaged up to be evaluated at a later time to yield a final numeric value.
- Connection
A routing of the value of an output parameter of one shader layer to an input parameter of another shader layer within the same shader group.
- Default parameter value
The initial value of a shader parameter, if the renderer does not override it with an instance value, an interpolated primitive variable, or a connection to an output parameter of another layer within the group. The default value of a shader parameter is explicitly given in the code for that shader, and may either be a constant or a computed expression.
- EDF
Emission distribution function, a function that describes the distribution of light emitted by a light source.
- Geometric primitive
A single shape, such as a NURBS patch, a polygon or subdivision mesh, a hair primitive, etc.
- Global variables
The set of “built-in” variables describing the common renderer inputs to all shaders (as opposed to shader-specific parameters). These include position (
P
), surface normal (N
), surface tangents (dPdu
,dPdv
), as well as standard radiance output (Ci
). Different shader types support different subsets of the global variables.- Graphics state
See attribute state.
- Group
See shader group.
- Input parameter
A read-only shader parameter that provides a value to control a shader’s behavior. Can also refer to a read-only parameter to a shader function.
- Instance value
A constant value that overrides a default parameter value for a particular shader instance. Each instance of a shader may have a completely different set of instance values for its parameters.
- Layer
See shader layer.
- Output parameter
A read/write shader parameter allows a shader to provide outputs beyond the global variables such as
Ci
. Can also refer to a read/write parameter to a shader function, allowing a function to provide more outputs than a simple return value.- Primitive
Usually refers to a geometric primitive.
- Primitive variable
A named variable, and values, attached to an individual geometric primitive. Primitive variables may have one of several interpolation methods — such as a single value for the whole primitive, a value for each piece or face of the primitive, or per-vertex values that are smoothly interpolated across the surface.
- Shader
A small self-contained program written in OSL, used to extend the functionality of a renderer with custom behavior of materials and lights. A particular shader may have multiple shader instances within a scene, each of which has its unique instance parameters, transformation, etc.
- Shader function
A function written in OSL that may be called from within a shader.
- Shader group
An ordered collection of shader instances (individually called the layers of a group) that are executed to collectively determine material properties or displacement of a geometric primitive, emission of a light source, or scattering properties of a volume. In addition to executing sequentially, layers within a group may optionally have any of their input parameters explicitly connected to output parameters of other layers within the group in an acyclic manner (thus, sometimes being referred to as a shader network).
- Shader instance
A particular reference to a shader, with a unique set of instance values, transformation, and potentially other attributes. Each shader instance is a separate entity, despite their sharing executable code.
- Shader network
See shader group.
- Shader layer
An individual shader instance within a shader group.
- Shader parameter
A named input or output variable of a shader. Input parameters provide “knobs” that control the behavior of a shader; output parameters additional provide a way for shaders to produce additional output beyond the usual global variables.
- Shading
The computations within a renderer that implement the behavior and visual appearance of materials and lights.
- VDF
Volumetric distribution function, a function that describes the scattering properties of a volume.