Steve Marschner CS 4620 Cornell University
Steve Marschner • Cornell CS4620 Fall 2020
The Graphics Pipeline
1
The Graphics Pipeline Steve Marschner CS 4620 Cornell University - - PowerPoint PPT Presentation
The Graphics Pipeline Steve Marschner CS 4620 Cornell University Cornell CS4620 Fall 2020 Steve Marschner 1 Two approaches to rendering Cornell CS4620 Fall 2020 Steve Marschner 2 Two approaches to rendering for each object in the
Steve Marschner • Cornell CS4620 Fall 2020
1
Steve Marschner • Cornell CS4620 Fall 2020
2
Steve Marschner • Cornell CS4620 Fall 2020
2
Steve Marschner • Cornell CS4620 Fall 2020
2
Steve Marschner • Cornell CS4620 Fall 2020
2
Steve Marschner • Cornell CS4620 Fall 2020
2
Steve Marschner • Cornell CS4620 Fall 2020
3
Steve Marschner • Cornell CS4620 Fall 2020
4
Steve Marschner • Cornell CS4620 Fall 2020 5
world space eye space screen space modeling transformation viewport transformation projection transformation viewing transformation normalized device coordinates
Steve Marschner • Cornell CS4620 Fall 2020
6
Steve Marschner • Cornell CS4620 Fall 2020
7
Steve Marschner • Cornell CS4620 Fall 2020
8
Steve Marschner • Cornell CS4620 Fall 2020
9
Steve Marschner • Cornell CS4620 Fall 2020
10
Steve Marschner • Cornell CS4620 Fall 2020
11
Steve Marschner • Cornell CS4620 Fall 2020
linEval(xm, xM, ym, yM, cx, cy, ck) { // setup qRow = cx*xm + cy*ym + ck; // traversal for y = ym to yM { qPix = qRow; for x = xm to xM {
qPix += cx; } qRow += cy; } }
12
Steve Marschner • Cornell CS4620 Fall 2020
13
Steve Marschner • Cornell CS4620 Fall 2020
(singular iff triangle is degenerate) (each states that the function agrees with the given value at one vertex)
14
Steve Marschner • Cornell CS4620 Fall 2020
15
Steve Marschner • Cornell CS4620 Fall 2020
linInterp(xm, xM, ym, yM, x0, y0, q0, x1, y1, q1, x2, y2, q2) { // setup det = (x1–x0)*(y2–y0) – (x2–x0)*(y1–y0); cx = ((q1–q0)*(y2–y0) – (q2–q0)*(y1–y0)) / det; cy = ((q2–q0)*(x1–x0) – (q1–q0)*(x2–x0)) / det; qRow = cx*(xm–x0) + cy*(ym–y0) + q0; // traversal (same as before) for y = ym to yM { qPix = qRow; for x = xm to xM {
qPix += cx; } qRow += cy; } }
16
Steve Marschner • Cornell CS4620 Fall 2020
linInterp(xm, xM, ym, yM, n, x0, y0, q0[], x1, y1, q1[], x2, y2, q2[]) { // setup for k in 0 to n // compute cx[k], cy[k], qRow[k] // from q0[k], q1[k], q2[k] // traversal for y = ym to yM { for k = 0 to n, qPix[k] = qRow[k]; for x = xm to xM {
for k = 0 to n, qPix[k] += cx[k]; } for k = 0 to n, qRow[k] += cy[k]; } }
17
Steve Marschner • Cornell CS4620 Fall 2020
18
Steve Marschner • Cornell CS4620 Fall 2020
19
Steve Marschner • Cornell CS4620 Fall 2020
20
Steve Marschner • Cornell CS4620 Fall 2020
21
Steve Marschner • Cornell CS4620 Fall 2020
22
Steve Marschner • Cornell CS4620 Fall 2020
23
Steve Marschner • Cornell CS4620 Fall 2020
24
Steve Marschner • Cornell CS4620 Fall 2020
25
Steve Marschner • Cornell CS4620 Fall 2020
26
Steve Marschner • Cornell CS4620 Fall 2020
26
Steve Marschner • Cornell CS4620 Fall 2020
26
Steve Marschner • Cornell CS4620 Fall 2020
26
Steve Marschner • Cornell CS4620 Fall 2020
27
Steve Marschner • Cornell CS4620 Fall 2020
27
Steve Marschner • Cornell CS4620 Fall 2020
27
Steve Marschner • Cornell CS4620 Fall 2020
27
Steve Marschner • Cornell CS4620 Fall 2020
27
Steve Marschner • Cornell CS4620 Fall 2020
27
Steve Marschner • Cornell CS4620 Fall 2020
28
[Foley et al.] Steve Marschner • Cornell CS4620 Fall 2020
28
[Foley et al.] Steve Marschner • Cornell CS4620 Fall 2020
29
Steve Marschner • Cornell CS4620 Fall 2020
30
[Foley et al.] Steve Marschner • Cornell CS4620 Fall 2020
31
Steve Marschner • Cornell CS4620 Fall 2020
32
Steve Marschner • Cornell CS4620 Fall 2020
33
Steve Marschner • Cornell CS4620 Fall 2020
34
Steve Marschner • Cornell CS4620 Fall 2020
35
Francesco Andreussi?
Steve Marschner • Cornell CS4620 Fall 2020
36
Steve Marschner • Cornell CS4620 Fall 2020
37
Steve Marschner • Cornell CS4620 Fall 2020
38
Steve Marschner • Cornell CS4620 Fall 2020
39
Steve Marschner • Cornell CS4620 Fall 2020 [Gouraud thesis]
40
Steve Marschner • Cornell CS4620 Fall 2020
41
[Foley et al.] Steve Marschner • Cornell CS4620 Fall 2020
42
Steve Marschner • Cornell CS4620 Fall 2020
43
Steve Marschner • Cornell CS4620 Fall 2020
44
Steve Marschner • Cornell CS4620 Fall 2020
44
[Foley et al.] Steve Marschner • Cornell CS4620 Fall 2020
45
Steve Marschner • Cornell CS4620 Fall 2020
46
Steve Marschner • Cornell CS4620 Fall 2020
47
Steve Marschner • Cornell CS4620 Fall 2020
48
Steve Marschner • Cornell CS4620 Fall 2020
49
Steve Marschner • Cornell CS4620 Fall 2020
50