Scan -Line Algorithm Lecture

15
1 1 Lecture 8 Scan-Line Algorithm Scan-Line sort objects by y, for all y { sort objects by x, for all x { compare z } } One of the earliest algorithms for image generation. 1967-1974 This algorithm creates and image by processing the scene data on a line-by-line basis from the top to the bottom of the frame buffer. Generally fast because: 1. Visibility decisions can be made in a 2-D subset of the 3-D scene 2. Coherency properties can be used to speed processing 2 Lecture 8 Scan-Line Algorithm • Use a Window that is one scan line high (constant Y value) • Polygons intersections can be considered as a collection of line segments • Visibility testing is then done on these line segments • This reduces the 3-D problem to a 2-D problem Typical Steps Sort polygons with one y bucket per scan line For all active polygons on this scan line find and sort the x end points On a pixel by pixel basis sort out which line segment is closest Find the color for each pixel Move to the next scan line Update x end points for all polygons still in y bucket Add new x end points for new polygons. Polygon List Y-sorted List X-sorted List For each scan line Z – Sort Depth List Visible element determination

Transcript of Scan -Line Algorithm Lecture

Page 1: Scan -Line Algorithm Lecture

1

1

Lecture8Scan-Line Algorithm

Scan-Linesort objects by y, for all y {

sort objects by x, for all x {compare z

}}

One of the earliest algorithms for image generation.1967-1974

This algorithm creates and image by processing the scene data on a line-by-line basis from the top to the bottom of the frame buffer.

Generally fast because:1. Visibility decisions can be made in a 2-D subset of the 3-D scene2. Coherency properties can be used to speed processing

2

Lecture8Scan-Line Algorithm

• Use a Window that is one scan line high (constant Y value)• Polygons intersections can be considered as a collection of line segments• Visibility testing is then done on these line segments• This reduces the 3-D problem to a 2-D problem

Typical Steps

•Sort polygons with one y bucket per scan line

• For all active polygons on this scan line find and sort the x end points

• On a pixel by pixel basis sort out which line segment is closest

• Find the color for each pixel

•Move to the next scan line

•Update x end points for all polygons still in y bucket

•Add new x end points for new polygons.

Polygon List

Y-sorted List

X-sorted ListFor each scan line

Z – SortDepth List

Visible elementdetermination

Page 2: Scan -Line Algorithm Lecture

2

3

Lecture8Scan-Line Algorithm

The greatest variation in scan line algorithms occurs in the z sort or depth list

Worst case, a z-depth list must be generated for each pixel

If in the x sorted line list none of the objects cross each other, visibility can be found for large sections of the scan line.

If in the x sorted list lines do cross each others span, lists can be generated so that again a large number of pixels can be handle in one segment.

Polygon List

Y-sorted List

X-sorted ListFor each scan line

Z – SortDepth List

Visible elementdetermination

4

Lecture8Painter’s Algorithm

Painter’ssort objects by z, for all objects {

for all covered pixels(x,y) {paint

}}

Another of the earliest algorithms for image generation. 1969-1972

It can be thought of as painting, or filling, with opaque paint, where closer objects are painted over farther ones.

This algorithm solves the visible object problem by painting. It is simple butis not always the most efficient.

Page 3: Scan -Line Algorithm Lecture

3

5

Lecture8Painter’s Algorithm

Polygon List

Z-sorted list

Subdivide Mixed Polygons

Z-sortSub-Polys

Draw and PaintBack to Front

•Start by sorting all objects by depth from front to back.

•Find all objects that have mixed Z.

•Subdivided these objects.

•Resort the sub objects by Z

•Repeat the above three steps until all object have clean Z values

•Start at the back and draw and fill all objects into the frame buffer.

6

Lecture8Painter’s Algorithm

Z sorting is the key to the Painter’s Algorithm.

•Simple and straight forward sort/subdivide.

•Binary-Space-Partitioning (BSP) tree.

•2 1/2 D with a priori valid order (Compositing)

•Particle systems (Very simple to sort)

Page 4: Scan -Line Algorithm Lecture

4

7

Lecture8

Painter’s AlgorithmBSP

Extremely efficient method for calculating the visibility relationships among a static group of polygons.

It is a trade off between a time and space intensive preprocessing step against a linear display step.

Well suited for applications in which the viewpoint changes, butwere the objects do not.

P1

P2P2

f

ff

b

b b

D C A B

D

C

B

A

1

2

3

3,1,2 3,2,1 1,2,3 2,1,3

8

Lecture8

Painter’s AlgorithmBSP

Example

1

2

3

4

5

Page 5: Scan -Line Algorithm Lecture

5

9

Lecture8

Painter’s AlgorithmBSP

Example

1

2

3

4

5

3

12

1

4

10

Lecture8

Painter’s AlgorithmBSP

Example

1

2

3

4

5

3

125a

1

45b5a

5b

F B

Page 6: Scan -Line Algorithm Lecture

6

11

Lecture8

Painter’s AlgorithmBSP

Example

1

2

3

4

5

3

1

45b5a

5b

2

5a 1

F B

F B

12

Lecture8

Painter’s AlgorithmBSP

Example

1

2

3

4

5

3

1

5a

5b

2

5a 1

4

5b

F

F

B

B B

Page 7: Scan -Line Algorithm Lecture

7

13

Lecture8

Painter’s AlgorithmBSP

Example II

1

2

3

4

5

5

1

2

1

4

3

B

B

B

F

14

Lecture8Painter’s Algorithm

The “simplest” versions of the painters algorithm must do a shading calculation for every pixel of every object.

Some shading calculations can be avoided by painting some selected closest objects and then paint around them for the backobjects.

The above can have serious problems because of requiring global order which can be very expensive to calculate.

With many Painter’s algorithms aliasing can be a real problem. Using the alpha channel and compositing can help.

Page 8: Scan -Line Algorithm Lecture

8

15

Lecture8Painter’s Algorithm

Particle systems lend them selves to the Painter’s Algorithm

Partical systems are made of small dynamic objects that can be created, extinguished, or moved. They are generally small and look like points which contain color and transparency. If they do have shape it can change with time along with color and material type.

Being small they are easily sorted into fixed bins in space with little to no chance for z overlap.

Pseudo random location and motion tend to cause uncorrelated obscurations suitable for antialiased compositing.

16

Lecture8Painter’s Algorithm

Page 9: Scan -Line Algorithm Lecture

9

17

Lecture8Painter’s Algorithm

18

Lecture8Z-Buffer

Z-Bufferfor all objects {

for all covered pixels {compare z

}}

Of all the image rendering algorithms the Z-Buffer or Depth Buffer is one of the simplest.

For each pixel in the display buffer record the depth value of the object in the scene. Start with the nearest object in each pixel and determine the shading values.

This algorithm lends it self to easy anti-aliasing

Page 10: Scan -Line Algorithm Lecture

10

19

Lecture8Z-Buffer

Polygon List

Project into screen space

For each pixelfind Z coverage

Shade nearestpolygons

Development of the Z-Buffer is attributed to Ed Catmull in 1974.

Many additions have been add including

•Alpha buffers

•Jittered Samples

•Weighted averages anti-aliasing

•Bi-cubic patch subdivision

•Depth maps

•Shadows

20

Lecture8Z-Buffer

Two Papers that are a must for understanding Z-buffer rendering systems.

“The Reyes Image Rendering Architecture”

“The A-Buffer, an Antialiased Hidden Surface Method”

Page 11: Scan -Line Algorithm Lecture

11

21

Lecture8Reyes Rendering System

Design Principles:

•Natural Coordinates•Vectorization•Common Representation•Locality

•Geometric•Texture

•Linearity•Large Models•Back Door•Texture Maps

22

Lecture8The Alpha Buffer

The Alpha Buffer is•Antialiased•Area-averaged •accumulation Buffer

Resolves visibility of an arbitrary collection of opaque and transparent surfaces.

Increases image resolution many times over the standard Z-Buffer

Page 12: Scan -Line Algorithm Lecture

12

23

Lecture8Alpha & Z-Buffer

Intensity Depth Buffer Alpha

24

Lecture8Alpha

Page 13: Scan -Line Algorithm Lecture

13

25

Lecture8Compositing Example

26

Lecture8Compositing Example

Page 14: Scan -Line Algorithm Lecture

14

27

Lecture8Compositing Example

28

Lecture8Compositing Example

Page 15: Scan -Line Algorithm Lecture

15

29

Lecture8Compositing Example

30

Lecture8Compositing

Important Papers:

“Compositing Digital Images”

“Compositing 3-D Rendered Images

“Compositing - Theory”

“Composting - Practice”