This is a glossary of some of the terms you'll encounter in computer graphics and Maya programming.
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z
If you can't find a term, suggest it below. I will write a definition for it then add it to the glossary.
|
action |
An action is a MEL command that doesn't alter or change Maya's state. An action will often query the scene without changing it. |
|
affine transformation |
A transformation that involves a linear transformation followed by a translation. |
|
animation controller |
Many 3D packages have specific functionality for animating objects. In 3dsmax they are referred to as controllers. In Softimage, they are fcurves. In Maya, the standard animation controls are the animCurve nodes. They allow you to create and edit a curve that then controls a parameter over the range of the animation. |
|
ANSI |
This an abbreviation of the American National Standards Institute. The institute is involved in defining standards for many computer languages, including C and C++. |
|
API |
Abbreviation of Application Programming Interface. A system will provide a programmer with an API. This API defines the complete methods by which a programmer can access and control the given system. |
|
ASCII |
Abbreviation of American Standard Code for Information Interchange. This is a system for encoding characters using 7 bits. |
|
argument |
An argument to a command or procedure is simply a value given to the command or procedure as input to perform its operation. |
|
array |
An array is a list of items. |
|
assignment |
Assignment consists of storing a value into a variable. The assignment operator(=) is used to store values, for example, $a = 2. |
|
attribute |
This is particular property of a node. For instance, the makeNurbsSphere node has a radius attribute. By changing this attribute the sphere will change in size. |
|
axis |
An axis is a direction. A 3D object will have three axiis: x, y, z. |
|
black box |
When the exact operations of a given system aren't knoww outside the system it is referred to as a black box. This means that its inner workings can't be seen. |
|
boolean |
Booleans are used to denote the result of a logical operation. A boolean can be either true or false. |
|
breakdown key |
This is a key that depends on keys before and after it. A breakdown key will automatically maintain its relative position to the other keys when they are moved. |
|
C++ |
This is an object-oriented programming language based on the C language. |
|
cartesian coordinates |
A coordinate system that defines positions based on their projection onto a series of orthogonal axiis. |
|
case sensitive |
When an operation is case sensitive it makes a distinction between two names that don't have the same case. For instance, the names bill and Bill will be considered different in case sensitive system. |
|
child |
This is something that has a parent. |
|
class |
In C++, a class is the basic construct for defining a self-contained object. Classes have their own member functions and data. |
|
class hierarchy |
Using standard object-oriented design methods, most complex systems are broken into a hierarchy. At the root(top), is a class with very basic functionality. Other classes are derived(child) from this class to add more specific functionality. As this process continues you end up with a tree hierarchy of classes. |
|
command |
A command is used to perform a particular operation. The sphere command, for example, is used to create and edit spheres. Command are used throughout Maya to perform almost all its various operations. |
|
command modes |
A single command can operate the following variety of modes: creation, edit, and query. When a command is executed in a given mode it will perform a restricted set of operations. When in query node it will retrieve values. When in creation mode it will create things. |
|
comment |
This is some descriptive text that a programmer includes in their source code so that other people can read and understand what they were doing. It is a means of documenting the functionality of a program. A multi-line comment is a comment that spans more than more line of text. |
|
compile-and-link |
Compiled languages like C and C++ need to have the source code compiled and linked into machine code in order to run. This is in contract with scripting languages, like MEL, that interpret instructions and execute them immediately. |
|
component |
This is the individual values of a vector, point, etc. A point has three components: x, y, z. |
|
compound attribute |
This is an attribute that consists of combining other attributes. The attributes are compounded into another more complex attribute. |
|
compute function |
This is the function in a node that does the calculation of a node's output attributes. The compute function takes the input attributes and then calculates the final values for the output attributes. |
|
concatenation |
This is the process of linking one or more items into a chain. |
|
connection |
When the value of one attribute feeds into another a connection is established between the two. It is possible to freely make and break connections. |
|
context |
When the compute function of a node is called, the context defines when, in time, the node is being recalculated. |
|
creation expression |
An expression that is run when a particles age is 0, i.e. when it just born. |
|
cross product |
The cross product of two vectors is another vector that is perpendicular to the two. It is often used to determine the direction of a vector that is normal to a surface. |
|
curveAnim node |
These are curve animation nodes. These nodes hold an animation curve that you can edit and modify to animate a particular parameter. These nodes can do standard keyframing and driven-key animation. |
|
DAG |
Abbreviation for Directed Acyclic Graph. This is a technical term for a hierarchy where none of the children can themselves be their own parents. If you walked from the first node in the hierarchy to the very last you would never see the same node twice. |
|
DAG path |
This is the complete path to a given node. The path lists the node and all its ancestor nodes. |
|
data flow model |
A conceptual model where data flows through a series of nodes from the first node to the last. Data is modified by each subsequent node. |
|
deformer |
A deformer takes one or more points and moves them to a new location. |
|
dependency node |
A general Dependency Graph node. All Maya nodes are dependency nodes. |
|
dependent attribute |
This is an output attribute. When an attribute depends on other attributes for its final value, then it is considered a dependent attribute. The MPxNode::attributeEffects function is used to set this dependent relationship between attributes. |
|
dirty bit |
This is a flag that an attribute contains to indicate whether it needs to be updated. |
|
dirty bit propagation |
This is the process where a dirty bit message is passed through the DG from one node to another. The message eventually passes from the first attribute to all other attributes that this one affects. |
|
DG |
Abbreviation for Dependency Graph. The DG consists of all the Maya nodes and their connections. |
|
dot product |
The dot product is simply the result of multiplying all the components of two vectors together and adding the results: dot product(a,b) = a.x * b.x + a.y * b.y + a.z * b.z. The dot product is often used to calculate the cosine of the angle between two vectors. |
|
double |
In C++, this is a data type for storing numbers with decimal digits. It often, though not always, has a higher precision than the float data type. |
|
dynamic attribute |
This is an attribute that is added to a particular node. This attribute isn't shared by all nodes of the same type, but is unique to a given node. |
|
dynamic link library |
This is a library of programming functionality that is loaded into memory only when needed. |
|
ELF |
Abbreviation of Extended Layer Framework. This is the framework used in MEL to define interfaces. Interfaces are designed by creating layouts to which controls are then attached. The framework supports arbitrary nesting of layouts and controls. |
|
entry point |
This is the function that is called when a dynamic link library is loaded into memory. |
|
exit point |
This is the function that is called when a dynamic link library is unloaded from memory. |
|
expression |
In the context of Maya, an expression is a series of MEL commands that control one or more node attributes. This allows you to programmatically control attributes. |
|
flag |
A flag is used to indicate if something is on or off. It is used as a means of signalling. |
|
float |
This the data type for storing numbers with decimal digits. The size of a float in MEL is not necessarily the same as in C++. |
|
floating-point |
A floating-point number is how computers store numbers with decimal digits. The term refers to the fact that the decimal point can change. |
|
forward kinematics/FK |
This is where an animator must explicitly define the orientations of all the joints. |
|
function |
In the C/C++ programming languages, a function defines how to perform a particular operation. A function can, for instance, add two numbers or rotate an object, or just about any operation. Functions are called to execute them. |
|
function set |
Under Maya's scheme of separating the data from the functions that operate on them, a function set is a C++ class that provides the programmer with access to the data. A functions set can be used to create, edit, and query the data without having to know its specific details. |
|
global |
This defines the scope of a variable or procedure. If they are made global they can be accessed from anywhere. |
|
group |
In Maya, a group is simply a transform node that becomes the parent of all the nodes in the group. The group is all the child of the transform node. |
|
GUI |
Abbreviation of Graphical User Interface. This is the system of windows, dialog box, and other user interface elements that you interact with when using Maya. |
|
hierarchy |
Any system where there is a parent-child relationship. |
|
identity matrix |
A transformation matrix that doesn't have any effect when applied to a point. Technically, the matrix is composed of all zeros with just the diagonal having ones. |
|
initialization |
This is the value assigned to a variable when it first defined. |
|
input attribute |
This is an attribute that provides input to a node. The input attribute's value is often used by the compute function to calculate the value of one or more output attributes. |
|
instance |
An instance of an object, is the same as an exact duplicate of the object. An instance is really an object that shares the exact same properties as the original. It will always stay the same as the original no matter what changes are made to the original. |
|
int |
This data type is used to store whole numbers; integers. |
|
interface |
The specific communication methods through which you communicate with a system. The graphical user interface provides a set of graphical elements that you use to effectively communicate your intentions to the underlying system. |
|
interpreted language |
This is a computer language where the source code is interpreted and run immediately. This is different from a compile language where the source code must first be compiled, then linked, before being run. Interpreted languages tend to be slower than compiled languages, though are often better for rapid prototyping. |
|
inverse kinematics/IK |
This is where an animator can control a series of joints by simply placing the last one. All the intermediate joints are calculated by the computer. |
|
IK solver |
Maya allows you to write your own inverse kinematic systems. An IK solver determines the orientations of intermediate joints. |
|
joint |
A joint is like a bone. Joints can be connected to create appendages. Joints are often what the animator moves to control a character. |
|
keyframe animation |
This is where you define the animation for a parameter by specifying its exact value at a given set of times. The computer can then work out by interpolating what the value should be between the keys. |
|
keystroke |
This is when a key on the keyboard is pressed. |
|
library |
In the context of C++, a library is a repository of functionality that can be used in other programs. A library for handling files, will allow you to create, open, and edit files. By using a library in your program, you don't have to develop the technology yourself. |
|
local |
This defines how a procedure or variable can be accessed. By making them local they can only be accessed within the script file or current block. |
|
local space |
This is the coordinate space in which an object is first defined. In this space no transformations have been applied to the object. |
|
locator |
A locator is 3D shape that is displayed in Maya. The main difference is that it won't show up in the final render. |
|
loop |
This is where you repeat an operation several times. |
|
manipulator |
This is a visual control that the user manipulates in 3D, to change an attribute. |
|
matrix |
A matrix is a series of rows and columns of numbers. Matrices are used in computer graphics to transform points. |
|
MEL |
Abbreviation of Maya Embedded Language. This is Maya's interpreted scripting language. It is very close to the C language in syntax, but is easier to learn and allows you to quickly write programs to access and control Maya. |
|
mesh |
A mesh is a series of polygons grouped to form a surface. |
|
namespace |
A namespace is where a set of names reside. Since they are all in the same set, their names must be different from each other. If you have names that are the same, a namespace conflict results. |
|
node |
A node is the fundamental building-block of Maya's Dependency Graph. Nodes contain attributes that a user can change. They also contain a compute function that automatically calculates certain attributes. |
|
noise |
This is a pseudo-random number. For consistent inputs it generates consistent, though random numbers. |
|
normal |
A normal is a vector that is perpendicular to a surface. |
|
NURBS |
Abbreviation for Non-Uniform Rational B-Spline. This is a mathematical representation for smooth curves and surfaces. |
|
object space |
See local space. |
|
operator |
An operator is a short hand method for defining an operation between one or more values. The addition operator is written using the plug sign(+). Other operators include multiply(*), division(/), etc. |
|
output attribute |
This is an attribute that holds the result of a computation. One or more input attributes are fed into the node's compute function that then create an output value that is stored in an output attribute. |
|
parent |
A parent is something that has one or more children. Since a parent can also have a parent, its children will have indirect parents. These are parents(grandparent, great-grandparents, etc) about their direct parents. |
|
parent attribute |
In a compound or array attribute, this is the top-most attribute. It is the parent of all the child attributes under it. |
|
particles |
A particle defines a point in space. Particles are often animated and controlled by applying forces and other physics to them. |
|
pipeline |
In the context of a production studio, the pipeline includes all the various steps that go into making a film. Starting with modeling, then progressing to animation, lighting, and then finally rendering, the pipeline often consists of separate specialized departments. |
|
plugin |
A plugin is a program written by someone that is integrated into another application. The program plugs into the application. Plugins often provide additional functionality that isn't available in the application. |
|
polymorphism |
With regards to an object-oriented programming language, such as C++, polymorphism refers to an object's ability to behave differently depending on its type. This provides a powerful means for making extensions to objects. |
|
point |
A point defines a position. In Maya points are defined in cartesian coordinates: x, y, z. |
|
platform |
A platform is particular computer configuration. It includes the operating system and other specific components(CPU, etc). Example platforms include Irix, Linux, Windows, etc. |
|
plug |
A plug identifies a particular node's attribute. It is used to access a specific node's attribute values. |
|
post-infinity |
This is any frame after the last key in an animation curve. |
|
precedence |
In a programming language, the precedence of an operator determines in what order it will be evaluated. An operator with a higher precedence will be evaluated before another with a lower precedence. For instance multiplication has a higher precedence than addition. |
|
pre-infinity |
This is any frame before the first key in an animation curve. |
|
procedure |
A procedure is a means of defining a particular operation in MEL. A procedure is used to perform some operation and often return a result. This is conceptually the same as the C language's function. |
|
pseudocode |
Pseudocode is a short hand way of describing a computer program. Rather than use the specific syntax of a computer language, more general wording is used. Using pseudocode, it is easier for a non-programmer to understand the general workings of the program. |
|
push-pull model |
A conceptual model where data is both pushed and pulled through a series of nodes. This model differs from the data flow model in that it is more efficient since only nodes that need updating are updated. Maya's dependency graph works on this principle. |
|
random number |
A number that is determined entirely by chance. |
|
redo |
When an command is undone, it can be re-executed by choosing to redo it. |
|
render |
To take the scene information models, lights, camera, etc, and make a final image. |
|
root |
This is the fictitious node that is the parent of all other nodes in the scene. There is the concept of a root node so that the entire scene can be thought of as a tree, starting at the root. |
|
rotate/rotation |
Rotating an object is the same as spinning it around. This changes its orientation. The point about which it will rotate is called the rotation pivot. A wheel will have its rotation pivot in its center. |
|
runtime expression |
An expression that is run when a particle is older than zero. |
|
scale |
Scaling an object means resizing it. A uniform scale is where the object is resized evenly. By doing a non-uniform scale an object can be made wider, higher, or deeper, without keeping its original proportions. |
|
scene |
The scene constists of all the Maya data. It includes all the models, their animation, effects, settings, etc. |
|
scope |
The scope of a variable defines whether or not it can be accessed. In a variable has global scope then it can be accessed everywhere. If it has local scope then it can only be accessed in the block it is defined, and all inner blocks. |
|
script |
A text file that contains MEL statements. |
|
scripting language |
A scripting language differentiates itself from other typical languages in that they are usually simpler to learn and use as well as not needing to be compiled. The language is interpreted at run-time so you can execuate instructions immediately. |
|
set |
A set is simply a list of items. When an object is put into a set, it is made a part of the list. |
|
set-driven keys |
Set-driven keys are used to define a relationship between one parameter and another. Unlike keyframes that assume you are using time, a set-driven key can use any parameter(driver) to drive another parameter. The relationship is defined by editing a curve. |
|
shader |
A shader defines the final surface properties of an object. For example, a shader can define the color, reflectivity, and transluscency of a surface. |
|
shape |
This is the general term for all 3D data that can be displayed in Maya. Shapes include curves, surfaces, points, etc. |
|
shape node |
A node that holds a shape, such as a polygonal mesh, curve, nurbs surface, particles, etc. |
|
sibling |
A sibling is a child that shares the same parent. |
|
skeleton |
A hierarchy of joints that define the inner structure of a character. |
|
skinning |
This is the process where a model is wrapped around a skeleton. When the skeleton moves, the model will move correspondingly. The model effectively forms a skin over the skeleton joints. |
|
sourcing |
This is the process where a MEL script is loaded into Maya, then executed. |
|
space |
A space is a particular frame of reference for an object. Specifically, it defines the transformations that are applied to an object to put it into the frame of reference. |
|
spring |
A spring provides a means of describing and calculating the elasticity, mass, damping, etc between two points. |
|
string |
This is series of characters; text. |
|
structured programming |
This is a design approach where complex systems are broken down into smaller, more manageable pieces. |
|
tangent |
In the context of a animation curve key, the tangents define how values are interpolated between successive keys. By changing a key's tangents you can make the animation faster or slower between keys. |
|
time node |
The time node is used to store time. It has a single attribute, outTime, that holds the time. While the time1 node holds the current time, it is possible to create additional time nodes. |
|
tool |
A tool defines a set of specific steps that must be completed in order to perform an operation. They often require for the user to selecting with the mouse before the operation can be completed on the given selection. |
|
transform node |
A DAG node used to specify the position, orientation, and size of a shape. |
|
transformation matrix |
A transformation matrix is a shorthand way of describing the positioning, rotating, and sizing of an object. When a transformation matrix is applied to an object it will often be in a different place, orientation, and size afterwards. The inverse of a transformation matrix will restore the object to its original place, orientation, and size. |
|
transformation hierarchy |
A single transformation will position, orient, and size a given object. By putting the transformations into a hierarchy you can have a series of transformations applied to an object. An object that has parent transformations will also be affected by those transformations. |
|
translate/translation |
Translating an object is the same as moving it. |
|
translator |
In Maya, a translator is a piece of software that can translate data from one format into a format that Maya can understand. A translator may, for example, take a Softimage file and convert it to a Maya file. A translators are also referred to as importers/exports since they can take information into and out of Maya. |
|
tree |
This is the metaphor used to describe hierarchies. |
|
truncate |
Truncating is when something is removed to make it compatible with something smaller. A decimal number can often be truncated to an integer by removing the decimal digits. |
|
tweak |
This refers to the general process of editing something. When you tweak an object you are simply changing it. Before a scene is final it will often undergo a lot of tweaking. |
|
tweak node |
A tweak node is used by Maya to store all the individual moves to some geometry's points. |
|
underworld |
This is a parametric space for defining the positions of objects. The parameteric space is often the surface of a NURBS surface. |
|
undo |
To remove the effect of a command it can be undone. Undoing a command restores Maya to the state it was before the command was executed. |
|
vector |
A vector defines a direction. They can also have a magnitude which defines their length. A vector that has a length of 1, is called a unit vector. |
|
world space |
This the space where all the objects in the scene are displayed. The world space is the result of applying all an object's parent transformations. |