Title: Scan Conversion
1Scan Conversion
2Scan Conversion
- Last step in the graphics pipeline
- Efficiency is a central issue
- Common primitives
- Lines (done last class)
- Polygons (fill polygons, today)
- Circles
- Hardware implementations preferable
3Filling PolygonsScan Line Algorithm
14
12
10
8
6
4
2
0
2
4
6
8
10
12
14
0
4(No Transcript)
5(No Transcript)
6Filling PolygonsSpecial Cases
Edge Table (ET) Entry
7Scan Line Polygon Fill Algorithm
N
N
14
N
D
12
N
EF
DE
F
10
-5/2
6/4
N
9
7
12
7
CD
N
8
N
12
13
0
E
6
C
FA
N
4
N
9
2
0
A
2
N
AB
BC
B
0
6/4
N
7
-5/2
3
7
5
2
4
6
8
10
12
14
0
N
Scan Line
8AET
- AET at scanline y8
- AET at Scanline y 9
ET Record format (Ymax, Xmin, 1/m) AET Records
format (Ymax, Xcurrent, 1/m)
9Scan Line Polygon FillThe Algorithm
- Set y to smallest y coordinate that has an entry
in ET - Initialize the active edge table (AET) to empty
- Repeat until the ET and AET are both empty
- Move from ET bucket at y to AET those edges whose
ymin y. (entering edges) - Remove from AET those edges for which y ymax.
- Sort AET on x
- Fill in desired pixels on scan line using
even-odd parity from AET - Increment y by one (next scan line)
- For each edge in the AET, update x by adding Dx/Dy
10What color to fill?
Recall Shading in OpenGL Smooth Shading
Requested by glShadeModel(GL_SMOOTH) Ligh
ting calculations will be done at each vertex
using the material properties, and the vectors v
and l calculated for that vertex. Bilinear
interpolation is used to determine color values
in the interior of the polygon.
11Bilinear Interpolation
- Cp ?
- Cq ?
- Ck ?
- Xa Ya, Xb, Yb, Xk, Yk
- Need to calculate Xp, Xq.
- Cp, Cq, Xp, Xq can all use incremental methods
- Rate of color change!!
C
12Using Incremental Methods
- Cx
- Cx1 Cx (Cp Cq)/(Xq-Xp)