Title: CAP4730: Computational Structures in Computer Graphics
1CAP4730 Computational Structures in Computer
Graphics
Triangle Scan Conversion
2Triangle Area Filling Algorithms
- Why do we care about triangles?
- Edge Equations
- Edge Walking
3(No Transcript)
4We want something easier
- It is easier to do 1 thing VERY fast than 2
things pretty fast. - Why? Think about how you code.
- Scan conversion
- Polygon
- Circle
- Clipping
5Do something easier!
- Instead of polygons, lets 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
6Polygons can be broken down
Triangulate - Dividing a polygon into
triangles. Is it always possible? Why?
7Any object can be broken down into polygons
8Specifying 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
- A1x1B1y1C10 A2x2B2y2C20 A3x3B3y3C30
9Triangles are always convex
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!
10Scan Converting a Triangle
- Recap what we are trying to do
- Two main ways to rasterize a triangle
- Edge Equations
- A1x1B1y1C10
- A2x2B2y2C20
- A3x3B3y3C30
- Edge Walking
11Types of Triangles
What determines the spans? Can you think of an
easy way to compute spans? What is the special
vertex here?
12Edge 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
13Edge Walking Pros and Cons
- Pros
- Fast
- Easy to implement in hardware
- Cons
- Special Cases
- Interpolation can be tricky
14Color Interpolating
P0
(?, ?, ?)
P1
P2
(?, ?, ?)
15Edge Equations
P0
- A1x1B1y1C10
- A2x2B2y2C20
- A3x3B3y3C30
- How do you go from
- x1, y1 - x2, y2 to
- A1x1B1y1C1?
P1
P2
16Given 2 points, compute A,B,C
C x0y1 x1y0 A y0 y1 B x1 x0
17Edge Equations
P0
- What does the edge equation mean?
- A1x1B1y1C10
- Pt12,1, Pt26,11
- A-10, B4, C16
- What is the value of the equation for the
- gray part
- yellow part
- the boundary line
- What happens when we reverse P0 and P1?
P1
18Positive Interior
- We add the C element from each edge
- area edge0.C edge1.C edge2.C
- if (areagt0) then inside points are in the
positive half spaces - if (arealt0) then what should we do?
- What happens if area0?
19Combining all edge equations
P0
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
P1
P2
20Edge Equations Interpolating Color
- Given colors (and later, other parameters) at the
vertices, how to interpolate across? - Idea triangles are planar in any space
- This is the redness parameter space
- Noteplane follows formz Ax By C
- Look familiar?
Taken w/ permission from David Luebke,
UVA http//www.cs.virginia.edu/gfx/Courses/2003/I
ntro.spring.03/lecture17.ppt
21Edge Equations Interpolating Color
- Given redness at the 3 vertices, set up the
linear system of equations - The solution works out to
22Edge EquationsInterpolating 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
23Pros 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 dont have hardware
- 50 efficient
24Recap
P0
P0
P1
P1
P2
P2