Glossary
From C4 Engine Wiki
A
- alpha channel
- The alpha channel usually contains transparency information. The C4 Engine also allows the alpha channel to be used to represent gloss, a special form of opacity, ambient occlusion, or parallax data. See also material, ambient occlusion, and Importing a Texture.
- ambient occlusion
- The ambient occlusion factor is applied during the ambient rendering pass to modulate the amount of reflected ambient light. See also material and Importing a Texture.
B
- backface culling
- Once the hardware has assembled three vertices into a triangle to render, it looks at which direction they are wound on the screen, either clockwise or counterclockwise. Under most circumstances, triangles whose vertices are ordered in the clockwise direction are facing away from the camera and can be assumed to be on the back side of a mesh. The hardware can reject these at a rate of one triangle per GPU cycle. See also depth bounds test, hierarchical Z, scissor test, and z-cull.
- bump map
- Another name for a normal map.
C
- Collada
- Collada is an open standard for the interchange of interactive 3D data, and is the officially supported format used to import 3D digital assets into the C4 Engine. The C4 Engine supports versions 1.3 and 1.4 of the Collada format. The name Collada is an acronym for COLLAborative Design Activity, and its file format extension is .DAE (Digital Asset Exchange). Additional information about Collada can be found at: www.collada.org. See also Collada Plugins.
- command console
- The command console can be accessed at any time by pressing the tilde/grave key. It has a command line and an output buffer. There is a small command history that can be accessed with the up and down arrow keys. See also Using the Command Console.
- console
- See command console.
- controller
- Each node in a scene graph may have a controller attached to it. A controller is represented by the
Controllerclass and is used to manage anything about its target node that changes over time. For example, a controller could be used to move a geometry node in some way, or it could be used to modify the brightness of a light source. Several types of controllers are built into the core engine, and an application can define its own types of controllers by subclassing from theControllerclass. See also node and Programming Introduction to the C4 Engine.
- cube light
- This type of light projects an ordinary CUBE texture map into the environment. The texture can contain grayscale shadows or any kind of full-color projected image. It does not contain any depth information for shadow mapping, so it's only intended to be used for projecting shadows from geometry immediately surrounding a light source. The texture for a cube light must be generated in a separate world where the shadow-projecting geometry is rendered black, and the background is white. In the demo level, the hanging torches and the caged utility lights use cube lights. See also depth light, infinite light, point light, spot light, and Lights and Shadows.
- cube map
- A cube map is a texture, typically used for environment mapping, that is six times as tall as it is wide. Each sixth of the image represents one face of the cube. See also environment map and material.
D
- depth bounds test
- There are two types of uses for the depth bounds test (DBT). First, it can be used like a third dimension on the scissor test (so that you have a 3D scissor box). C4 uses this to reject pixels that are too far beyond a light or too much closer to the camera than the light to actually be lit (because they're out of range). The second use is for limiting the number of pixels rendered in shadow volumes. This is where it's a little hard to understand. It's possible to reject shadow volume pixels for which the visible portions of the scene are too far away to intersect the shadow. There are some comparison images in Eric Lengyel's 2005 GDC presentation, Advanced Stencil Shadow and Penumbral Wedge Rendering (2005), that show shadow volumes rendered with and without DBT. See also backface culling, hierarchical Z, scissor test, and z-cull.
- depth light
- This type of light uses an orthographically-projected 2D shadow map containing depth information to apply shadows to the environment. When rendering, it uses shadow mapping hardware to perform per-pixel depth comparisons, causing correct shadows to be applied to any dynamic objects moving through the light's volume of influence. The texture for the depth light is the only one that is generated in the actual scene containing the light. See also cube light, infinite light, point light, spot light, and Lights and Shadows.
- diffuse color
- The color of diffuse light reflected by a surface. This is multiplied by the color read from the texture map. See also material and texture map.
- direct portal
- A direct portal's polygonal boundary tells the engine through what region of space objects in one zone can be seen from another. This is the most common type of portal used to connect one zone to another. See also occlusion portal and remote portal.
E
- early Z reject
- See z-cull.
- early Z test
- See z-cull.
- emission color
- The color of light that the surface appears to emit by itself. The emission color is added to the ambient light that the surface reflects if this attribute is used in a material. Emission color is multiplied by the color read from the Emission map. See also emission map and material.
- emission map
- A texture that controls the emission color. This is added to the ambient light reflected by a surface. See also emission color and material.
- environment color
- The color by which the environment map is multiplied. An environment map is applied in the ambient rendering pass if this attribute is used in a material. If a reflection color attribute is present in the material, then the environment color is ignored. See also material.
- environment map
- A texture containing an image of the environment. This must be a cube map, and when specified in a material, it overrides any environment map specified in a zone. The environment map only has any affect when the environment color attribute is also present in a material. See also material, environment color, and cube map.
F
- fog space
- A node that causes fog to be rendered in a scene. A fog space is actually a half-space because all space is divided in half by a single boundary plane, and fog is rendered on one side of the plane. See Fog Spaces.
- font
- Fonts are used by the C4 Engine to display text. See Generating a Font.
G
- gizmo
- A control that appears for one of the selected nodes in the World Editor tool. See Gizmo in World Editor Overview.
- gloss map
- A texture that controls the specular reflection color. This modulates the specular reflection, the environment map, and/or the ambient reflection term. If this texture is present in a material, then any gloss map existing in the alpha channel of another texture is ignored. See also material.
H
- hierarchical Z
- A graphics card that supports hierarchical Z stores a z-buffer (or depth buffer) in VRAM that has a depth value for every pixel on the screen. The screen is also divided up into blocks around the size of 8x8 or 16x16 pixels, and the minimum and maximum depths within those blocks are stored in much faster on-chip memory. When the GPU is drawing a triangle, it first chops it up into pieces matching the big blocks and figures out the minimum depths that the triangle will have within each of those blocks. If the minimum depth for the triangle is bigger than the maximum depth stored on-chip for a block, then the whole block can be skipped. This is called early z-test. If the whole block can't be skipped, then the pixel shader is run for each pixel inside the block (and inside the triangle), and a per-pixel z-test is done afterwards. This has huge performance implications because it lets the GPU avoid 64 or 256 executions of the pixel shader. See also backface culling, depth bounds test, scissor test, and z-cull.
- horizon map
- A texture that contains data about how shadows are cast by the bumps encoded in a normal map. The engine uses a pair of textures to encode horizon mapping information. See also material and normal map.
I
- infinite light
- An infinite light illuminates a scene with a constant brightness from a single direction. When it is placed in a world, only the direction in which it is pointing matters, not its position. See also cube light, depth light, point light, spot light, and Lights and Shadows.
- infinite zone
- See zone.
M
- material
- Materials are used to specify the color, texture, and other attributes of a surface in the C4 Engine. See also diffuse color, texture map, and Creating a New Material.
- microfacet color
- The normal-incidence color of a microfacet reflection. See also material.
- microfacet shading
- A specular rendering technique based on a physical model developed by Cook and Torrance. It's much more physically accurate than the conventional (N · H)m specular highlights for things like metals. The term “microfacet” refers to the assumption by the model that surfaces are made up of many microscopic planar facets that reflect like perfect mirrors.
- model
- A model represents an indivisible object of some kind that is organized into a tree of nodes. A model can be things like a character, a weapon, or a projectile. See also Creating a Model.
N
- node
- All of the items in a world are organized into a scene graph having a tree structure, and each node of this tree represents a single item. C4 defines a class called
Nodethat serves as the base class for a large hierarchy of different classes used to represent a variety of different types of objects in the scene graph. See also world, world editor, and Programming Introduction to the C4 Engine.
- normal map
- A texture that encodes normal vectors so that a flat surface can be made to look bumpy. The alpha channel of this texture may contain extra information that affects different aspects of the material. If the alpha channel contains a gloss map, then it modulates the specular reflection and the environment map. If the alpha channel contains parallax data, then the parallax mapping calculation is applied in all rendering passes. See also material, gloss map, environment map, and horizon map.
O
- occlusion portal
- Also called an anti-portal, an occlusion portal is a convex polygon that explicitly blocks objects behind it from being visible. Occlusion portals are often inserted into large objects to help the engine more efficiently cull smaller objects that are blocked from view.
- opacity map
- A texture that controls the surface opacity when there's a refraction term. This is used to linearly interpolate between the diffuse reflection term and the refraction term in the ambient pass. If this texture is present, then any opacity map existing in the alpha channel of another texture is ignored. See also material.
P
- panel
- The short name for an in-game interface panel. See also Using the Panel Editor.
- point light
- A point light emits light from a single point in space and influences a spherical region of a given radius. The intensity of the light gradually falls off to zero at the outer boundary of the light's sphere. See also cube light, depth light, infinite light, spot light, and Lights and Shadows.
- portal
- The primary means through which the C4 Engine performs large-scale visibility determination is an advanced portal system. A world is arranged as a hierarchy of zones, and these zones are connected by portals. See also direct portal, occlusion portal, remote portal, zone, Creating a Simple Portal, and Working with Portals.
- property
- In the C4 Engine, a property refers to any special piece of information that can be attached to a scene graph node. See also Defining a Custom Property.
R
- reference marker
- The reference marker node type lets you reference an external world resource from within a scene graph. In the world editor, the reference marker is represented by a world icon with crosshairs running through it. The position where the crosshairs meet determines where the origin of the external world in placed. The referenced world resource is set in the Get Info box for the reference marker.
- When a world is loaded, reference markers cause external worlds to be brought in as non-persistent nodes so that they are not saved as part of the referencing world. If the same world is referenced by multiple reference markers, then they share the same object storage; that is, they are instanced. Reference inclusion is not recursive—referenced worlds within referenced worlds will not be expanded. This avoids problems with cyclic references, etc.
- There is a toggle button in the World Editor that shows or hides referenced worlds. When it's off, you just see the reference markers. When it's on, you see the reference markers and the instances of the worlds that they reference. Moving or rotating the reference marker also affects the included world (because the included world is attached to the marker as a subtree). You cannot select any part of a referenced world because it doesn't really belong to the world that references it. Changes to referenced worlds must be made in the original file. If you change a referenced world while another world referencing it is also open, you can toggle the referenced world button off and back on again to see the updated version.
- remote portal
- A special type of portal that allows one part of a world to be seen remotely from another part of a world. Remote portals are used for spatial effects such as teleportation portals, but are also used for mirrors.
S
- S3TC
- The S3 Texture Compression option is a lossy form of encoding that reduces the size of a texture, usually beyond what is possible using run-length encoding (RLE) alone. Some textures may exhibit visual artifacts (blockiness) as a result of using S3TC. See also texture map.
- scene graph
- All of the items in a world are organized into a scene graph having a tree structure, and each node of this tree represents a single item. See also node and world.
- scissor test
- The scissor test lets you define a rectangle on the screen to which drawing is limited. Anything drawn outside the rectangle is rejected very quickly before any pixel shaders are run. C4 uses the scissor test to limit the amount of rendering done for point light sources and shadows. See also backface culling, depth bounds test, hierarchical Z, and z-cull.
- script
- The C4 Engine has the capability to execute scripted actions in response to some kind of trigger. A script in C4 does not require the use of any programming language, but is instead organized into a graph of actions called methods that can be edited with a tool that displays a graphical representation of the script. See also Graphical Scripting Language.
- shadow space
- A box that gives the engine information about the maximum possible extents of shadows cast by particular light sources. This can be used for a performance optimization when the volume of space in which shadows can be cast is significantly smaller than the full range of a light source. See Shadow Spaces.
- skybox
- A skybox is a set of six textures that surround a scene with an image considered to be infinitely far away. See Using Skyboxes.
- specular color
- The color of the specular reflection. This is multiplied by the color read from the Gloss map. See also material specular exponent, and gloss map.
- specular exponent
- Controls the sharpness of the specular reflection. Higher values are sharper. See also material and specular color.
- spot light
- This type of light works just like the cube light, except is uses a 2D texture instead of a CUBE texture. In addition to the flashlight and the hanging lights in the warehouse, the spinning fan in the demo level uses a spot light. See also cube light, depth light, infinite light, point light, and Lights and Shadows.
T
- target zone
- In the World Editor tool, whenever a new node is placed in the world, it gets added to the current target zone. The target zone is set by selecting a zone and choosing Set Target from the Node menu (or using the shortcut Ctrl-T). The current target zone has a thicker boundary and pulsates. At any time, nodes can be moved into the current target zone by selecting them and choosing Move to Target Zone from the Node pulldown menu (or using the shortcut Ctrl-Shift-Z). See also zone and World Editor Overview.
- texture map
- A texture that controls the diffuse reflection color. The alpha channel of a texture may contain extra information that affects different aspects of the material. If the alpha channel contains a gloss map, then it modulates the specular reflection and the environment map. If the alpha channel contains an ambient occlusion factor, then it modulates the amount of ambient light reflected. See also material, diffuse color, gloss map, environment map and Importing a Texture.
- transition zone
- A transition zone is a special type of zone intended to contain objects that must extend into more than one ordinary zone. It is often the case that the geometry making up a doorway between two zones needs to overlap both of the zones that is connects, but placing the geometry in one of the two zones could cause rendering artifacts if the portal leading from the zone containing the camera to the other isn't visible (or isn't enabled). The solution is to place a small transition zone between the two ordinary zones and put all of the doorway geometry in it. See also zone and Using Transition Zones.
U
- UV mapping
- A texture map is applied to a geoemetry object using UV coordinates that represent positions within the texture. UV coordinates are usually paired with each XYZ vertex of a geometry object, to create a mapping between positions on the geometry and corresponding positions within a texture. See also texture map and material.
V
- vertex
- (plural vertices) A vertex usually connects two or more edges of a polygon, to form an intersection or corner of a surface. In a three-dimensional geometry space, vertices are usually represented using X, Y, and Z coordinates. In a two-dimensional texture space, vertices are usually represented using U and V coordinates. See also UV mapping.
- voxel
- A voxel is the 3D analog of a pixel and is derived from the words “volume element” and the letter “x” from “pixel”. Whereas a pixel represents a two-dimensional square, a voxel represents a three-dimensional cube. A voxel is typically one individual piece of a large volumetric data set.
W
- world
- A single scene that can be rendered in the C4 Engine is called a world, and is represented by the
Worldclass. See also Programming Introduction to the C4 Engine.
- World Editor
- The World Editor tool module is used to create every scene that the C4 Engine displays (however, scene data may be imported from other sources). See also World Editor Overview.
X
- XAudio2
- XAudio2 is the new unified audio API that Microsoft has released for both Windows and Xbox 360. It replaces the DirectSound API on Windows and the original XAudio API on Xbox 360, and it allows audio to be programmed under a single API for both platforms. XAudio2 was finalized in the June 2008 release of DirectX.
- XInput
- XInput is the unified input device API that Microsoft has released for both Windows and Xbox 360. Under Windows, it enables full support for the Xbox 360 Controller, but it does not replace DirectInput for other kinds of input devices. As of Build 149, the C4 Engine Input Manager natively supports XInput devices in addition to wide support for DirectInput devices.
Z
- z-cull
- Z-cull is what Nvidia calls its hierarchical z-buffering algorithm. The GPU stores a coarse representation of the z-buffer on chip in 8x8 blocks. When a triangle is being drawn, the GPU checks to see if any part of each 8x8 block is closer than the maximum depth known for that block. If all the pixels in the block are further away than the maximum depth, then the whole block can just be skipped. This is what's known as the "early z test" or "early z reject", and it happens before the fragment program is run. If even one pixel in the block has a depth less than the value stored in the on-chip coarse z-buffer, then the fragment program is run for all the pixels in the block, and a per-pixel z-test is performed with the actual z-buffer in VRAM afterward. The on-chip z-cull hardware is reset when you clear the z-buffer.
- zone
- Every world is divided into one or more zones, which can be arranged hierarchically. The root node of every world is an infinite zone. As its name suggests, this zone extends to infinity in every direction. Other nodes can be placed directly in the infinite zone, but it is often the case that smaller subzones are created to hold the geometric layout of a world. Zones are connected by portals. See also transition zone and portal.
