Transcript
Page 1: Triangle Scan Conversion. 2 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Rasterization Rasterization (scan conversion) –Determine which

Triangle Scan Conversion

Page 2: Triangle Scan Conversion. 2 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Rasterization Rasterization (scan conversion) –Determine which

2 Angel: Interactive Computer Graphics 5E © Addison-Wesley

2009

Rasterization• Rasterization (scan conversion)

– Determine which pixels that are inside primitive specified by a set of vertices

– Produces a set of fragments– Fragments have a location (pixel location) and other

attributes such color and texture coordinates that are determined by interpolating values at vertices

• Pixel colors determined later using color, texture, and other vertex properties

Page 3: Triangle Scan Conversion. 2 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Rasterization Rasterization (scan conversion) –Determine which

Triangle Area Filling Algorithms

• Why do we care about triangles?

• Edge Equations

• Edge Walking

Page 4: Triangle Scan Conversion. 2 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Rasterization Rasterization (scan conversion) –Determine which
Page 5: Triangle Scan Conversion. 2 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Rasterization Rasterization (scan conversion) –Determine which

Do something easier!

• Instead of polygons, let’s do something easy!

• TRIANGLES! Why? 1) All polygons can be broken into triangles

2) Easy to specify

3) Always convex

4) Going to 3D is MUCH easier

Page 6: Triangle Scan Conversion. 2 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Rasterization Rasterization (scan conversion) –Determine which

Polygons can be broken down

Triangulate - Dividing a polygon into triangles.

Is it always possible? Why?

Page 7: Triangle Scan Conversion. 2 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Rasterization Rasterization (scan conversion) –Determine which

Any object can be broken down into polygons

Page 8: Triangle Scan Conversion. 2 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Rasterization Rasterization (scan conversion) –Determine which

Specifying a model

• For polygons, we had to worry about connectivity AND vertices.

• How would you specify a triangle? (What is the minimum you need to draw one?)– Only vertices

(x1,y1) (x2,y2) (x3,y3)

– No ambiguity– Line equations

A1x1+B1y1+C1=0 A2x2+B2y2+C2=0 A3x3+B3y3+C3=0

Page 9: Triangle Scan Conversion. 2 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Rasterization Rasterization (scan conversion) –Determine which

Triangles are always convex

• What is a convex shape?

An object is convex if and only if any line segment connecting two points on its boundary is contained entirely within the object or one of its boundaries. Think about scan lines again!

Page 10: Triangle Scan Conversion. 2 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Rasterization Rasterization (scan conversion) –Determine which

Scan Converting a Triangle

• Recap what we are trying to do

• Two main ways to rasterize a triangle– Edge Equations

• A1x1+B1y1+C1=0

• A2x2+B2y2+C2=0

• A3x3+B3y3+C3=0

– Edge Walking

Page 11: Triangle Scan Conversion. 2 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Rasterization Rasterization (scan conversion) –Determine which

Types of Triangles

What determines the spans? Can you think of an easy way to compute spans?

What is the special vertex here?

Page 12: Triangle Scan Conversion. 2 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Rasterization Rasterization (scan conversion) –Determine which

Edge Walking

• 1. Sort vertices in y and then x

• 2. Determine the middle vertex

• 3. Walk down edges from P0

• 4. Compute spans

P0

P1

P2

Page 13: Triangle Scan Conversion. 2 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Rasterization Rasterization (scan conversion) –Determine which

Edge Walking Pros and Cons

Pros• Fast• Easy to implement in

hardware

Cons• Special Cases• Interpolation can be

tricky

Page 14: Triangle Scan Conversion. 2 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Rasterization Rasterization (scan conversion) –Determine which

Color Interpolating

P0

P1

P2

(?, ?, ?)

(?, ?, ?)

Page 15: Triangle Scan Conversion. 2 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Rasterization Rasterization (scan conversion) –Determine which

Edge Equations

• A1x1+B1y1+C1=0

• A2x2+B2y2+C2=0

• A3x3+B3y3+C3=0

• How do you go from:

x1, y1 - x2, y2 toA1x1+B1y1+C1?

P0

P1P2

Page 16: Triangle Scan Conversion. 2 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Rasterization Rasterization (scan conversion) –Determine which

Given 2 points, compute A,B,C

0

0

11

00

CByAx

CByAx

0

0

11

00

C

C

B

A

yx

yx

C

C

B

A

yx

yx

11

00

1

1

11

00 CB

A

yx

yx

01

01

0110 xx

yy

yxyx

C

B

A

C = x0y1 – x1y0

A = y0 – y1

B = x1 – x0

Page 17: Triangle Scan Conversion. 2 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Rasterization Rasterization (scan conversion) –Determine which

Edge Equations• What does the edge

equation mean?

• A1x1+B1y1+C1=0

• Pt1[2,1], Pt2[6,11]

• A=-10, B=4, C=16

• What is the value of the equation for the: – gray part

– yellow part

– the boundary line

• What happens when we reverse P0 and P1?

P0

P1

Page 18: Triangle Scan Conversion. 2 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Rasterization Rasterization (scan conversion) –Determine which

Combining all edge equations

1) Determine edge equations for all three edges

2) Find out if we should reverse the edges

3) Create a bounding box

4) Test all pixels in the bounding box whether they too reside on the same side

P2

P1

P0

Page 19: Triangle Scan Conversion. 2 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Rasterization Rasterization (scan conversion) –Determine which

Edge Equations: Interpolating Color

• Given redness at the 3 vertices, set up the linear system of equations:

• The solution works out to:

Page 20: Triangle Scan Conversion. 2 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Rasterization Rasterization (scan conversion) –Determine which

Edge Equations:Interpolating Color

• Notice that the columns in the matrix are exactly the coefficients of the edge equations!

• So the setup cost per parameter is basically a matrix multiply

• Per-pixel cost (the inner loop) cost equates to tracking another edge equation value (which is?)– A: 1 add

Page 21: Triangle Scan Conversion. 2 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Rasterization Rasterization (scan conversion) –Determine which

Pros and Cons of Edge Equations

• Pros• If you have the right

hardware (PixelPlanes) then it is very fast

• Fast tests• Easy to interpolate

colors

• Cons• Can be expensive if

you don’t have hardware

• 50% efficient

Page 22: Triangle Scan Conversion. 2 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Rasterization Rasterization (scan conversion) –Determine which

Recap

P0

P1

P2

P1

P2

P0

Page 23: Triangle Scan Conversion. 2 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Rasterization Rasterization (scan conversion) –Determine which

23 Angel: Interactive Computer Graphics 5E © Addison-Wesley

2009

Scan Conversion of Line Segments

• Start with line segment in window coordinates with integer values for endpoints

• Assume implementation has a write_pixel function

y = mx + h

Page 24: Triangle Scan Conversion. 2 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Rasterization Rasterization (scan conversion) –Determine which

24 Angel: Interactive Computer Graphics 5E © Addison-Wesley

2009

DDA Algorithm• Digital Differential Analyzer

– DDA was a mechanical device for numerical solution of differential equations

– Line y=mx+ h satisfies differential equation where m = y/x = y2-y1/x2-x1

• Along scan line x = 1 at each iteration of the loop

For(x=x1; x<=x2,ix++) { y+=m; write_pixel(x, round(y), line_color)}

Page 25: Triangle Scan Conversion. 2 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Rasterization Rasterization (scan conversion) –Determine which

25 Angel: Interactive Computer Graphics 5E © Addison-Wesley

2009

Problem

• DDA = for each x plot pixel at closest y– Problems for steep lines

Page 26: Triangle Scan Conversion. 2 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Rasterization Rasterization (scan conversion) –Determine which

26 Angel: Interactive Computer Graphics 5E © Addison-Wesley

2009

Using Symmetry

• Use for 1 m 0

• For m > 1, swap role of x and y– For each y, plot closest x

Page 27: Triangle Scan Conversion. 2 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Rasterization Rasterization (scan conversion) –Determine which

27 Angel: Interactive Computer Graphics 5E © Addison-Wesley

2009

Bresenham’s Algorithm

• DDA requires one floating point addition per step

• We can eliminate all fp through Bresenham’s algorithm

• Consider only 1 m 0

– Other cases by symmetry• Assume pixel centers are at half integers

• If we start at a pixel that has been written, there are only two candidates for the next pixel to be written into the frame buffer

Page 28: Triangle Scan Conversion. 2 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Rasterization Rasterization (scan conversion) –Determine which

28 Angel: Interactive Computer Graphics 5E © Addison-Wesley

2009

Candidate Pixels

1 m 0

last pixel

candidates

Page 29: Triangle Scan Conversion. 2 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Rasterization Rasterization (scan conversion) –Determine which

29 Angel: Interactive Computer Graphics 5E © Addison-Wesley

2009

Decision Variable

-

d = x(b-a)

d is an integerd > 0 use upper pixeld < 0 use lower pixel

Page 30: Triangle Scan Conversion. 2 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Rasterization Rasterization (scan conversion) –Determine which

30 Angel: Interactive Computer Graphics 5E © Addison-Wesley

2009

Incremental Form• More efficient if we look at dk, the value of

the decision variable at x = k

dk+1= dk –2y, if dk <0dk+1= dk –2(y- x), otherwise

•For each x, we need do only an integer addition and a test•Single instruction on graphics chips


Recommended