An Artist's Real-Time 3D Glossary
last update: october 1999
This is a glossary written by and for real-time 3d (rt3d) artists. Although rt3d applications
vary widely, they are based on a relatively small number of general ideas. If you
understand these ideas, you can then adapt their principles to work with a great
variety of different rt3d applications.
|A||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|
|2.5D||"Two and a half-D" is an optimization trick for RT3D that fakes the viewer into thinking they are seeing true 3D graphics. A whole scene (or an object in a scene) is made of 2-dimensional graphics that are scaled and drawn in perspective to look like polygonal graphics, but there are no polygons involved. The groundbreaking game Doom is built entirely on this concept. Billboards are 2.5D, but voxels can be either 2.5D or 3D.|
|Additive Blending||A texture blending method that uses the Additive Color Model. The pixels of a base map and a light map are blended together to make a brighter texture. See additive color model, additive transparency, average blending, invert blending, subtractive blending.|
|Additive Color Model||In the additive color model, red, green, and blue (RGB) are the primary colors, and mixing them together creates white. This is the way light blends together-- shine a red, a green, and a blue spotlight in the same place, and it will make white light.
You add to get white. To get a lighter color use more of each color, or to get a darker color use less of each color. Additive is the color model used to display graphics on your computer screen, where all the colors are just combinations of the colors red, green and blue. Also called RGB space. See also subtractive color model, texture blending.
|Additive transparency||A way to calculate the color behind a transparent object, using the Additive Color Model. In general, wherever the object is more opaque, the brighter the background. If you use an alpha channel to change the transparency, the white areas get brighter, and the black areas have no effect on the background. This works well for flames, explosions, lens flares, etc., because it makes them look cleaner and hotter. If you use material opacity, it makes the whole background behind the object the same brightness level: the more opaque the object, the brighter the background, and the lower the opacity, the less bright the background. This works well for things like water or prisms or holograms. See also average transparency, subtractive transparency.|
|AI||Artificial Intelligence is a set of computer instructions or algorithms designed to simulate the actions of an intelligent being. In RT3D, this is one of a bunch of components that use memory, sometimes a significant chunk of it.|
|AL||Artificial Life. In a nutshell, AL is the antithesis of AI. While AI seeks to simulate real-world behaviour by following a complex series of rules, AL starts with very simple rules for a system and enables complex behaviour to emerge from them. Galapagos from Anark is the first commercial game to use AL, but rumours abound that several AL based RPGs are in the works...|
|Aliasing||When edges look jagged instead of smooth, and moiré patterns develop in fine parallel lines. The problem is most prevalent in diagonal lines. Aliasing happens when the engine tries to display an image on a portion of the screen where the resolution is too low to display its details correctly. This is solved with anti-aliasing, MIP mapping, or texture filtering.|
|Alpha Channel||An optional channel in the texture file that usually defines the transparency of the textures pixels, but can also be used for other things like a height map. The alpha can be anywhere from 1bit up to 8bits, depending on the amount of detail you need. Generally, the lower the bit depth you use, the more memory you save, but the lower the image quality of the transparency.|
|Ancestor||Any node in a hierarchy that is above the current node.|
|Animatic||An animated storyboard. This is used to refine timing, cameras, composition, etc., when a static storyboard just isn't enough. The animatic is kind of like a slide-show, with zooms and pans added to the storyboard panels to flesh out timing and composition. Where needed, low-resolution animated 3d scenes are used, intermixed with the remaining 2D storyboard panels. Sometimes called a "story reel." Also called a "Leica reel," (pronounced LIKE-uh) a term sometimes still used by gray-haired animators.|
|Anisotropic filtering||A texture filtering method, specifically for non-square filtering, usually of textures shown in radical perspective (such as a pavement texture as seen from a camera lying on the road). More generally, anisotropic improves clarity of images with severely unequal aspect ratios.|
|Anti-aliasing||Anti-aliasing removes the stair-stepping or jaggies which occur at the edges of polygons or between the texels on the polygons. It works by interpolating the pixels at the edges to make the difference between two color areas less dramatic. See also aliasing, MIP mapping, texture filtering.|
|ASCII||The American Standard Code for Information Interchange (pronounced "ASS-key") is a common file format for text, very simple and thus readable by virtually every text editing program out there.||The text on this page is written as an HTML file, which is saved in ASCII format.|
|Aspect ratio||A number that describes the shape of a rectangular texture, whether it's tall or wide. To get the aspect ratio, either divide the width by the height, or write it out as width:height. Aspect ratio helps you decide what kinds of changes need to be done to an image to get it to display correctly, like when you have to scale the image. Aspect ratio gets kind of complex when you have to deal with non-square pixels and other oddities-- not very important to the artist. See also anisotropic filtering.||The aspect ratio for a 64x32 bitmap is 2 (2:1), while a 640x480 image is 1.33 (4:3).|
|Average Blending||When using texture blending, average is when the colors of the base map and the light map are blended together evenly. This helps when you don't want the light map to brighten or darken the base map, like when you are placing a decal of a crack on a wall to make it looked cracked. See also additive blending, average transparency, invert blending, subtractive blending.|
|Average transparency||Colors are mixed together evenly to create a new color. Sometimes called filter transparency. See also additive transparency, average blending, subtractive transparency.|
|Azimuth||One of the two rotational axes used by the astronomers, and also by RT3D programmers. Azimuth is similar to yaw-- if you shake your head "no," you are rotating in azimuth. Most engines count from 0 to 360 degrees, starting out pointed straight forward, turning clockwise all the way around, and ending pointed straight forward again. Straight forward is both 0 and 360 degrees, and straight backwards is 180 degrees. Sometimes mathematicians measure it in radians, a unit of measure that comes from the magical number Pi. A radian equals Pi/180, but most people use degrees instead of radians.
Astronomers use only two axes (the other axis is declination), because they do not use roll. This is similar to the way most FPS games work. It is preferred in some RT3D engines because it keeps the viewer level no matter where he points. But this system has a drawback because it suffers from gimbal lock whenever the viewer points either straight up or straight down. The Quake games, for instance, avoid gimbal lock by not allowing the viewer to point all the way up or down.
|B||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|
|B-Spline||A way to make a curved line with very few points. It has control points with equal weights to adjust the shape of the curve. The control points rarely reside on the curve itself, because the curve is an average of the points. For instance, if you make four control points in the shape of a square, the resulting curve will be a circle inside of that square, because the curve is pulled inward as it tries to average out the weights of all the four points. Different from bezier splines, which use control points that always touch the curve, and handles that help you adjust the curve.|
|Backface culling||The process of removing the unseen polygons that face away from the viewer. This can dramatically speed up the rendering of a polygonal scene, since they take up valuable processing power. Also called Backface Removal or Back Culling. It is one of the methods of Hidden Surface Removal.|
|Base map||When using texture blending, this is the main texture used on the polygon. One or more additional textures are blended with the base map to create a new texture. See also dark map, light map.|
|Bezier Spline||Another way to make a curved line with very few points. named after the French mathematician Pierre Bézier (pronounced BEZ-ee-ay), these curves employ at least three points to define a curve. The two endpoints of the curve are called anchor points. The other points, which define the shape of the curve, are called handles, tangent points, or nodes. Attached to each handle are two control points. By moving the handles and the control points, you end up having a lot of control over the shape of the curve. Different from b-splines, which use control points that don't necessarily touch the curve.|
|Bilinear Filtering||A method of MIP mapping. Since the texels are almost always larger or smaller than the screen pixels, it tries to find a MIP-map with texels that are closest in size to the screen pixels. Then it interpolates the four texels that are the nearest to each screen pixel in order to render each new screen pixel. See also trilinear filtering.|
|Billboard||A texture that always maintains its alignment to the viewer, and often is scaled up and down to place it in the 3d scene. This is a common device to get more detail in objects without using a lot of polygons. However, they are flat and look strange when you move around them. They can be set up to rotate on only one axis or on combinations of the three rotational axes, for different alignment effects. For example, if you want to do a tree, rotate only on the verticle axis. If you want to have an object always stay plastered upright on the screen, have it use all three axes. Billboards are transformed in world space and aligned to the viewer, whereas sprites usually stay flat to the viewer, like interface graphics. A cool trick is to use a curved billboard, which helps give more depth to a single-axis billboard, because like a tree billboard, you can look down on it, so the extra depth helps get rid of that flat look. Also called a Flag, Kite, or Stamp.|
|Bit depth||Bitdepth is used to denote how many colors a game or application needs to function properly, which is the number of colors plus other channels like alpha. The more colors, the smoother the image. 1-bit is two colors-- black and white. 2-bit is four colors, 4-bit is sixteen, 8-bit is 256 colors, etc.
The number of colors at any bit depth = 2bitdepth. For instance, 8-bit = 28 = 2x2x2x2x2x2x2x2 = 256 colors.
If game uses alpha or heightmaps, then they are additional channels that can be added to the bitdepth number. 16-bit is 65536 colors without any additional channels, but if you want to add an alpha channel, then 16 would be divided into RGB and alpha, which can be done a number of ways. For example, if you use 4 bits each for Red, Green, and Blue, then that leaves 4 bits for the alpha, so you have 16 colors for alpha. Or else 5 bits for each RGB means you have 1-bit for alpha, which is only 2 colors, but gives you more RGB colors to work with. It's a trade-off.
|Bitmap||Another name for a texture.|
|Bounding box||A simplified approximation of the volume of a model, used most commonly for collision detection. Although it is commonly a box, it can be any shape. If not a box, it is more properly called a bounding volume.|
|BPC||Bits Per Channel is another term for bitdepth.|
|BPP||Bits Per Pixel is almost the same as a bitdepth. But BPP is only the RGB component. It tells us how many colors are used in the RGB part of the image. For example, 16BPP = 216 = 2x2x2x2x2x2x2x2x2x2x2x2x2x2x2x2 = 65536 colors. The term bitdepth is more commonly used to denote what a game or application needs to function properly, which is the number of colors plus other channels like alpha. For example, if you say there is a 32bit bitdepth, this doesn't mean 232 colors. Instead, this means a 24bit RGB space + an 8bit alpha. To make things clearer, instead of the term bitdepth people are starting to use the term BPC, or Bits Per Channel.|
|BSP||Binary Space Partition. A BSP tree subdivides 3D space with 2D planes to help speed up sorting. It is sometimes used for additional purposes like collision detection.|
|C||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|
|Camera||In RT3D, this is another word for the viewer's view into the scene.|
|Cartesian Coordinates||The most common way of describing and delineating 3D space. Space is delineated by three vectors at right angles to each other, labeled by longtime convention as X, Y, and Z, and starting at a center point called the Origin. This coordinate system is based on the ideas of Rene Descartes, aka Cartesius of the "Cognito ergo sum" fame (I think, therefore I am). It is a very efficient way to describe space, so most RT3D engines use this system.|
|Child||Any node in a hierarchy that is attached to another node.|
|Chromakey||A 1-bit transparency. In the film & video worlds, chromakey means to "key" to a particular color and make it transparent, like with bluescreening. In RT3D, it means to make a particular RGB color in a texture 100% transparent, and all other colors 100% opaque. It's a cheap way to get transparency, since you don't need an alpha channel. However it means the transparency has a rough pixelized edge. A good color to designate for chromakey is one that you won't be using elsewhere in your textures, like magenta (1,0,1). Whatever the color you decide, all textures in the engine will use that same color for chromakey. See also sprites.|
|Clipping plane||A clipping plane throws away polygons on the other side of it. This can dramatically speed up the rendering of a polygonal scene, since unneeded polygons can take up valuable processing power. See also backface culling, frustum, hidden surface removal.|
|Collision detection||A constant drain on a 3D game engine, the systematic check to see if any intersections are occuring between significant polygons, such as my player's sword and your player's neck. See also bounding box.|
|Color depth||The number of colors in an image, same as bit depth.|
|Compile||Programmers have to convert source code, written in a high-level language such as C, into object code (typically Assembly language), so that a microprocessor can run the program. This is similar to the process artists go thru in order to create game art-- I create textures in Photoshop, saving them in PSD format, then I convert them down to the appropriate bitmap format for use in the game. However, it can take a long time for programmers to compile their code, like overnight or a couple days, depending on the complexity.|
|Concave||A certain kind of shape, opposite of convex. If any two points can be connectd by a line that goes outside the shape, the shape is concave. The letter C is a concave shape. An easy way to remember concave is thinking of it being like a hill with a cave in it. If you put a straight line between a gold nugget in the floor and a diamond in the ceiling, the line is not inside the hill anymore (it is in the air not in the earth). The word concave means "with a cavity."|
|Convex||A certain kind of shape, without indentations, opposite of concave. If any two points can be connected by a line that goes outside the shape, the shape is not convex. The letter O is a convex shape. An uncut watermelon is a convex shape-- anytime you draw a straight line between two seeds, you're still inside the watermelon.|
|Coplanar||When two or more things are on the same 2D plane. If two pieces of paper are sitting side by side flat on your desk, they're coplanar.|
|Coordinates (positional)||Coords for short, these are the numbers that tell the engine where to position things, whether in 3D or in 2D (like a polygon or an overlay). If positioning something in 3D, you need three coords, commonly called X, Y, and Z, and usually written as (X,Y,Z). If positioning something in 2D, you only use the X and the Y, and write it as (X,Y). For 2D, the X is horizontal, the Y is vertical, and the numbers usually start at (0,0) in the upper-left corner. But for 3D, Y is not always vertical-- see Cartesian coordinates.|
|Coordinates (texture)||These are the numbers that tell the engine where to position textures on mesh. The engine uses three texture coordinates, commonly called U, V, and W. U is the width of the texture, V is the height, and W is used for depth if you are using a 3D procedural texture.
The coordinates are measured in a scale of 0.0 to 1.0, with 0.0 and 1.0 at opposite sides of the texture. Numbers higher than 1.0 will make the texture tile, and negative numbers will mirror the texture.
With most 3D modeling software, these numbers are usually hidden from the artist, replaced by helpful visual representations of how the textures are projected. Planes, cylinders and spheres help the artist align the textures in a visual way, but it helps to know that engines see only the UVW numbers that these shapes create for the polygons.
Also called mapping coordinates.
|D||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|
|Dark map||The texture used to blend with the base map to create a new, darker texture. See also light map, subtractive blending.|
|Declination||One of the two rotational axes used by the astronomers, and also by RT3D programmers. Declination is similar to pitch-- if you nod your head "yes," you are rotating in declination. Most engines count from +90 to -90 degrees, starting out pointed straight up, turning downwards and ending pointed straight down. Straight forward is 0 degrees. Sometimes mathematicians measure it in radians, a unit of measure that comes from the magical number Pi. A radian equals Pi/180, but most people use degrees instead of radians.
Astronomers use only two axes (the other axis is azimuth), because they do not use roll. This is similar to the way most FPS games work. It is preferred in some RT3D engines because it keeps the viewer level no matter where it points. But this system has a drawback because it suffers from gimbal lock whenever the viewer points either straight up or straight down.
|Draw order||The back-to-front order of polygons drawing on top of one another, with the last to draw being the one that appears to be in front of the others. Usually, alpha channeled polygons should draw later, and closer polygons should draw later. Some programs allow you to place polygons under a node so the engine will draw them in a certain order, left to right, and assure that alpha polys draw last.|
|Draw rate||Same as frames per second.|
|Dynamic lighting||Lighting, but updated every frame, as you'd want for moving lights and for characters that move amongst various light sources. Perhaps the lighting itself animates color and intensity.|
|E||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|
|Engine||The heart of the RT3D program, the engine is what converts all the game assets into a display on your computer screen. It is a software program written by one or more programmers, and has several components that need to work in harmony to display the game at a nice frame rate. [what are the components?]|
|Environment mapping||A method of texture mapping that simulates the look of reflections in a shiny surface, like chrome or glass. The texture is usually painted to look like an all-encompassing world. In this example, the sky texture on the far right has been used on the donut. This can also be used to fake the look of specular highlights on an object, by painting only the light sources into the environment texture.
Also called reflection mapping.
|Expressions||A formula used to create procedural animation, often using mathematical elements like sine and cosine. Expressions can automate and greatly speed up repetitive animation tasks. Also sometimes called scripting.|
|F||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|
|face||Another name for a polygon. This term can be used specifically for a single triangle or more generally for a multi-triangle polygon.|
|Fans||One of the ways that triangles can be created to reuse vertex transforms, and thus save memory and also render time. Once you have drawn one triangle, the next triangle only needs to load the coordinate of one additional vertex in order to draw itself, because it re-uses the vertex transforms that were already performed on its neighbor triangle. But your engine must specifically support fans for it to work. See also strips.|
|Fill rate||The number of textured and shaded pixels that an engine can render over a given time period, usually measured in millions of pixels per second (MPPS). [How does this affect RT3D artists? Need to elaborate]|
|Fog||Objects in the RT3D scene become more and more the same color as they recede into the distance. This is similar to real fog, except that RT3D fog is a perfect gradient, whereas real fog usually has some wispy uneveness to it. Heavy fogging in RT3D is used to disguise the far clipping plane, as shown at right in the game Turok. In fact, you can see the polygons being clipped, just behind the monster's head. This fog isn't done well-- it should completely hide the clipping plane. Besides, heavy-fogging is generally looked down upon, because it shortens the distance you can see enemies.
In some of the newer engines, volume fog and ground fog are supported, where the fog is localized to a specific area, which is closer to the behavior of real fog.
|Forward kinematics||FK for short. A method of manipulating objects in a hierarchy where the animator positions objects in the hierarchy and the program calculates the positions and orientations of the objects below it in the hierarchy. See also inverse kinematics.|
|FOV||Field Of View is a traditional photography term, meaning the area that the viewer can see in the RT3D scene. The FOV is usually defined by its width in degrees. A typical FOV in RT3D games is around 45 degrees. A really wide FOV like 90 degrees allows the viewer a panoramic view, but can seriously lower the frame rate because so many polygons are visible. It also produces distortions in the scene, where objects in the center of the view appear to be farther away than they are, and objects at the periphery appear to be really close. The trick in RT3D is to lower the FOV as much as possible without impairing too much of the view. See also frustum.|
|FPS1||Frames Per Second. This means how many animation frames the computer displays each second. Also called frame-rate. The NTSC television standard used in the United States displays its frames at around 30 fps, whereas the PAL standard used in Europe displays at 25 fps, and a motion picture displays at 24 fps. See also rendering.||30fps vs. 60fps|
|FPS2||First Person Shooter.||Doom, Quake, Half-Life|
|Frame buffer||The frame buffer is what a video board uses to store the images it renders, while it is rendering them. When it is done rendering, it sends the completed frame to your monitor and starts building the next frame. The amount of frame buffer memory a video board has directly impacts which resolutions it can support-- the more memory you've got the higher resolutions your board will support and at higher bit depths.
The frame buffer usually stores 2 frames: one is being calculated by the 3D accelerator while the other one is being sent to the monitor. This is called double buffering and delivers smooth animation. For 640x480 resolution with 16 bits color we require 640x480x16x2 = 9830400 bits of memory or about 1.2 Mb of Frame Buffer memory.
|Frame rate||Same as frames per second.|
|Frustum||A term from traditional photography, it is the shape that the viewer's FOV creates when projected into the scene. This pyramidal shape defines the limits of what the viewer can see, so it is used to calculate clipping, collisions, fog, etc.
Imagine your eyeball stuck to the top of a clear pyramid, looking straight down into it. The top-most point that is scratching against your eyeball is the near end of the frustum. You cannot see the side faces of the pyramid, because they are perpendicular to your eyeball, but you can see everything within the pyramid. In photography, this pyramid is infinitely tall, because in theory you can see to infinity.
In RT3D, the frustum is not infinitely long. It has near and far clipping planes to help reduce polygon counts. The near clipping plane cuts off the very top of the pyramid, while the far clipping plane defines the base of the pyramid.
|Fubar||Fucked Up Beyond All Repair, or more politely Fowled Up Beyond All Recognition.||More jargon|
|Full-bright||When a color or a texture is drawn at its full intensity, unaffected by real-time lighting. Some RT3D engines do not have lighting or dynamic lighting, so all textures are drawn full-bright. Sometimes also called fully-emissive, or self-illuminated.|
|G||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|
|Geometry||This term is commonly used to define all polygonal objects in a game. Also called mesh.|
|Gimbal lock||The rotation of an object seems to "stick," when it is rotated all the way down or all the way up. This can also happen with the camera itself. It happens because the mathematics in rotational systems like Euler angles cannot make a consistent rotation solution when they point straight up or straight down. The Quake games avoid gimbal lock by not allowing the viewer to look straight up or straight down.
To solve gimbal lock, either avoid looking directly down or directly up, or else use a different rotational system.
|Gouraud Shading||A shading method, named after the French mathematician Henri Gouraud (pronounced on-REE grrr-ROW). Each triangle's color is created by interpolating the vertex colors that are located at each corner of the triangle. In other words, the interior of each triangle is a smooth gradient between the colors of the three vertices. The vertex colors are usually created dynamically from the lighting in the scene, although the artist can instead assign specific colors to each vertex.
Gouraud shading has a smooth look, but can look strange when using polygons with solid colors on them.
FS 3D Guide
|H||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|
|Height map||A grayscale texture used as a displacement map to define the topography of the polygons. Usually the brighter pixels make higher elevations, and the darker pixels make lower elevations, and 50% gray pixels make no change. Often the alpha channel of an object's texture is used for the height map. Voxel landscapes often use height maps.|
|Hidden Surface Removal||? See also backface culling, clipping plane.|
|Hierarchy||A list of things that are linked together in a certain order. A family tree is used as an analogy to help describe the parts of the hierarchy. However, the hierarchy tree traditionally hangs upside down, to make it easier to read and to use. At the top of the tree is the root, and all things are attached to it. Every object in the hierarchy is called a node. The connections between the nodes are called links. A node linked to another is called a child, and the node the child is linked to is called a parent. A parent can have multiple children, but in this tree each child can have only one parent. The nodes that have no children are called leaves, because they're at the ends of the tree.
Each node can trace its lineage up through the tree, back though parents to the root. If you choose any parent, then you can call its collection of children a branch of the tree.
|I||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|
|Interpolation||It is the process of determining from two or more values what the "in-between" values should be. Interpolation is used with animation and with textures, particularly texture filtering.|
|Inverse kinematics||IK for short. A method of manipulating hierarchies where the animator positions objects at the end of the hierarchy and the program calculates the positions and orientations of all other objects in the hierarchy. With properly setup IK, you can quickly animate complex motions. For instance, the bones in the arm of a character are linked in a hierarchy, then limits are set for the rotations of the bones, then the animator can move the hand, and the IK will figure out what the rest of the arm needs to do.
IK is used in RT3D to allow characters to interact with the environment in a more realistic manner, like when a player directs a character to pick an object off the floor. See also forward kinematics.
|Invert blending||When using texture blending, invert is when the light map inverts the RGB color of the base map. See also additive blending, average blending, subtractive blending.|
|J||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|
|K||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|
|Kelly Kleider||A guy that deserves recognition. Thanks for all your help, man.|
|L||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|
|Light map||The texture used to blend with the base map to create a new, brighter texture. See also additive blending, dark map.|
|LOD||Level Of Detail. This is used primarily to reduce polygon count in a scene, especially when you have multiple characters like in a sports game. A lower polygon count model of the character is used for when the character is far away, and when the character gets closer, it switches to a different model with a higher polygon count. This example is only two LODs, but you can have multiple LODs to help you reduce the "popping" effect that makes it obvious the character is switching from a low-count to a high-count model. You want to have the least polygons on screen at a time, so there are other factors besides distance... speed it is moving, viewer's anticipated focus, importance of character.|
|M||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|
|Map||Short for bitmap. Another name for a texture.|
|Mapping||Can mean many things: the process of creating textures, or the process of applying the textures to polygons using texture coordinates, or the process of assigning keyboard keys to software functions (like game controls). There are probably other RT3D meanings as well.|
|Material||A set of parameters that determine the color, shininess, smoothness, etc. of a surface. Usually a material is used to assign a texture to a face.|
|Memory||One of the most fundamental RT3D concepts, memory is the amount of quickly-retrievable space available for assets currently being used by the game. This includes textures, geometry, geometry animation, interface artwork, AI, etc. RT3D applications use a number of different types of memory, but RT3D artists are mostly concerned with RAM. The biggest question for the artist is how much RAM is available for textures. (Need to cross-reference RAM, Video mem, Texture Mem, etc.).|
|Mesh||Another word for geometry. See also polygon.|
|MIP mapping||A form of texture filtering. Prove me wrong, but I think the Latin phrase it comes from is "Multi In Parvum" which means roughly "many parts." When viewing a distant texture-mapped object in RT3D, many texels make up each pixel seen on the screen. The most common texture filtering technique is called point sampling, which often causes the textures to appear aliased or distorted.
Mip-mapping solves that problem by creating ahead of time several different detail levels for each texture, called MIP-maps. It then accesses the appropriate level according to the object's distance from the camera. For example, for a texture image which is 16x16 texels, an engine that uses MIP mapping will create three more MIP-maps at lower resolutions, 8x8, 4x4, 2x2.
There are two main methods of MIP mapping: bilinear filtering and trilinear filtering.
If your engine supports MIP mapping, you should be careful with your mapping coordinates and tiling.
|Morphing||An animated 2D or 3D effect that makes one texture or geometry smoothly transform into another. Often used to do 3D facial animation. Comes from the word metamorphosis.|
|Multi-Texture||Same as texture blending.|
|N||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|
|N-gon||Another word for a polygon. The letter N stands for any whole number.|
|Nadir||The point directly below you in space. The opposite of zenith.|
|Node||Each single object in a hierarchy is called a node. Without nodes there can be no hierarchy-- there's nothing to link together. Also called a bead.|
|NURBS||Short for Non-Uniform Rational B-Spline, a mathematical representation of a 3-dimensional object. Most CAD/CAM applications support NURBS, which can be used to represent analytic shapes, such as cones, as well as free-form shapes, such as car bodies. NURBS are not used much for RT3D because they create a large number of polygons, but it is an available modeling method in some artist 3D packages.|
|O||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|
|Opacity||Opacity (opaque) is the opposite of transparency (transparent). Opacity can mean that something is partially transparent-- because you can change an object's opacity using a setting in its material. But the word opaque usually means totally non-transparent.|
|P||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|
|Parent||Any node in a hierarchy that has another node attached to it.|
|Phong shading||A method of shading that applies the Phong lighting model not to every polygon, but to every pixel of every polygon. Even SGI's Reality Engine can't do Phong shading, so unless you're ready to spend a few million dollars on your next game machine (and write all the games yourself), don't expect to see Phong shading anytime soon.|
|Phong lighting||A method of lighting a 3D world, the Phong lighting model applies three different types of lighting to the vertex of every polygon. Phong lighting works by performing operations based on the normal of the polygon, the "normal" being an imaginary line drawn orthogonal (straight up from) the face of the polygon.
The first of the three lighting types is ambient light - light which is just there because god (in this case the programmer) said it was. It affects every polygon equally.
Diffuse lighting is the second type. It assumes that there is no reflection from the objects it is lighting (clay is an example of a nearly perfect diffuse surface), but it does take into consideration the angle that the light hits the surface. If it hits it fully, it will be 100% illuminated, if the object is turned slightly, it will be less illuminated, etc.
The third aspect is called specular highlighting, which takes into account the angle between the light-source and the "eye" of the viewer, so that if the light bounces off a particular spot on the object straight into the "camera" it will be illuminated 100%, and less so if it misses the camera.
The Phong lighting model is fairly realistic for games, but fails to account for the fact that in real life, reflections off of steel or other metals change color depending on what angle they're viewed from, while specular highlighting always gives a reflection of the same color. Phong lighting works only on the vertices of a polygon (using Gouraud shading to color the rest of the polygon), so if a highlight happens to fall in the middle of the polygon, it will be missed, which requires programmers to "tessellate" or break-up large polygons into many small ones to be sure of "catching" highlights at vertices. However, Phong lighting is very fast and doesn't require much processor power.
See also Phong shading.
FS 3D Guide
|Pitch||If you nod your head "yes," this is pitch in action. One of the three rotational axes commonly used to describe the rotation of an object. The term comes from aviation. Most RT3D engines count from +90 to -90 degrees, starting out pointed straight up, turning downwards and ending pointed straight down. Straight forward is 0 degrees. See also roll, yaw.|
|Pixel||Short for picture element. There are two common meanings: the pixels that textures are made of, and the pixels that are rendered onto your computer screen by the engine.
You tell each pixel where to go and what color to be by giving it two sets of values. For position, it needs coordinates (coords), called X and Y, usually written as (X,Y). The X coord is horizontal, the Y coord is vertical, and the numbers usually start at (0,0) in the upper-left corner. For the pixel's color it needs the three RGB color values, written as (R,G,B). These go from 0 (no color) to 1 (full-on color). For instance, green is (0,1,0). Most paint programs use 0 to 255, but 0 to 1 is easier for RT3D programmers to use. See also texel.
|Polygon||A series of vertices that define a plane in 3D space. Most RT3D engines use polygons to make the surfaces of their objects. A polygon can be made up of 1 or more triangles, like a quad is made of two triangles, a pentagon is made of three triangles, etc. Some engines support multiple polygon types, but triangles are the most common. Some people use the term polygon to specify a quad, others use it when talking about triangles. Polygons are also called polys, or sometimes n-gons. See also faces, fans, quads, strips.|
|Powers of 2||The numbers 2, 4, 8, 16, 32, 64, 128, 256, 512, etc. Usually this is used to describe the texture sizes that an engine requires in order to make good use of video memory. An example texture size would be 32x64. Textures that are not in powers of 2, like 33x24, would probably cause the engine to run slower or maybe crash.|
|Q||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|
|Quad||A square polygon. Some RT3D engines use quads instead of triangular polygons because it saves NEED DEFINITION, because a square polygon stored as a quad stores only four vertices, whereas a square created with two triangles means transforming six vertices instead of only four. The artist should keep the vertices of the quad coplanar, or rendering weirdness can happen, because the quad is divided into two triangles at render time. The internal edge between the two tris is determined arbitrarily, so it could look like a ridge or a valley.|
|R||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|
|RAM||Random Access Memory is the place to store game assets that are used most often, because RAM can be read really quick. See also memory.|
|Ray casting||Projecting an imaginary line from each screen pixel into the RT3D scene, bouncing from the surface it meets up to the light source... [help me out here].|
|Ray tracing||A way of rendering a 3D image which follows the path of every ray of light. Non-interactive, it works best for rendering images which have many reflective surfaces, like steel balls.|
|Real-time||When events happen at a rate consistent with events in the outside world. Specifically for RT3D artists, if the engine renders a scene at a slow rate, the illusion of movement can be lost. To retain an interactive, immersive experience, the engine must react to your input and present you with new updated images immediately. If you are getting smooth feedback, it is real-time. Frames per second is the measurement of how fast the frames are being rendered.
The engine must perform many complex operations, and the effect of that effort is the amount of time needed to draw each frame. By necessity, we must take shortcuts in the image quality to speed up the rendering. However, no single image remains visible for very long. If you carefully choose speedup techniques so that the errors are small, then they will not be noticed during the moment when the picture is visible.
|Rendering||The transformation of 3D data by the engine into 2D frames for display on your computer screen (or TV). For RT3D artists, this specifically refers to real-time rendering, where the individual frames must be drawn as fast as possible.|
|RGB Space||Red, Green, and Blue are the primary colors used to display RT3D on your computer screen. All the colors you see are combinations of those three. RGB space is the place where any transformations are made to colors, whether reducing the bit depth, texture blending, rendering, etc.
In RT3D, we use numerical RGB values to describe the colors in each texture. These numbers can be a drag to use, but they give you more control of the medium, especially when you want to tweak something like texture blending.
In texture programs like Photoshop, the RGB values for texture colors are in an 8bit scale which is usually 0 to 255. But RT3D programmers prefer a simpler scale, representing all colors with the values 0 to 1. For instance, red is (1,0,0), white is (1,1,1), black is (0,0,0), brown is (.4,.21,0) etc. The decimal places can go out as far as the programmer decides it needs to, but usually just two decimal places (.00) is precise enough. The less decimals, the smaller the file sizes will be, which conserves precious memory. This was the root of the Y2K problem, but we don't need to get into that... heh heh.
See also additive color model.
|Roll||If you tilt your head to read the spine of a book, this is roll in action. One of the three rotational axes commonly used to describe the rotation of an object. The term comes from aviation. Most RT3D engines count from -180 to 180 degrees, starting out rolled upside-down all the way to the left, turning clockwise and ending up rolled upside-down all the way to the right. Straight forward with no roll is 0 degrees. See also pitch, yaw.|
|RT3D||Real-Time 3-Dimensional graphics. Artwork that is rendered in real-time on a computer, usually with interactive input from the viewer.|
|S||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|
|Shading||The process of assigning values to the surfaces of objects, which control the way the surface interacts with light in the scene to create the object's color, specularity (highlights), reflective qualities, transparency, and refraction. Shading mimics the material that an object is supposed to be made of-- wood, plastic, metal, etc. The art of shading is understanding how the range of parameters will interact to create realistic or else imaginative effects. Also sometimes called surfacing. See also Gouraud shading, Phong shading.||
FS 3D Guide
|Sorting||Keeps track of which onscreen elements can be viewed and which are hidden behind other objects. See z-buffering.|
|Spline||A curved line, defined by mathematical functions. See b-spline, bezier spline.|
|Sprite||A texture that stays flat to the screen. Also called an overlay. See also billboard.|
|Storyboard||A visualization of the animation that breaks it down into a sequence of sketches that illustrate the key movements.|
|Strips||One of the ways that triangles can be created to reuse vertex transforms, and thus save memory and also render time. Once you have drawn one triangle, the next triangle only needs to load the coordinate of one additional vertex in order to draw itself, because it re-uses the vertex transforms that were already performed on its neighbor triangle. But your engine must specifically support strips for it to work. Sometimes also called tri-strips. See also fans.|
|Subtractive Blending||When using texture blending, subtractive is when the colors of the dark map are subtracted from the colors of the base map to make a new darker texture. See also additive blending, average blending, invert blending.|
|Subtractive Color Model||In the subtractive color model, magenta, yellow, cyan, and black are the primary colors. They are also called CMYK, with K standing for black because the letter B is already taken by RGB. Mixing cyan, yellow, and magenta together creates a dark muddy brown, so this is why black has been added as the fourth primary color, to get clean blacks.
You subtract to get white. To get a lighter color use less of each color, or to get a darker color use more of each color. Subtractive is the color model used for working with pigments, as in painting and color printing.
In RT3D, the subtractive color model governs how colors are blended together, like with transparency and texture blending. See also additive color model.
|Subtractive transparency||? See also additive transparency, average transparency.|
|T||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|
|Texel||Each pixels of a texture during the time the texture is being processed by the RT3D engine. After the engine performs calculations to project the texture onto polygons, the texture pixels are transformed into texels. Then the engine renders the scene, and at that point it transforms those texels into screen pixels.
The distiction between texels and pixels is important in defining how the engine transforms textures. First they're texture pixels, then they're texels, then they're finally screen pixels.
|Texture||An image file, either scanned or painted, made up of a bunch of pixels. Common file formats are .BMP, .GIF, .TGA, etc. Also called bitmap, map, texture map.|
|Texture Blending||When two or more textures are combined to make a new texture. This is usually accomplished with just two textures-- a base map which acts as the main texture, and another texture which acts to vary the color of the base map. If using additive blending, the second map is usually called a light map. If using subtractive blending, the second map is instead called a dark map. See also average blending, invert blending. Texture blending is also lumped together under the more general term texture filtering. Also called multi-texturing.
Texture blending requires a unique set of mapping coordinates for each texture. Often the artist is asked to provide these multiple coodinates on their models, so you need to make sure your 3d modeling program can handle multiple mapping coordinates.
|Texture Compression||The technique used by new and upcoming 3d accelerator cards to use larger textures in the same amount of texture memory and graphics bus bandwidth. With texture compression, you can often use textures as big as 2048x2048 in your real-time scenes. Two examples of texture compression methods are S3TC and VQTC.||Here`s an article about texturing, including different methods of texture compression.|
|Texture Filtering||This term is used whenever a texture is altered by the engine: to eliminate jagged edges and shimmering pixels whenever texels are larger or smaller than screen pixels (see aliasing), or to perform texture blending to blend two textures together. See also anisotropic filtering, MIP mapping.|
|Tiling||The method of repeating a texture more than once across a polygon. A tiled texture looks best if its edges seamlessly match up with each other, top to bottom and side to side. Tiling is a common method of using the smallest texture possible to cover a large area, like a small texture of a couple bricks tiling across a large polygon, creating a big brick wall.
Need to cover in more detail: repeat edge pixels, decal, texture filtering with non-tiling textures.
|transforms||What the engine does to objects and vertices in order to place them in the RT3D scene. transforms are position, rotation, and scale.|
|triangle||A triangular polygon. Often shortened to tri or tris.|
|trilinear Filtering||A method of MIP mapping. Since the texels are almost always larger or smaller than the screen pixels, it finds two MIP-maps whose texels are closest in size to the screen pixels: one with larger texels, and the other with smaller texels. For each of the two MIP-maps, it then interpolates the four texels that are the nearest to each screen pixel. In the final step it averages between the two MIP results to render the final screen pixel.
trilinear mip-mapping requires more than twice the computational cost of bilinear filtering, but the textures are filtered very nicely, with a clean result.
|tri-strips||Another word for triangle strips.|
|U||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|
|UV Coordinates||See Coordinates (texture).|
|V||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|
|Vertex||A point in 3D space that doesn't really do anything unless it is connected to a polygon or a line. For more than one vertex, you call 'em vertices.|
|Viewer1||You, the user of the RT3D application, looking at the 3D scene through your computer screen. The viewer looks into the RT3D world from a vantage point, which acts something like a camera, to frame your view. Most of the engine's calculations are tailored to make the world look great from that particular view. See also frustum.|
|Viewer2||A version of the RT3D engine that is used to preview artwork while it is being created.||The Cosmo Player is a VRML viewer, which lets you examine and interact with a VRML world.|
Shorthand for volume pixel. Voxels have traditionally been used to create 3D renderings of complex volumes, like meterological cloud formations or scanned human tissues.
In these visualizations, the voxels are used similar to the way grains of sand are used to make a sand castle-- the volume is dense with thousands of tiny voxels, and each is in the shape of a little cube or tetrahedron. Each voxel is assigned an opacity percentage, and often a color, which makes it easier to examine the underlying structure of the volume. This kind of voxel is usually called a "true" 3D voxel. These voxels require a lot of memory and computational time, so they are usually pre-rendered, or else display at a relatively slow frame rate.
In games, voxels have been optimized to run in real-time, most often by using billboards instead of cubes, and by only displaying the voxels on the surfaces of objects. This optimization is called a 2.5D voxel. Typically these voxels have no transparency, and are made large enough to always overlap one another, which usually gives a slightly rough look to the surface. NovaLogic's game Comanche Maximum Overkill was the first to use this technique, creating landscapes that were remarkably detailed at the time. In their latest incarnation of the franchise, they've been able to greatly increase the number of voxels, thereby reducing the jaggedness of the landscape surface.
Using voxels, whether 2.5D or 3D, an object can be displayed with great amount of detail, independent of the complexity of the object, dependent instead on the number of voxels used to represent it.
|W||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|
|Wavelet||A mathematical formula often used for image and video compression. Bink uses wavelets, along with other compression techniques, as an update to its popular Smacker video codec.|
|X||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|
|Y||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|
|Yaw||If you shake your head "no," this is yaw in action. One of the three rotational axes commonly used to describe the rotation of an object. The term comes from aviation. Most RT3D engines count from 0 to 360 degrees, starting out pointed straight forward, turning clockwise and ending pointed straight forwards again. Straight forward is both 0 and 360 degrees. See also pitch, roll.|
|Z||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|
|Z-buffering||An algorithm used in 3-D graphics to determine which objects, or parts of objects, are visible and which are hidden behind other objects. With Z-buffering, the graphics processor stores the Z-axis value of each pixel in a special area of memory called the Z-buffer. Different objects can have the same x- and y-coordinate values, but with different z-coordinate values. The object with the lowest z-coordinate value is in front of the other objects, and therefore that's the one that's displayed.
An alternate algorithm for hiding objects behind other objects is called Z-sorting. The Z-sorting algorithm simply displays all objects serially, starting with those objects furthest back (with the largest Z-axis values). The Z-sorting algorithm does not require a Z-buffer, but it is slow and does not render intersecting objects correctly.
|Zenith||The point directly above you in space. The opposite of nadir.|
|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|