Graphics, Video, and Display (D2:F0)
9.1.3
Vertex Processing
Modern graphics processors perform two main procedures to generate 3-D graphics.
First, vertex geometry information is transformed and lit to create a 2-D representation
in the screen space. Those transformed and lit vertices are then processed to create
display lists in memory. The pixel processor then rasterizes these display lists on a
regional basis to create the final image.
The Intel GMA 500 supports DMA data accesses from SDRAM. DMA accesses are
controlled by a main scheduler and data sequencer engine. This engine coordinates the
data and instruction flow for the vertex processing, pixel processing, and general
purpose operations.
Transform and lighting operations are performed by the vertex processing pipeline. A
3-D object is usually expressed in terms of triangles, each of which is made up of three
vertices defined by X–Y–Z coordinate space. The transform and lighting process is
performed by processing data through the unified shader core. The results of this
process are sent to the pixel processing function. The steps to transform and light a
triangle or vertex are explained below.
9.1.3.1
Vertex Transform Stages
• Local space: Relative to the model itself (e.g., using the model centre at reference
point). Prior to being placed into a scene with other objects.
• World space: Transform LOCAL to WORLD: This is needed to bring all objects in
the scene together into a common coordinate system.
• Camera space: Transform WORLD to CAMERA (also called EYE): This is required
to transform the world in order to align it with camera view. In OpenGL the local to
world and world to camera transformation matrix is combined into one, called the
ModelView matrix.
• Clip space: Transform CAMERA to CLIP: The projection matrix defines the viewing
frustum onto which the scene will be projected. Projection can be orthographic, or
perspective. Clip is used because clipping occurs in clip space.
• Perspective space: Transform CLIP to PERSPECTIVE: The perspective divide is
basically what enables 3-D objects to be projected onto a 2-D space. A divide is
necessary to represent distant objects as smaller on the screen. Coordinates in
perspective space are called normalized device coordinates ([-1,1] in each axis).
• Screen space: Transform PERSPECTIVE to SCREEN: This is where 2-D screen
coordinates are finally computed, by scaling and biasing the normalized device
coordinates according to the required render resolution.
9.1.3.2
Lighting Stages
Lighting is used to generate modifications to the base color and texture of vertices;
examples of different types of lighting are:
• Ambient lighting is constant in all directions and the same color to all pixels of an
object. Ambient lighting calculations are fast, but objects appear flat and
unrealistic.
• Diffuse lighting takes into account the light direction relative to the normal vector
of the object’s surface. Calculating diffuse lighting effects takes more time because
the light changes for each object vertex, but objects appear shaded with more
three-dimensional depth.
• Specular lighting identifies bright reflected highlights that occur when light hits an
object surface and reflects back toward the camera. It is more intense than diffuse
light and falls off more rapidly across the object surface. Although it takes longer to
calculate specular lighting than diffuse lighting, it adds significant detail to the
surface of some objects.
• Emissive lighting is light that is emitted by an object, such as a light bulb.
96
Datasheet