Occlusion (Audio)
An occluded sound source is totally blocked by some object (e.g. a wall), so that the listener does not hear it fully or correctly. Note that this is different to an obstructed source, which is only partially blocked. An audio API that offers occlusion effects will be able to produce more realistic sounds than one that does not.
Occlusion (Graphics)
This is where a visible object blocks (occludes) one or more other objects from the view of the camera; the occluded objects should not be rendered (unless the front one blocking the others is slightly transparent) as they are not visible.
To avoid wasting valuable resources rendering occluded primitives, some form of occlusion culling needs to be employed. Most 3D games do this before sending anything to the graphics adapter, which then handles the rest.
OEM Original Equipment Manufacturer. Manufacturers make 2 products: retail and OEM. Retails products are sold in shops and stores; the packaging is designed to sell the goods inside. OEM products are made for bulk distributors and PC manufacturers - therefore, the packaging is blank and the box contents are the bare minimum (retail goods often come with extras, such as games, to aid the sale).
There is often no physical difference between a retail and OEM product, although some manufacturers do make OEM devices to a "lesser" specification, e.g. lower clock speeds or slower memory.
Offset Mapping
This is a form of per-pixel bump mapping that adjusts (offsets) the texture coordinates for each pixel on the basis that the surface is supposed to be bumpy and not smooth. Standard bump mapping only adjusts the lighting value of the pixel and not the actual texel itself.
OGSS Ordered grid Supersampling. A type of supersampling anti-aliasing where the sub-samples are arranged in a uniform, geometric shape around the sampled pixel (e.g. a square pattern).
Ogg (Ogg Vorbis)
This is an audio file compression algorithm that permits high levels of compression and yet retains excellent sound quality. The algorithm specification is totally in the public domain, meaning that one is free to develop and use it (both commercially as well as personally) without having to pay any fees or royalty costs.
Ordering
This is a term used to describe which objects in a frame are rendered first. The standard method of rendering a frame involves marking out all the triangles in the frame, filling each one in at a time and then sending them to the frame buffer. There are two particular methods of ordering:
Back-to-front: This order has the graphics adapter draw the most distant objects in the scene first, and then successively render the rest in order of closeness to the camera. While this is the simplest method of the rendering, it is very inefficient as many of the objects may not be visible, and therefore do not need to be rendered.
Front-to-back: This method is more efficient than back-to-front as some other process is used to decide which pixels in the objects rendered will be visible. The drawback is the added complexity to the rendering order may be beyond some graphics adapters or cause a large hit in the overall performance.
Do note that some applications do not bother with any specific rendering order and send the primitives to be drawn "as they come".
Operating System
This is a large collection of small applications that, together, handle the running of a PC - they control what the hardware does and how the software interacts with it all. 20 years ago, an operating system (or OS for short) would be a few kilobytes in size; today they easily fill a CD-ROM.
For PCs, the most well-known OS is Microsoft's Windows that has gone through many changes and versions over the years. It is not the only OS for a PC and many other popular ones exist to, such as Linux, BeOS, or OS/2.
OpenGL
This is a graphics API originally used mainly for CAD. Developed and updated by Silicon Graphics and a large consortium of other prominent companies, OpenGL still remains very popular due its ease of use. The higher functions of modern graphics adapters are accessed via extensions to the core API, making it easy for software programmers to incorporate them.
Overclocking
This is the process of setting the operating clock speed of a device higher than the default or recommended level. The most popular device for overclocking is the FSB of the motherboard, as this will usually cause an increase in the clock speeds of the CPU, main RAM and other buses (such as the AGP bus). Overclocking the processing chip and onboard RAM of a graphics card is becoming very popular too.
Why overclock a device though? More speed means more performance, and for no extra money! However, you never get something for nothing - the extra speed can often produce additional heat or greater instability. This is why most manufacturers do not recommend changing the clock speeds, although some make "specialist" products designed for the overclocking enthusiast.
Overdraw
A typical 3D scene will have many primitives; some will be completely in view, some partially occluded and the rest hidden. The ones that are hidden are still actually in the scene, but rendering them would be a waste of time. This is the problem called overdraw - it is directly linked to depth complexity, but instead refers to the additional amount of pixels that is rendered in a frame above the number actually visible.
P
Page Flipping
This is a common method used to move the contents of the back buffer into the front one during a buffer swap. Instead of physically moving the data, the graphics adapter simply moves the address location for the first pixel in each buffer. This process is fast and efficient, although not all applications support the use.
Palettised Textures
These are texture maps that use a colour palette for the colour information of each pixel. In some ways it can be thought of as a compressed texture, as the palette only contains the colours used in the map.
Parallel
When used in computing, this term is often used in circumstances where several events can happen together, at the same time. A common example of this in graphics card, is the processing of pixels.
Parallax Mapping
This is another term for offset mapping. It is given the name due to the way that on a rough surface or object nearby parts will appear to have a different position relative to distant parts as the viewing position changes - the effect is known as a parallax.
Particle
In the world of 3D graphics, a particle is classed as a single point in the scene (although it can actually be composed of several pixels). Particles are used to display the effects of smoke, fire or an explosion. See Point Sprite.
Pass
A pass is the "start-to-finish" process of rendering a frame. It involves loading all the vertex data into the local memory; performing all the necessary transform, lighting, clipping, culling, and other vertex calculations; triangle setup, followed by rasterisation; texturing, blending and other test; writing the completed frame into the local memory.
Multipass rendering requires the use of several passes before the final frame is displayed; the cases were this is necessary would include a graphics adapter with insufficient texture stages to meet the requirements, or the use of stencil buffers to produce multiple, real-time shadows.
PCB Printed Circuit Board. The chips that you find on the motherboard, and all the plug-in cards attached to it, are built onto layers of board that have the wires (called traces) in-between the layers. A high quality PCB may consist of 4 or more layers, to reduce electrical interference between the traces.
PCI Peripheral Component Interface. A standardised connector inside your PC used for connecting add-on cards such as modems, network cards and 3D accelerators.
PCI Express
Not to be confused with PCI-X, this a type of serial interface. Originally called 3GIO, it offers high levels of bandwidth per channel. It's most notable first use will the replacement of the AGP bus.
PCI-X
This is a type of parallel interface, which uses fast differential strobes and DDR-style signalling to achieve high bandwidths. It's most notable first use will be the replacement of the PCI bus, as PCI-X 2.0 is backwards compatible with PCI devices.
Perspective Correction
"Perspective correction" also applies perspective projection inside polygons. To achieve full realism, both textures and gradients (colours) should be perspective-corrected. The alternative is to perform projection on the object vertices only, which causes textures to bend and wobble.
Phong Shading
Phong Shading is a lighting technique that produces good looking highlights and is not very dependent underlying polygons, like Gouraud Shading. It is not currently used in real time accelerated 3D graphics because to produce correct results, it requires computationally intensive per-pixel calculations. There is a "Fast Phong Shading" method that emulates the true method, but it too is not widely used.
Physics
In computer games, this refers to the code and algorithms that are used to model the "laws of physics". This can include gravity, friction, and other forces; it can also include lighting, fluid dynamics or sound. Realistic physics can make a game appear better but at a cost to performance.
Pipeline
This term has two meaning when used with 3D graphics: (1) the rendering process from start to finish, and (2) specific sections of a graphics processing chip.
(1) The rendering pipeline in DirectX begins with the loading of the vertex or primitive data into the graphics adapter, where it is then tessellated into more vertices (for more detail, etc). The next stage of the pipeline involves vertex operations called transform and lighting - which can be done via "fixed" routines or programmable shaders. Once done, the vertices are then clipped and culled, before being finally turned into triangles and then rasterised. The next stage involves texturing the primitive, which again can be done via "fixed" routines or programmable shaders. The final steps of the pipeline include various tests to determine whether the pixels are visible or not, the application of fog and a final bit of blending.
(2) The term "pipeline" is used for graphics adapters to describe the number of pixel processing units in the chip (and sometimes vertex units too). An adapter with more pixel pipelines will be able to texture more pixels per clock cycle than one with less.
Pixel
Abbreviation of "picture element". A pixel is the smallest part of any image; each frame is composed of hundreds or thousands of pixels in a grid-like array (the number of pixels is determined by the resolution). To show more detail in a frame, you have to use more pixels - the drawback is that it takes more time to process the frame due to the increased information load.
Pixellation
This is a visual effect seen when the texture map used to cover a surface has far less pixels than the object being mapped has - each texel has been "stretched" to cover several pixels in the object, giving a "blocky" appearance to the texture. Pixellation can also be caused by aliasing problems.
Pixel Fog (Table Fog) See Fog. This method of applying fog to a scene is done by calculating the fog effect, on a per pixel basis, against any array of data stored in a table (hence the alternate name). Pixel fog produces better results than vertex fog but the computational cost often outweighs any visual gains.
Pixel Shader
A small program or routine used to perform specific calculations to a pixel. The term is also incorrectly used to describe the part of the graphics processing chip that performs these calculations. Their use in Direct3D first appeared in DirectX 8, consisting of two versions: 1.0 and 1.1 (the former is now considered to be a legacy option as there is no hardware on the market that supports this version); they were expanded to cover additional versions - 1.2, 1.3, and 1.4 - with the 8.1 release of DirectX. The latest version of DirectX, 9.0, offers additional revisions too: 2.0, extended 2.0 and 3.0, as well including all the previous ones from 1.1 to 1.4 too.
Pixel shader, like vertex shader, routines can require complex calculations but since each pixel will require many more operations than a vertex, it is only custom-built chips can process them with any degree of speed - a modern CPU is too general in its abilities to perform the tasks at anywhere near the same level. Pixel shaders offer greater flexibility in terms of use and programming when compared to the "fixed-function" abilities of the standard texturing pipeline. Each successive pixel shader version offers more functions, controls and capabilities than the previous version; there are currently 3 hierarchical levels of shaders: 1.x, 2.x and 3.0.
Point Sampling See Texture Filtering. This is just another, and more common, form of the term nearest-point filtering.
Point Sprite
This is a feature of DirectX 8 - a point sprite is essentially a particle but they can also be treated as a textured quad. Graphics adapters that support the use of point sprites can produce millions of particles per frame very quickly
Polygon
A polygon is a more general definition of a 3D surface that can be composed of three or more vertices. Modern graphics adapters handle triangular (and occasionally, rectangular) polygons only.
Polyphony
This is a measure of the number of sounds (voices) that an audio adapter can play at the same time.
Power
A term that is often misused to describe many things but its classic definition is the amount of energy being transferred per unit of time. The units of power are Watts (W) or Joules/second. In electrical circuits, the amount of power being transferred (you normally see the word "used" here) by any device can be calculated by multiplying the voltage across the device by the current flowing through it.
Since heat is energy, modern processing chips often specify how much heat they emit by listing the amount of power dissipated.
Prefetch
This is a process that involves speculation - the technique moves instructions or data into a "ready" queue while the device in question is still working on the last instruction or piece of data. Prefetch helps to minimise wasted processing cycles and therefore helps to boost overall performance.
Primitive
This is the term used to describe a shape or object in the world of computer graphics. A primitive may simply be a single point or a line, or it could be a triangle or rectangle (quad). Most desktop graphics adapters produce primitives by interpolating vertices into the required shapes - they are then textured one at a time until the whole scene is complete.
Procedural Textures
These are texture maps whose contents are created using a mathematical routine (such as a sine wave plus random noise), rather than a pre-made image. Although their use is limited, they can produce excellent results for mimicking the look of materials such as marble or wood.
Projective texturing
A process whereby textures are applied to a surface on the basis that they are being projected onto the surface from a different point of view than the camera. An example of the use of projected textures would be a spotlight shining onto a moving curtain. The effect is not easy to perform correctly as the texture will affect all surfaces within its field of projection.
PSU Power Supply Unit. A device that contains transformers which convert the mains voltage supply into several lower voltage supplies. These lines are normally +3.3v, +5v, -5v, +12v and -12v. The various components in a PC draw their operating current from one or more of these lines.
Pure Hardware (Pure Device)
This is a D3D HAL mode; when operating in this mode, a graphics processor must abide by specific conditions and perform all vertex processing in hardware (instead of using the CPU).
Q
QDR Quad Data Rate. A general term used to describe systems where 4 transfers of data occur for every single clock cycle; an example of this would be AGP 4x transfers.
Quads (Quadrilaterals)
A quad is a primitive consisting of 4 vertices - their use is no longer very popular as the same shape can be achieved using two triangles sharing vertices. Therefore, there is no need for the graphics adapter to be good at processing both types of primitives, only triangles.
Quincunx Anti-aliasing
This is the marketing name used by NVIDIA to describe an anti-aliasing method used by some of their products. It is multisampling anti-aliasing but the sampling pattern covers additional pixels, without having to use a higher resolution frame.
R
Radial Fog See Fog. This type of fogging uses a more realistic formula to calculate how far away objects are from the camera and therefore, how much fog needs to be applied. The calculations are non-linear as the field-of-view is spherical, rather than fixed lines.
RAM Random Access Memory. A form of data storage that can read and written to very quickly; the data stored in most RAM is volatile - in other words, it will disappear once the power to the RAM devices has been switched off. However, certain types of flash RAM can retain data without power.
RAMDAC Random Access Memory Digital-To-Analogue Converter. The RAMDAC of a graphics adapter converts the digital information stored in the frame buffer into voltage signals for the monitor, in order for it to display the scene. The RAM part is typically a small amount of SRAM - it stores information about the gamma of the monitor and the colour map, which is used to turn the value in the frame buffer into an actual voltage level. There are 3 DACs, one for each colour of electron gun (red, green, and blue).
The RAMDAC can have a significant impact on the visual quality of a frame. The power of the device is measured in two ways: (1) the sampling rate in MHz and (2) the bit depth of each DAC. The greater sampling rate means the more times the graphics adapter can refresh the image at a given resolution; a higher resolution requires a higher sampling rate. A typical modern RAMDAC will have 8-bit DACs as each colour channel is, at best, only 8-bits too - however, 10-bit DACs are starting to appear as DirectX 9 supports higher colour depths for the frame buffer.
Range Fog
This is the shortened name for a fogging method called range-based vertex fog. This technique calculates the level of fog to be applied by using the distance between the camera and vertex, rather than the z-value of the vertex. This helps to reduce visual problems caused by just using the z-value and rotating the scene at the same time.
Raster
This word has several uses:
(1) This is a grid of data that contains spatial coordinates and so a raster image will be a grid of coordinates that declares what colour value each point will have. The term bitmap is often used instead, as each "bit" is mapped onto a point in the raster. Other examples of raster files are TIFFs or JPEGs - the texture maps used to make object look realistic in a 3D game are raster files.
(2) The raster is the part of the screen in a CRT or LCD monitor that actually displays the frame. The image is built up by scanning across the raster line by line; monitors will typically have controls that allow the user to control the shape of the raster as according to their tastes or needs.
Rasterisation
Sometimes spelt as rasterization; also called scanline conversion. This is the routine performed by the graphics adapter that turns 3-dimensional primitive data into a 2-dimensional array of pixels. Up until the data reaches this stage in the pipeline, the entire 3D scene is nothing more than a collection of vertices, packed with lots of data about colours, visibility, texture coordinates, etc.
Since the process obviously involves doing the vertex-to-pixel conversion on a per pixel basis, it is computationally intensive. Therefore, virtually all adapters have a dedicated hardware unit in the processing unit for this task. The units sets up a grid of points, equal to the frame resolution, and then determines what points are covered by the primitives (the process of turning the vertices into primitives, called triangle setup, is done before this). Using the vertex data, the rasterisation unit then declares a specific colour and other data to each point covered by the primitive. These points then go onwards to the pixel pipelines, to be textured and so on.
Ray Casting
This is a similar rendering technique to ray tracing but instead of mapping individual lights ray through the scene, ray casting works on groups of ray together. The amount of calculations needed is far less than with tracing but the overall quality is far less too. The legendary Doom from Id Software used ray casting to create its graphics.
Ray Tracing }
This method of rendering a scene involves "tracing" out imaginary lines from the camera, through one pixel in the frame, and then into the scene. As the projected lines (or rays) travel through the scene, they might strike an object - if so, the ray is then reflected from the surface towards the light source. If it reaches the source, then the previously reflected surface is given a certain pixel colour; if the ray does not reach the source, then there is obviously something in the way - so another reflection is done and the previously reflected surface is given a pixel colour to represent a "shadow" effect.
This process is then repeated at least once for every pixel within the frame; each projected ray may also be reflected several times within the scene - each reflection will be calculated according to the surface it hits, how the ray is absorbed, etc. It is quite an understatement to say that this entire process is very intensive! No desktop graphics adapter offers any hardware acceleration of ray tracing but many professional rendering packages can perform this, although perhaps not in real-time. Ray traced images are often highly realistic.
RDRAM (DRDRAM) Rambus DRAM (Direct Rambus DRAM). This is a type of DRAM is usually just called RDRAM but there are differences between RDRAM and DRDRAM!
The memory technology works on a principle of "send less, but send it quicker" - small amounts of bits are transferred per clock cycle but the data bus operates at a very high speed. RDRAM can do this by using a signalling technology similar to that in DDR-SDRAM; data can be transferred on the rise and fall of the clock signal.
RDRAM transferred up to 8-bits per transfer point but it was rapidly superseded by DRDRAM (the version that most people know as RDRAM) which can transfer up to 16-bits at a rate of 800MHz and higher. The technology has progressed to a 32-bit stage and better, although it is currently not used on any graphics card.
Reference rasteriser (refrast)
This is essentially a software graphics adapter! A refrast performs all vertex and pixel operations via the CPU; such work is typically very slow as a CPU is not specifically designed to perform the required operations quickly. Direct3D has a refrast that allows developers to write code and applications without having hardware support; as the name suggests it is a reference to which other implementations can be compared to but it is not a definitive description of how it must be rendered.
Reflection (Audio)
This process is caused by sound from a source reflecting off a surface before travelling towards a listener; this could have a very subtle effect or a very pronounced one. An audio API that supports this feature will be able to generate sound effects that are more realistic.
Reflection (Graphics)
For objects to look realistic in a 3D scene, their surfaces must reflect light correctly. This will depend on what type of surface the object has and what the lighting environment is like too - shiny or metallic objects will reflect an image of the surroundings and often with specular highlights; therefore environment mapping and/or detailed pixel operations need to be done to ensure the best possible results.
Reflection Mapping
Another term for environment mapping.
Refresh Rate
This is an abbreviation of vertical refresh rate. It a measure of the number of times the monitor produces a full frame on the screen per second - once it has completed a full scan of the raster, the electron beams "vertically refresh", i.e. they return to the first pixel in the grid and start the next frame.
Refresh rate is measured in Hertz or Hz for short - 1Hz is equal to one refresh per second. Below a certain rate, users will detect a "flickering" effect on the monitor screen; this is because while the vertical refresh takes place, the screen is blanked out. Most people notice this effect at a refresh rate between 60 to 80Hz.
Refresh rate is not the same as frame rate - a graphics adapter can be producing frames faster or slower than the monitor can display them, but the screen will always be drawn again at the refresh rate. See Vsync for exceptions to this.
Refresh
A process that restarts or wipes clean a system/event to begin another one.
Register
To perform the necessary operations, a processing chip needs to be able to store the data in a very accessible place. A register is small piece of memory within the chip that is used for this role - for example, within a graphics adapter there will be registers to store vertices, results from the operations on pixels, texel data and so on. Registers are typically between 32- and 128-bits in size.
Rendering
This is called the overall process of creating a 3D image with the chosen features e.g. fog, alpha blending, textures, lighting etc.
Render target
This term refers to the surface or section of local memory that a graphics adapter renders a frame into. The target can be anything from a standard back buffer to a floating point texture surface that is used for modifying the next frame.
Render-to-texture
A procedure where a frame is rendered into a target that is subsequently used as a texture map. Many graphical effects are possible with the use of render-to-texture - for example, the depth of field effect in 3DMark03.
Renormalisation
The process where a vector is normalised after a prior operation.
Resolution
This is a measure of how many pixels there are within the raster that forms the frame; since it is a simple 2-dimensional grid, the resolution is always given as an A x B figure (for example, 1024 x 768). The higher the resolution, the greater the amount of detail that can be put into the frame.
Reverb
This sound effect is really multiple echoes, overlapping each other so closely that it sounds like a continuous effect. Reverb is produced in audio adapters by delaying the sound fractionally and then mixing back into the original signal repeatedly. Any audio API that offers this feature will be able to produce sounds that are more realistic.
RGB
A pixel format that describes its three colour components - red, green and blue.
RGBA (ARGB)
A pixel format that has three colour components (red, green, blue) plus an additional component (alpha) that can be used to describe features such as transparency.
RGSS Rotated Grid Supersampling. This type of supersample anti-aliasing uses a sampling kernel (the grid or pattern of the sample points around the pixel being tested) that is rotated around one axis; this helps to increase the appearance of lines at certain angles. Rotated grids are often confused with skewed grids because they look similar.
RIMM
This is a trademark name for the DIMM-like memory module design used by Rambus for their RDRAM chips; they have 184 pins, the same as a DDR-SDRAM DIMM, but the signalling systems are different. RIMM is often thought to stand for Rambus Inline Memory Module by many sources, other than Rambus themselves.
ROM Read Only Memory. This type of memory has data/instructions permanently fixed into the chips - it cannot be rewritten but neither is the data lost when the power is cut.
RT-patches Rectangular and Triangular Patches. This type of high order surface is really called a parametric patch - the shape of the surface is defined by a group of control points, up to 21 for a triangular patch and 16 for a rectangular patch. Modifying the points changes the overall shape of the patch, which is then tessellated to produce the required level of detail.
RT-patches allow smooth, curved-looking surfaces to be created easily but the level of computation required can have a noticeable impact on the rendering performance. Additionally, the junctions between successive patches can often lead to odd looking models unless the construction is carefully done. See Patches.