Large-Scale Polygon Rendering
Solutions Decimation Visibility Culling Parallel Rendering Others
Surface Decimation Use a smaller number of triangles to represent the same surface -> preserve the topology Removing vertices Contracting edges Etc.
Visibility Culling Do not display polygons that are not visible to the eyes 188,000 triangles 1 million triangles
Parallel Rendering
3D Rendering Pipeline Transformation Clipping (modeling, viewing, projection) Lighting Screen Projection Scan conversion Z-buffer Shading Geometry Processing Rasterization
Parallel Rendering GRGR display sequential GRGR GRGR GRGR GRGR GRGR GRGR display fully parallel
Parallel Rendering (2) Geometry processing: parallelized by assigning each processor a subset of primitives (polygons) Rasterization: parallelized by assigning each processor a portion of pixel calculations
Parallel Rendering (3) What is rendering anyway? Calculate the effect of each primitive on each pixel During transformation, a primitive can go anywhere on the screen Rendering can be seen as sorting primitives to the screen
Parallel Rendering (4) Rendering as a sorting process
Sorting primitives Where to sort? Sorting can pretty much happy anywhere Where/When to sort will affect the structure of the parallel rendering system GRGR GRGR GRGR GRGR GRGR GRGR display
Sort-First Parallel Rendering
Distribute the primitives early in the rendering pipeline P1 P2 P3P4 1.Subdivide the screen 2.“Pre-transform” the primitives 3.Distribute the primitives 4.Each processor render its own primitives 5.No communication needed afterwards P1: P2: P3: P4:
Sort-Middle Parallel Rendering
Distribute the primitives in the middle of pipeline P1: P2: P3: P4: P1 P2 P3P4 1. Arbitrary assignment 2. Geometry processing 3. Sorting P1: P2: P3: P4: Rasterization
Sort-Last Parallel Rendering
P1 P2 P3P4 Distribute the primitives in the end of pipeline P1: P2: P3: P4: GRGR GRGR GRGR GRGR 1. Arbitrary assignment 2. Geometry processing 3. Rasterization
Sort-Last Parallel Rendering P1 P2 P3 P4 P1 P2 P3P4 P1 P2 P3 P4 Sort images with z Compositing/z-buffer