Large-Scale Polygon Rendering. Solutions Decimation Visibility Culling Parallel Rendering Others

Preview:

Citation preview

Large-Scale Polygon Rendering

Solutions Decimation Visibility Culling Parallel Rendering Others

Surface DecimationUse 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 triangles1 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

G

R

display

sequential

G

R

G

R

G

R

G

R

G

R

G

R

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 onthe 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 muchhappy anywhere

Where/When to sort willaffect the structure of theparallel rendering system

G

R

G

R

G

R

G

R

G

R

G

R

display

Sort-First Parallel Rendering

Sort-First Parallel Rendering

Distribute the primitives early in the rendering pipeline

P1 P2

P3 P4

1. Subdivide the screen2. “Pre-transform” the primitives3. Distribute the primitives4. Each processor render its own primitives5. No communication needed afterwards

P1: P2: P3: P4:

Sort-Middle Parallel Rendering

Sort-Middle Parallel Rendering

Distribute the primitives in the middle of pipeline

P1: P2: P3: P4:

P1 P2

P3 P4

1. Arbitrary assignment

2. Geometry processing

3. Sorting

P1: P2: P3: P4:

Rasterization

Sort-Last Parallel Rendering

Sort-Last Parallel Rendering

P1 P2

P3 P4

Distribute the primitives in the end of pipeline

P1: P2: P3: P4:

G

R

G

R

G

R

G

R

1. Arbitrary assignment

2. Geometry processing

3. Rasterization

Sort-Last Parallel Rendering

P1 P2 P3 P4

P1 P2

P3 P4

P1 P2 P3 P4

Sort images with z

Compositing/z-buffer