chap. 8 — rasterization rasterizationagomes/cg/teoricas/08-rasterization.pdfbresenham, j.e....

29
Rasterization Computação Gráfica 5385: Licenciatura em Engenharia Informática Chap. 8 — Rasterization

Upload: lenhan

Post on 18-Apr-2018

227 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Chap. 8 — Rasterization Rasterizationagomes/cg/teoricas/08-rasterization.pdfBresenham, J.E. Algorithm for computer control of a digital plotter, IBM Systems Journal, January 1965,

Rasterization

Computação Gráfica

5385: Licenciatura em Engenharia Informática

Chap. 8 — Rasterization

Page 2: Chap. 8 — Rasterization Rasterizationagomes/cg/teoricas/08-rasterization.pdfBresenham, J.E. Algorithm for computer control of a digital plotter, IBM Systems Journal, January 1965,

Chapter 8: Rasterization

Outline

Page 3: Chap. 8 — Rasterization Rasterizationagomes/cg/teoricas/08-rasterization.pdfBresenham, J.E. Algorithm for computer control of a digital plotter, IBM Systems Journal, January 1965,

Chapter 8: Rasterization

Raster display

Page 4: Chap. 8 — Rasterization Rasterizationagomes/cg/teoricas/08-rasterization.pdfBresenham, J.E. Algorithm for computer control of a digital plotter, IBM Systems Journal, January 1965,

Chapter 8: Rasterization

Terminology

Page 5: Chap. 8 — Rasterization Rasterizationagomes/cg/teoricas/08-rasterization.pdfBresenham, J.E. Algorithm for computer control of a digital plotter, IBM Systems Journal, January 1965,

Chapter 8: Rasterization

Page 6: Chap. 8 — Rasterization Rasterizationagomes/cg/teoricas/08-rasterization.pdfBresenham, J.E. Algorithm for computer control of a digital plotter, IBM Systems Journal, January 1965,

Chapter 8: Rasterization Scan conversion / rasterization ���(for direct illumination)

Page 7: Chap. 8 — Rasterization Rasterizationagomes/cg/teoricas/08-rasterization.pdfBresenham, J.E. Algorithm for computer control of a digital plotter, IBM Systems Journal, January 1965,

Chapter 8: Rasterization

Graphics primitives

How is each geometric primitive really drawn on screen?

Page 8: Chap. 8 — Rasterization Rasterizationagomes/cg/teoricas/08-rasterization.pdfBresenham, J.E. Algorithm for computer control of a digital plotter, IBM Systems Journal, January 1965,

Chapter 8: Rasterization Geometric representations for lines���in IR2

f (x,y) = Ax + By +C = 0€

y = f (x) = mx + b

x = x(t) = m0t + b0y = y(t) = m1t + b1

Page 9: Chap. 8 — Rasterization Rasterizationagomes/cg/teoricas/08-rasterization.pdfBresenham, J.E. Algorithm for computer control of a digital plotter, IBM Systems Journal, January 1965,

Chapter 8: Rasterization

Scan converting lines

(x1,y1)€

(x2,y2)

Page 10: Chap. 8 — Rasterization Rasterizationagomes/cg/teoricas/08-rasterization.pdfBresenham, J.E. Algorithm for computer control of a digital plotter, IBM Systems Journal, January 1965,

Chapter 8: Rasterization

Direct scan conversion

increments in x (fails when m>1)

Page 11: Chap. 8 — Rasterization Rasterizationagomes/cg/teoricas/08-rasterization.pdfBresenham, J.E. Algorithm for computer control of a digital plotter, IBM Systems Journal, January 1965,

Chapter 8: Rasterization

Direct scan conversion (cont’d)

increments in x (m<1)

Page 12: Chap. 8 — Rasterization Rasterizationagomes/cg/teoricas/08-rasterization.pdfBresenham, J.E. Algorithm for computer control of a digital plotter, IBM Systems Journal, January 1965,

Chapter 8: Rasterization DDA algorithm ���(Digital Differential Analyser)

xi

xi+1

yi

yi+1

increments in x (m<1)

Page 13: Chap. 8 — Rasterization Rasterizationagomes/cg/teoricas/08-rasterization.pdfBresenham, J.E. Algorithm for computer control of a digital plotter, IBM Systems Journal, January 1965,

Chapter 8: Rasterization DDA algorithm ���(Digital Differential Analyser)

xi

xi+1

yi

yi+1

increments in x (m<1)

Page 14: Chap. 8 — Rasterization Rasterizationagomes/cg/teoricas/08-rasterization.pdfBresenham, J.E. Algorithm for computer control of a digital plotter, IBM Systems Journal, January 1965,

Chapter 8: Rasterization

DDA algorithm (cont’d)

xi

xi+1

yi

yi+1

increments in y (m>1)

Page 15: Chap. 8 — Rasterization Rasterizationagomes/cg/teoricas/08-rasterization.pdfBresenham, J.E. Algorithm for computer control of a digital plotter, IBM Systems Journal, January 1965,

Chapter 8: Rasterization

Bresenham algorithm

xi

xi+1

yi

yi+1 d2 d1

Exact y-coordinate value y=yi+d1 of straight line at x=xi+1

Bresenham, J.E. Algorithm for computer control of a digital plotter, IBM Systems Journal, January 1965, pp. 25-30.

Page 16: Chap. 8 — Rasterization Rasterizationagomes/cg/teoricas/08-rasterization.pdfBresenham, J.E. Algorithm for computer control of a digital plotter, IBM Systems Journal, January 1965,

Chapter 8: Rasterization Bresenham algorithm ���(cont’d)

xi

xi+1

yi

yi+1 d2 d1

Page 17: Chap. 8 — Rasterization Rasterizationagomes/cg/teoricas/08-rasterization.pdfBresenham, J.E. Algorithm for computer control of a digital plotter, IBM Systems Journal, January 1965,

Chapter 8: Rasterization Bresenham algorithm ���(cont’d)

xi

xi+1

yi

yi+1 d2 d1

void Bresenham (int xi, int yi, int xf, int yf) { int x,y,dx,dy,p; x = xi; y = yi; p = 2 * dy - dx; for(x=xi; x<=xf; x++) { DrawPixel (x,y); if (p> 0) { y = y + 1; p = p - 2 * dx; } p= p + 2 * dy; }

}

Page 18: Chap. 8 — Rasterization Rasterizationagomes/cg/teoricas/08-rasterization.pdfBresenham, J.E. Algorithm for computer control of a digital plotter, IBM Systems Journal, January 1965,

Chapter 8: Rasterization

Midpoint algorithm

xi

yiMP

Current pixel P(xi,yi)

N

E

http

://w

ww

.mat

.uni

vie.

ac.a

t/~

krie

gl/S

krip

ten/

CG

/nod

e25.

htm

l

Bresenham, J.E. Algorithm for computer control of a digital plotter, IBM Systems Journal, January 1965, pp. 25-30.

P

Page 19: Chap. 8 — Rasterization Rasterizationagomes/cg/teoricas/08-rasterization.pdfBresenham, J.E. Algorithm for computer control of a digital plotter, IBM Systems Journal, January 1965,

Chapter 8: Rasterization Midpoint algorithm ���(cont’d)

xi

yiMP

Current pixel: E (East) or N (Nord-East)

N

E P

ME

MN

Let us now determine the relation between the function values at consecutive midpoints:

Multiplying the decision parameter by 2 we realize that we obtain exactly the Bresenham algorithm given before.

Page 20: Chap. 8 — Rasterization Rasterizationagomes/cg/teoricas/08-rasterization.pdfBresenham, J.E. Algorithm for computer control of a digital plotter, IBM Systems Journal, January 1965,

Chapter 8: Rasterization General Bresenham’s algorithm ���for lines

xi

yiMP

N

E P

ME

MN

Page 21: Chap. 8 — Rasterization Rasterizationagomes/cg/teoricas/08-rasterization.pdfBresenham, J.E. Algorithm for computer control of a digital plotter, IBM Systems Journal, January 1965,

Chapter 8: Rasterization

Scan converting circles

y = f (x) = ± R2 − x 2

x = Rcosθy = Rsinθ⎧ ⎨ ⎩

f (x,y) = x 2 + y 2 − R2 = 0

8-way symmetry

gap problem

Page 22: Chap. 8 — Rasterization Rasterizationagomes/cg/teoricas/08-rasterization.pdfBresenham, J.E. Algorithm for computer control of a digital plotter, IBM Systems Journal, January 1965,

Chapter 8: Rasterization

Midpoint circle algorithm

xi

yi

Current pixel P(xi,yi)

http

://w

ww

.mat

.uni

vie.

ac.a

t/~

krie

gl/S

krip

ten/

CG

/nod

e25.

htm

l

J.E. Bresenham. A linear algorithm for incremental digital display of circular arcs. Communications of the ACM, 20(2):100-106, 1977.

MP

E P

S ME

MS

Page 23: Chap. 8 — Rasterization Rasterizationagomes/cg/teoricas/08-rasterization.pdfBresenham, J.E. Algorithm for computer control of a digital plotter, IBM Systems Journal, January 1965,

Chapter 8: Rasterization Midpoint circle algorithm ���(cont’d)

Current pixel: E (East) or S (South-East)

Let us now determine the relation between the function values at consecutive midpoints:

MP

E P

S ME

MS

xi

yi

Page 24: Chap. 8 — Rasterization Rasterizationagomes/cg/teoricas/08-rasterization.pdfBresenham, J.E. Algorithm for computer control of a digital plotter, IBM Systems Journal, January 1965,

Chapter 8: Rasterization Midpoint circle algorithm ���(cont’d)

void MidPointCircle(int R) { int x=0, y=R, d=1-R;

DrawPixel(x,y); while (y>x) { if (p< 0) // select E p=p + 2 * x + 3; else // select S { p = p + 2 * (x - y) + 5; y = y - 1; } x = x + 1; DrawPixel(x,y); }

}

The algorithm only calculates the pixels on the 2nd octant. The remaining pixels are found using 8-way-symmetry.

MP

E P

S ME

MS

xi

yi

Page 25: Chap. 8 — Rasterization Rasterizationagomes/cg/teoricas/08-rasterization.pdfBresenham, J.E. Algorithm for computer control of a digital plotter, IBM Systems Journal, January 1965,

Chapter 8: Rasterization

Page 26: Chap. 8 — Rasterization Rasterizationagomes/cg/teoricas/08-rasterization.pdfBresenham, J.E. Algorithm for computer control of a digital plotter, IBM Systems Journal, January 1965,

Chapter 8: Rasterization

Scan converting of polygons

Page 27: Chap. 8 — Rasterization Rasterizationagomes/cg/teoricas/08-rasterization.pdfBresenham, J.E. Algorithm for computer control of a digital plotter, IBM Systems Journal, January 1965,

Chapter 8: Rasterization

Review

Page 28: Chap. 8 — Rasterization Rasterizationagomes/cg/teoricas/08-rasterization.pdfBresenham, J.E. Algorithm for computer control of a digital plotter, IBM Systems Journal, January 1965,

Chapter 8: Rasterization

Triangle scan conversion

void ScanCTriangle(Triangle T, Color rgba) { for each pixel P(x,y) if inside(P,T) setPixel(x,y,rgba)

}

P

Boolean inside (Triangle T, Point P) { for each boundary line L of T { float dot = L.A*P.x+L.B*P.y+L.C*P.z; if dot<0.0 return FALSE;

} return TRUE; }

Page 29: Chap. 8 — Rasterization Rasterizationagomes/cg/teoricas/08-rasterization.pdfBresenham, J.E. Algorithm for computer control of a digital plotter, IBM Systems Journal, January 1965,

Chapter 8: Rasterization

Summary: