Vertex
A vertex (or vertices for plural) is the basic unit of the most common method for producing 3D graphics. Most 3D games produce the images using groups of vertices, which are then transformed into triangles before rasterisation. A single vertex contains spatial co-ordinates (x, y, and z), a vector normal, a colour value (diffuse or specular), and texture co-ordinates.
Vertex Blending
This is a vertex processing technique whereby the joins between polygons are "smoothed" - this is done by apply additional transform matrices (part of the vertex processing mathematics) to each vertex. A typical number of matrices added is either 2 or 4, although it is dependent on the hardware support from the graphics adapter. Vertex blending or skinning is often used for character models in 3D games to ensure that they appear smooth and realistic, without having to use lots more vertices. Also called Vertex Skinning or Geometry Blending.
Vertex Buffer
This is a portion of the local memory used to store vertex data from the CPU.
Vertex Fog See Fog. This method of fogging is done by performing the necessary calculations on a per-vertex basis; the results of which are then interpolated across the rest of the polygon. Vertex fog calculations are part of the transform/lighting stage within Direct3D, and so can be done in hardware or via the CPU - vertex fog is typically quicker than pixel fog.
Vertex Shader
A small program or routine used to perform specific calculations to a vertex. 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). The latest version of DirectX, 9.0, offers additional revisions too: 2.0, extended 2.0 and 3.0, as well including the previous 1.1 too.
Vertex shader routines can require very complex calculations but since most of the operations are essentially vector calculations, a modern CPU can perform the tasks to a similar level as a modern graphics adapter. It is only where the shaders become more complex that custom-developed hardware performs considerably better than a CPU. Vertex shaders offer greater flexibility in terms of use and programming when compared to the "fixed-function" abilities of the standard texturing pipeline. Each successive vertex 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.
Vertex Skinning
Another term for vertex blending.
Vertex Stream
A vertex stream is a uniform array of vertex data, such as colour, position, depth, etc. A stream can contain one or more elements of the vertex data, so one stream could be used for position with another one for texture coordinates; this allows a developer to keep better control over how the data flows from the application to the graphics adapter.
Video Memory
This is either the term used to describe the memory chips on a graphics card or the system memory set aside for the integrated graphics adapter in a motherboard.
Viewport
A viewport is the 2D rectangle that a 3D scene is projected into and in turn viewed through. The size and shape of the viewport ultimately determines what vertices and pixels will be visible, and therefore which ones can be culled or clipped from the rendering pipeline.
Virtual Displacement Mapping
This is another term for offset or parallax mapping.
VIVO
An acronym for Video In, Video Out. This term is used to describe the additional inputs/outputs that many graphics cards have, allowing them to display frames onto televisions or digital flat panels screens, and record signals from video.
Voltage
The correct name for this term is potential difference as a voltage is the measure of the difference in electrical energy between two points. Any electrical charge that is free to move about will move from the higher energy to the lower one, taking a bit of that energy difference with it. This movement of charge is called a current and makes PCs work!
Volumetric Fog
Sometimes called Volume Fog. The normal application of fog to a 3D scene has it covering the entire field of view, even though it can vary from place to place - volumetric fog simulates the effect of localised fog. It is done by rendering a primitive that has a different level of opaqueness at each pixel in the shape; the calculations required to do this are numerous which is why the use of volumetric fog can have a significant impact of the rendering of the scene.
Volume Textures (3D Textures)
These are texture maps that are genuinely 3-dimensional; the easiest way to understand what they are like is to imagine several hundred 2D texture maps placed on top of each other. 3D textures can be used to simulate the effects of smoke and clouds, or model solid materials with distinct texture patterns such as marble or wood.
The major disadvantage of 3D textures is that even a small map will take up a huge amount of space in the texture buffer, e.g. a 32-bit colour 256 x 256 x 256 map will be 64MB in size! Only the very latest graphics adapters support the use of 3D textures and even then, they are only viable due to texture compression.
Voxel Volumetric or Volume Pixel. Voxels, and 3D games that use them, are an alternative to rendering a scene using polygons; the end result - coloured pixels on a screen - may still be the same but the methods are very different.
A pixel in a screen is only a 2-dimensional point (for 3D graphics, a vertex must contain an extra dimension, the z-value); a voxel is "naturally" 3-dimensional as it contains information about position and depth - each one is almost like a small cube. A voxel rendering engine does not map out triangles and then texture them, instead it maps "pixels" from a voxel map onto the scene. Each pixel within the map contains information such as position, depth, and colour.
Voxel rendering is not accelerated by any desktop graphics adapter and so the necessary calculations are performed by the CPU and all data stored in the system memory. Although such rendering is surprisingly simple, the level of detail cannot match that of a modern polygon/texture scene but that has not stopped games such as Outcast, Comanche, and Delta Force from being highly popular.
VRAM Video RAM. This is an old type of memory that was designed for use with graphics adapters. It is special because it allows two devices to read the contents of the memory at the same time; specifically it allows the RAMDAC to read the frame buffer while the graphics chip reads another portion of the memory, e.g. the z-buffer. VRAM is no longer to be found on new devices; it was rapidly superseded by SGRAM and then DDR-SDRAM.
Vsync Vertical Refresh Synchronisation. This is a setting that many graphics adapters have. When enabled, it forces the graphics chip to time the buffers swaps with the vertical refresh of the monitor. This helps to prevent "tearing" - a visual problem where one half of the screen is displaying one frame and the other half is displaying a previous frame.
The graphics chip writes each new frame into a portion of the memory called the frame buffer. When using double buffering, the graphics adapter writes a new frame into a non-visible "back" buffer while displaying the contents of the "front" buffer to the monitor; when it has finished the frame, the graphics chip has to swap the buffers around to begin a new frame. If the monitor is still displaying the last frame when they are swapped, then you get tearing.
However, this can be avoided by synchronising the swapping of the buffers with the vertical refresh of the monitor; this is when the beam of electrons reaches the very last pixel in the monitor screen and sweeps quickly back up to the very first one at the top. During this moment, nothing is displayed on the screen making it an ideal time to swap the buffers.
W
W-Buffer See z-buffer. The w-buffer is a portion of the local memory that is used to store depth information about each pixel in a frame. It is different to the z-buffer in that the values stored in the buffer are based upon the w-component of the pixel rather than the z-value.
In a z-buffer, pixels close to the front clipping plane (i.e. close to the camera) have z-depths detailed with more bits, and therefore more accuracy, than ones further away. This can result in distant objects displaying artifacts - a problem that is reduced by using a w-buffer instead. In this case, pixels are detailed with the same number of bits, no matter how close they are to the front clipping plane, so distant objects do not suffer the same issues when using a z-buffer.
WAV
An audio file format, developed by Microsoft and IBM. The conversion process from an analogue signal to a digital file can be done over several levels - 8-bit or 16-bit depth and 11, 22 or 44.1kHz sampling rate. The highest quality of 16-bit 44.1kHz would mean that a 3 minute song would take up 15MB of space, since the format has no native compression. Although the WAV format can match an audio CD in terms of quality, the large file size has reduced its popularity in favour of formats such as MP3.
Wavetable Synthesis
This is the alternative method to FM synthesis for generating sound by an audio adapter. It works by having a collection of actual samples of instruments and noises stored in memory; the audio adapter then takes the samples and processes the waveform in order to make a sound. The overall quality if far superior to FM synthesis and has rapidly become the standard method for audio adapters today.
WHQL Windows Hardware Quality Laboratories. A part of Microsoft that tests hardware and drivers for compatibility issues with the Windows operating system.
Write Combining
This is a process where little chunks of data are accumulated into a buffer before being written to some other piece of memory. The reason for doing this is that it is more efficient to perform just a single write action than lots of repeated ones. Write combining can significantly boost data transfer performance.
WRAM Window RAM. Despite its name, this type of memory has nothing to do with a certain operating system! It is an updated version of VRAM in that data can be read from the memory chips whilst new data is written into them - VRAM could only do either a read or a write. WRAM is no longer to be found on new devices; for graphics cards, it was rapidly superseded by SGRAM and then DDR-SDRAM.
X
x86
Originally this code referred to Intel's x86 series of CPUs (eg. 286, 386, 486) but now refers to the underlying architecture and instruction set that handles 32-bit integer operations in a modern desktop CPU.
x86-64
This is AMD's 64-bit update to x86 - this instruction set architecture contains additional features beyond just having 64-bit general registers.
x87
Originally this code referred to Intel's x87 series of co-processors (eg. 8087) but now refers to the underlying architecture and instruction set that handles floating point operations in a modern desktop CPU.
XRGB
A surface format that has the same file size as an ARGB surface but contains no alpha components in the pixels.
Z
Z-Buffer
The z-buffer is a portion of the local memory that is used to store depth information about each pixel in a frame. Depending on what type of process is used, each pixel in the next new frame is checked against the values in the z-buffer - if the new pixel is nearer than the one in the z-buffer, its value overwrites the old one and appears in the final frame. However, if the new pixel is further away, then the old value remains in the z-buffer and the pixel is not displayed.
The z-buffer is often referred to as the depth buffer for obvious reasons.