
6800 Architecture


VERTEX SHADER

PIXEL SHADER

This is a summary of the Rendering Pipeline
Local Coordinate System
The local coordinate system is how the models are inputted. The system usually is built around a origin , nominally (0,0,0). The axis of symmetry would be usually the z-axis. In model's the vertices, polygon normals, vertex normals are stored in this local system. And are all transformed together.
World Coordinate System
- Place object in the scene. All objects have their own coordinate system. Objects are transformed for local to global/world coords.
- Light sources are initialised. The Scene is lit in world space
- Specify surface attributes - texture, color, etc.
Camera Coordinate System
- Establish the view point, viewing direction, and the view volume.
- Transform global coords to camera/view coords
A Viewing System needs :
- Camera/View Point
- View Coordinate System defined with respect to View Point
- A View plane onto which the 2D image of the scene is projected
- View Frustum - defines field of view
Operations in View Space :
- Back-face Elimination Visibility = planeNormal.dotProduct(ViewVector) > 0 ;
- View Frustum
3D Screen Space
Operations :
- Frustum Cull
- Z-Buffer Algorithm - hidden surface removal - compare depth values of different faces
- Transform to 2D Space
Rendering or Algorithmic Processes
- Z-Buffer Algorithm - hidden surface removal
- Interpolative Shading
- Allows us to fetch individual polygons from the database in any order
- No limit in scene complexity
- but it is inefficient
Render Processes in 3D Screen Space
- Rasterization - finding the set of pixels onto which a polygon projects
- Hidden Surface removal
- Shading
- Clipping against the view volume
View Volume/Frustum Clipping
We want to discard as many polygons as possible at an early stage in the rendering pipeline. How ?
- Scene Management Techniques
- Bounding Volumes
A simple test is to calculate a bounding sphere. All we need is the radius of the sphere surrounding the object and its centre point.
Lighting
Reflected Light = Ambient + Specular. Specular light is the value calculated from the angle between the camera vector and the polygon normal. Ambient is usually a constant value.
Rasterizing
Where : (xs,ys) = start point (xe,ye) = end point The algorithm for rasterizing could be :
x = xs; m = (xe-xs)/ (ye- ys); for(y = ys to ye) do{ output(round(x),y); x=x+m; }
Z-Buffer
Operates in Screen Space. Pixels inside poly are shaded using an incremental shading scheme and the depth is evaluated by interpolation from z-values of the poly vertices after view transformation.