Primitive processing is a simple way to describe what the majority of a 3D game engine does. In one sentence: it takes game-specific data and data structures and produces vertices for the vertex processor to process.
Typically, these vertices will describe triangles, although it's also possible that they will describe lines, points or point sprites (DX8). Currently, the game engine carries out the majority of the primitive processing, but in the future you can expect at least some primitive processing to be carried into the API domain.
With DirectX 8, some primitive processing has been introduced to the API, notably higher-order primitives, but so far there has been limited uptake from game developers. This could possibly be due to the fairly limited implementations available with DX8, but more likely it's because there is little hardware out there currently that accelerates this functionality. ATI's new series of cards promise to open up higher-order primitives to the games programmer under the name of "truform," but Nvidia seems unimpressed, so for now, the jury's out.
One thing is for certain, in the future you can be sure that this area of the API is going to increase in size and importance. Displacement maps, anybody?
Vertex Processing
Vertex processing can be further subdivided into a few major blocks of processing: notably, transformation, lighting, and to a limited extent, texture coordinate transformation.
Transformation involves taking position data as it's stored in a vertex structure and transforming it into a 'screenspace' position. 'Screenspace' refers to the 2D plane that represents the viewer's window onto the world. If you like, it's the front of the monitor in the real world, and the viewer's position in the game world. For traditional vertex processing, the transformation block does one of two things: it either passes the position data from the untransformed vertex to the transformed vertex without doing anything to it, or it passes the vertices through a world transform (matrix), followed by a view matrix, and finally a projection matrix.
Lighting has become an increasingly important part of the vertex processing step. As polygon density increases in game engines, it becomes more and more viable to carry out lighting as a vertex processing step. Traditionally, the most impressive lighting comes from static lighting calculated as a pre-process and stored as a texture (lightmaps). As polygon counts increase, dynamic lighting is starting to be carried out per-vertex. In the future, dynamic lighting will increasingly move into the pixel processing layer, although the vertex processor will still need to prepare data for the pixel processor.
Texture transformation involves passing the texture coordinates within the vertex formats to the pixel rasterization block. Most of the time, this block of processing does no more than pass through the texture coordinates. However, for animated textures, it's possible to apply a matrix transform to the texture coordinates, enabling texture animation to be carried out without modifying the vertices (which would require the vertices to be modified in the VB, and subsequently re-uploaded across the AGP bus, an expensive operation nowadays). The texture transformation block can also be used to calculate texture coordinates for spherical and cubic reflection mapping.
- GeForce 9400 GT Pixel and Vertex shader confusion [Graphic & Displays]
- Are there diferant GPU Architexutres like the AMD vs Intel? [Graphic & Displays]
- X-Bit Labs review of the ATI 2900XT is it better than 8800? [Graphic & Displays]
- X1900XTX vs Radeon HD 4830 [Graphic & Displays]
- Confusion with DX10 vid cards [Graphic & Displays]
Questions? Ask Tom's community!
Sponsored links
Related forums topics
- Just got The Phenom 9850Be today!!!
- Which theoretical processor would you rather have??
- Workstation video card, choices? - please help
- Let's really use my quadcore! Need your help !!
- About to buy a QX6700 anyone care to stop me??
- Life expectency of Overclocks.
- A few questiones...(about the 7600GT)
- Nvidia Clock Delta
- which is better for gaming?
- DirectX 10 capable Intel G965 chipset mainboard released?
- P5N32 SLI SE DELUXE VDROOP issue
- The Graphics State of the Union
- MOBO for C2D and Xfire GFX - Help required
- Is Ageia\'s PhysX Failing?
Best offers
|
Radeon HD 5770 Video Card (1GB,... | $179.99 Newegg.com More info |
|
Radeon HD 4890 Video Card (1GB,... | $189.99 Newegg.com More info |
|
GeForce GTX 260 Video Card (896MB,... | $209.99 Best Buy More info |
|
Radeon HD 4890 Cyclone OC Video Card... | $209.99 Directron More info |
|
GeForce 9800 GTX Video Card (512MB,... | $200.00 ServerSupply.com More info |
Partners
The Games selection
violent :
Interactive Buddy
Unwind on your interactive buddy: Do anything you want to him, it will earn you money, and you can buy other stuff to torture him with.
|
crazy :
Xiao Xiao 7
A great fight scene from the animation movies Xiao Xiao.
|





