70
1 Georgia Tech, IIC, GVU, 2006 MAGIC MAGIC Lab Lab http:// www.gvu.gatech.edu/ Jarek Rossignac Rasterization Pipeline Rasterization Clipping

Rasterization Pipeline

  • Upload
    gita

  • View
    61

  • Download
    0

Embed Size (px)

DESCRIPTION

Rasterization Pipeline. Rasterization Clipping. Rasterization costs. Per vertex Lighting calculations Perspective transformation Slopes calculation Per pixel Interpolations of z, c (and leading trailing edges, amortized) Read, compare, right to update the z-buffer and frame buffer. - PowerPoint PPT Presentation

Citation preview

Page 1: Rasterization Pipeline

1Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Rasterization Pipeline

Rasterization Clipping

Page 2: Rasterization Pipeline

2Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Rasterization costs

Per vertex– Lighting calculations– Perspective transformation– Slopes calculation

Per pixel– Interpolations of z, c (and leading trailing edges, amortized)– Read, compare, right to update the z-buffer and frame buffer

Page 3: Rasterization Pipeline

3Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Acceleration techniques

Reduce per pixel cost– Reduce resolution– Back-face culling

Reduce per vertex cost– T-strips and fans– Frustum culling– Simplification– Texture map

Reduce both– Occlusion culling

Page 4: Rasterization Pipeline

4Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Back-face culling

Done in screen space by hardware Test sign of (xB-xA) (yC-yA) - (xC-xA) (yB-yA)

AB

C

Page 5: Rasterization Pipeline

5Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

T-strips and fans

Reuse 2 vertices of last triangle

fan strip

Was important when hardware had only 3 registers

Less important in modern graphics boards

Saves nearly 2/3 of vertex processingA vertex is still processed twice on average

Page 6: Rasterization Pipeline

6Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Frustum culling

Build a tight sphere around each object– Center it at C=((xmax+xmin)/2, (ymax+ymin)/2, (zmax+zmin)/2 )– Compute radius r as min||CV|| for all vertices V

Test the sphere against each half-space of the frustum– If N•(EC)<-r then sphere is outside

NE

C

Page 7: Rasterization Pipeline

7Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Simplification

Collapse edges

NA B

Collapse A to B if |N•(AB)|<e Or use better error estimates

Page 8: Rasterization Pipeline

8Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Vertex clustering (Rossignac-Borrel)

Subdivide box around object into grid of cells Coalesce vertices in each cell into one “attractor” Remove degenerate triangles

– More than one vertex in a cell– Not needed for dangling edge or vertex

Page 9: Rasterization Pipeline

9Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Vertex clustering example

Page 10: Rasterization Pipeline

10Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Hausdorff distance between T-meshes

Expensive to compute, – because it can occur away from vertices and edges!

AA BB

The point of B that The point of B that is furthest away is furthest away from A is closest to from A is closest to 3 points on A that 3 points on A that are inside facesare inside faces

Page 11: Rasterization Pipeline

11Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

What is the error produced by edge collapses?

Volume of the solid bounded by old and new triangles– requires computing their intersection

Exact Hausdorff distance between old and new triangles– expensive to compute precisely

Distance between v and planes of all triangles incident on collapsed vertices– one dot product per plane (expensive, but guaranteed error bound)

Quadratic distance between v and planes old triangles– evaluate one quadratic form representing all the planes (cheap but not a bound)– leads to closed form solution for computing the optimal V’ (in least square sense)

Estimating edge-collapse error

v’v’ vv

Page 12: Rasterization Pipeline

12Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Measuring Error with Quadrics (Garland) Given plane P, and point v, we can define a quadric distance Q(v) = D(v,P)2

– P goes through point p and has normal N– D(v,P) = pvN– Q(p) = (pvN)2, which is a quadratic polynomial in the coordinatges of v– If v=(x,y,z), Q(p)=a11x2+a22y2+a33z2+2a23yz+2a13xz+2a12xy+2b1x+2b2y+2b3z+c

Q may be written represented by 3x3 matrix A,a vector b,and a scalar c Q(v) may be evaluated as v(Av)+2bv+c

– or in matrix form as:

[ ] [ ] czyx

bbbzyx

aaaaaaaaa

zyx

cQ

+⎥⎥⎦

⎤⎢⎢⎣

⎡+⎥

⎥⎦

⎤⎢⎢⎣

⎡⎥⎥⎦

⎤⎢⎢⎣

++=

321332313232212131211

2

2)( vbvAvv TT

Page 13: Rasterization Pipeline

13Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Optimal position for v Pick v to minimize average distance to planes Q(v)

– set dQ(v)/dv = 0, which yields: v = -A-1 b

Page 14: Rasterization Pipeline

14Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Q(v) measures flatness Isosurfaces of Q

– Are ellipsoids– Stretch in flat direction– Have eigenvalues proportional to the principal curvatures

Page 15: Rasterization Pipeline

15Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Texture map

Replace distant details with their images, pasted on simplified shapes or even no flat bill-boards

Page 16: Rasterization Pipeline

16Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Texture mapping

textureMode(NORMALIZED); PImage maya = loadImage(maya.jpg"); beginShape(QUADS); texture(maya); vertex(-1, 1, 1, 1, 1); vertex( 1, 1, 1, 0, 1); vertex( 1, -1, 1, 0, 0 ); vertex(-1, -1, 1, 1, 0); …endShape();

Page 17: Rasterization Pipeline

17Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Occlusion culling

Is ball containing an object hidden behind the triangle?

Page 18: Rasterization Pipeline

18Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Occlusion culling in urban walkthrough

From Peter Wonka Need only display a few facades--the rest is hidden

Page 19: Rasterization Pipeline

19Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Shadows / visibility duality Point light source

– Shadow (volume): set of points that do not see the light From-point visibility

– Occluded space: set of points hidden from the viewpoint

Area light source (assume flat for simplicity)– Umbra: set of points that do not see any light– Penumbra: set of points that see a portion of the light source– Clearing: set of points that see the entire light source

From-cell visibility (cell C)– Hidden space: set of points hidden from all points in C– Detectable space: set of points seen from at least one point in C– Exposed space: set of points visible from all points in C

Page 20: Rasterization Pipeline

20Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

From-point visibility What is visible from a given viewpoint

– Not from a given area

Usually computed at run-time for each frame– Should be fast– Or done in background before the user starts looking around

May be pre-computed for a set of important viewpoints– Can be slower– User will be invited to jump to these (street crossings)– Or to navigate along pre-computed paths (videos)

May be useful for pre-computing from-cell visibility– Which identifies all objects B that are invisible when the

viewpoint is in a cell A– The cell may be reduced to a trajectory (taxi metaphor)

Page 21: Rasterization Pipeline

21Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

From-point visibility

Viewpoint/light = {a} (a single point)

HIDDEN DETECTED CLEAR

Page 22: Rasterization Pipeline

22Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Zen break

The moon is a perfect ball It is full and perfectly clear You see it through your window You wonder about the meaning of life You trace its outline on the glass

Is is a circle?

Can you prove it?

Page 23: Rasterization Pipeline

23Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Nothing is perfect

In general, the outline of the moon is an ellipse Proof:

– The pencil of rays from your eye to the moon is a cone– The intersection of that cone with the window if a conic– If the moon is clear and visible through the window: it is an ellipse– When the window is orthogonal to the axis of the cone: it is a

circle

Page 24: Rasterization Pipeline

24Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Cherchez la lune

The moon is a ball B(c,r) of center c and radius r The occluder is a triangle with vertices d, e, and f Assume viewer is at point a Write the geometric formulae for testing whether the moon

is hidden behind the triangle

HIDDEN DETECTED CLEARde

f

c

Page 25: Rasterization Pipeline

25Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

When does a triangle appear clockwise?

When do the vertices d, e, f, of a triangle appear clockwise when seen from a viewpoint a?

clockwise de

f

counter-clockwiseed

f

Page 26: Rasterization Pipeline

26Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

A triangle appears clockwise when

The vertices d, e, f, of a triangle appear clockwise when seen from a viewpoint a when s(a,d,e,f) is true

Procedure s(a,d,e,f) {RETURN ad•(aeaf)>0}– ad•(aeaf) is a 3x3 determinant– It is called the mixed product (or the triple product)

clockwise

de

f

counter-clockwise

ed

f

a a

Page 27: Rasterization Pipeline

27Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Testing a point against a half-space?

Consider the plane through points d, e, and f– It splits space in 2 half-spaces

Consider the half-space H of all points that see d, e, f clockwise

How to test whether point c is in H?

clockwise

de

f

c

Page 28: Rasterization Pipeline

28Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Testing a point against a half-space

Consider the plane through points d, e, and f Consider the half-space H of all points that see d, e, f

clockwise A point c is in H when s(c,d,e,f)

s(c,d,e,f) {RETURN cd•(cecf)>0}

clockwise

de

f

c

Page 29: Rasterization Pipeline

29Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Is a point hidden by a triangle?

Is point c hidden from viewpoint a by triangle (d, e, f)?– Write down all the geometric test you need to perform

de

f

a

c

Page 30: Rasterization Pipeline

30Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Test whether a point is hidden by a triangle

To test whether c is hidden from a by triangle d, e, f do– IF NOT s(a,d,e,f) THEN swap d and e– IF NOT s(a,d,e,c) THEN RETURN FALSE– IF NOT s(a,e,f,c) THEN RETURN FALSE– IF NOT s(a,f,d,c) THEN RETURN FALSE– IF s(c,d,e,f) THEN RETURN FALSE– RETURN TRUE Clockwise from a

de

f

a

c

Page 31: Rasterization Pipeline

31Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Testing a ball against a half-space?

Consider the half-space H of all points that see (d, e, f) clockwise

When is a ball of center c and radius r in H?

Clockwise from a

de

f

c

Page 32: Rasterization Pipeline

32Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Testing a ball against a half-space

Consider the half-space H of all points that see (d, e, f) clockwise

A ball of center c and radius r is in H when:

ec • (edef) > r ||edef||

Clockwise from a

de

f

c

Page 33: Rasterization Pipeline

33Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Is the moon hidden by a triangle?

Is the ball of center c and radius r hidden from a by triangle with vertices d, e, and f?

Clockwise from ade

f

a

c

Page 34: Rasterization Pipeline

34Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Is the moon hidden by a triangle?

To test whether the ball of center c and radius r hidden from a by triangle with vertices d, e, and f do:– IF NOT s(a,d,e,f) THEN swap d and e– IF ac • (adae) < r || adae || THEN RETURN FALSE– IF ac • (aeaf) < r || aeaf || THEN RETURN FALSE– IF ac • (afad) < r || afad || THEN RETURN FALSE– IF ec • (edef) < r || edef || THEN RETURN FALSE– RETURN TRUE

Explain what each line tests Are these test correct? Are they sufficient?

Clockwise from ade

f

a

c

Page 35: Rasterization Pipeline

35Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Is the moon hiding a triangle?

Triangle d, e, f is hidden from viewpoint a by a ball of center c and radius r when its 3 vertices are (hidden).– Proof?– How to test it?

Hidden moond

f

c

Hidden triangle

d

f

c

ee

Page 36: Rasterization Pipeline

36Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

When is a planar set A convex?

seg(p,q) is the line segment from p to qA is convex ( pA qA seg(p,q)A )

pp qq

ppqq

pp

qq

Page 37: Rasterization Pipeline

37Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

What is the convex hull of a set A?

The convex hull H(A) is the intersection of all convex sets that contain A.

Page 38: Rasterization Pipeline

38Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Is a convex occluder hiding a polyhedron?

A polyhedron P is hidden by a convex occluder O if all of its vertices are– Proof?– Is a subdivision surface hidden if its control vertices are?

We do not need to test all of the vertices– Only those of a container (minimax box, bounding ball, convex

hull)• Proof?

– Only those on the silhouette of a convex container• Proof?

What if the occluder is not convex?– Can it still work?

Page 39: Rasterization Pipeline

39Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Strategies for non-convex occluders?

What if O is not convex?– replace O by an interior ball

• Not easy to compute a (nearly) largest ball inside O• The average of the vertices of O may be outside of O

– replace O by an interior axis-aligned box• Not easy to compute a largest box inside

– replace O by a convex set it contains• O may be too thin

Andujar, Saona NavazoCAD, 32 (13), 2000

Page 40: Rasterization Pipeline

40Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

The Hoop principle

The occluder does not have to be convex, provided that a portion of its surface appears convex to the viewer and that the object is behind it.

Page 41: Rasterization Pipeline

41Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Hoop from non-convex occluders

Pick a candidate occluder S– large triangle mesh – close to the viewer

Select a set D of triangles of S whose border C is a hoop:– single loop– that has a convex projection on the screen

Build a shield O– on plane behind D– bounded by projection of C

O is a convex occluder– anything hidden by O– is hidden by D– and hence by S– sure?

OCD

S

Page 42: Rasterization Pipeline

42Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

When does a 3D polyloop appear convex?

Each pair of consecutive edges defines a linear half-space from where their common vertex appears convex.

The portion of space from which a loop C of edges appears convex is the intersection of these half-spaces or of their complements.

Page 43: Rasterization Pipeline

43Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Two strategies for building hoops

Grow a patch D on the surface S, or Grow a curve C on the boundary of interior octree cells

– simplify it, ensuring that the simplified border lies inside the solid

Page 44: Rasterization Pipeline

44Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Testing against a hoop

Given a hoop C, we can easily test whether the viewpoint or a whole cell sees it as convex.– Test whether the viewpoint (or whether all the vertices of the

cell,) lie in the intersections of all half-spaces.

But this is not sufficient if we want to construct a shield from it.– Why not?We must ensure that the shield O is behind the portion D

of the original surface S that is bounded by C.

Page 45: Rasterization Pipeline

45Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Ensuring that O is behind D

Store with the hoop the thickness

(depth of projection of D on the normal to C)

Compute normal using sum of cross-products

Use it to place the shield O sufficiently behind the hoop C so that it does not intersect D

C

D

n O

CD

n O

Page 46: Rasterization Pipeline

46Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Ensuring that D occludes O

Store with the hoop the thickness

(range of projection of D on the normal n to C)

Ensure that the viewer is not in that range

… or shoot a ray from viewer to O and check parity of hits with D

CD

n O

CD

n O

Page 47: Rasterization Pipeline

47Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Growing a hoop around the moon

Find the first intersection, i, between ac and the mesh of S Consider the triangle (d, e, f) of S that contains i If the triangle hides the moon, we are done (return hidden) Otherwise grow it by adding neighboring triangles

– Let C be the boundary of this patch D of triangles– Identify bad vertices of C that appear in front of the moon– Add triangles to make these vertices interior– Ensuring that C remains a simple loop– Stop when C has no bad vertices (return hidden)– or when you can’t grow (return not hidden)

Test the surface patch D bounded by C– Count intersections with ac– If odd then return hidden

Clockwise from ade

f

a

c

Page 48: Rasterization Pipeline

48Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Cell-to-cell visibility

Now, let us look at the problem of pre-computing whether any portion of a cell A is visible from a viewpoint in cell B.

Why? (Applications?)

Page 49: Rasterization Pipeline

49Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Notation and assumptions

Two sets, A and B Two points aA, bB O is the occluder A, B, and O are disjoint ab is the line segment from a to b a–b O ab = , a sees b (ignore self-occlusion) a | b O ab ≠ , a is occluded from by O

a b

BA

O

a b

BA

O

Page 50: Rasterization Pipeline

50Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

(Jarek’s) Terminology and definitions? HIDDEN: HO(A,B)

– B is entirely hidden from A by O– ?

DETECTED: DO(A,B)– B can be detected from any point of A– ?

GUARDED: GO(A,B)– B can be guarded from a single point of A– ?

CLEAR: CO(A,B)– B can be guarded from any point of A– ?

a bBA O

BA

BAO

a bBA O

O

Page 51: Rasterization Pipeline

51Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

HIDDEN: HO(A,B)– B is entirely hidden from A– HO(A,B) a, b: a | b

DETECTED: DO(A,B)– B can be detected from any point of A– DO(A,B) a, b: a–b

GUARDED: GO(A,B)– B can be guarded from some point of A– GO(A,B) a, b: a–b

CLEAR: CO(A,B)– B can be guarded from any point of A– CO(A,B) a, b: a–b

Definitions

a bBA O

BAO

BAO

a bBA O

Page 52: Rasterization Pipeline

52Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Properties (and proofs?)

CO(A,B) CO(B,A) and HO(A,B) HO(B,A) CO(A,B) GO(A,B) and GO(B,A) GO(A,B) DO(B,A) proof ?

a bBA O

HO(A,B) a, b: a | b

BAO

DO(A,B) a, b: a–b

BAO

GO(A,B) a, b: a–b

a bBA O

CO(A,B) a, b: a–b

Page 53: Rasterization Pipeline

53Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Properties and proofs

CO(A,B) CO(B,A) and HO(A,B) HO(B,A) CO(A,B) GO(A,B) and CO(A,B) GO(B,A) GO(A,B) DO(B,A) proof

GO(A,B) a, b: a–b b, a: b–a DO(B,A)

a bBA O

HO(A,B) a, b: a | b

BAO

DO(A,B) a, b: a–b

BAO

GO(A,B) a, b: a–b

a bBA O

CO(A,B) a, b: a–b

Page 54: Rasterization Pipeline

54Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Counter-example?

Draw O such that none of the 8 relations hold

a bBA O

HO(A,B) a, b: a | b

BAO

DO(A,B) a, b: a–b

BAO

GO(A,B) a, b: a–b

a bBA O

CO(A,B) a, b: a–b

BAO?

HO(A,B), GO(A,B), DO(A,B), CO(A,B), HO(B,A), GO(B,A), DO(B,A), CO(B,A) are all false

Page 55: Rasterization Pipeline

55Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Counter-example?

Draw O such that none of the 8 relations hold

a bBA O

HO(A,B) a, b: a | b

BAO

DO(A,B) a, b: a–b

BAO

GO(A,B) a, b: a–b

a bBA O

CO(A,B) a, b: a–b

HO(A,B), GO(A,B), DO(A,B), CO(A,B), HO(B,A), GO(B,A), DO(B,A), CO(B,A) are all false

a b BAO

Page 56: Rasterization Pipeline

56Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Cell-to-cell visibility (C2CV)

Viewpoint is in cell A Small objects in cell B need not be rendered if cell A is occluded from cell B by some surface S:

HS(A,B)?

Page 57: Rasterization Pipeline

57Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Terminology Assume that surface S, cell A, and cell B are disjoint? R = convex hull of AB (contains all rays from A to B) T = tube (boundary of R not on A or B) C connected component of ST

Page 58: Rasterization Pipeline

58Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

The Occlusion TheoremThe surface S occludes cell A from cell B, if and only if:

• There exists a connected component, C, of ST that is bounding a portion D of S and has no boundary in the interior of R.

2. Given an arbitrary (non-singular) ray, ab, from aA to bB, ab has an odd number of intersections with DC.

Page 59: Rasterization Pipeline

59Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Proof

Page 60: Rasterization Pipeline

60Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Various cases

Page 61: Rasterization Pipeline

61Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

ShieldTester for triangle meshes

Obtain an edge eAB of T from a vertex of A to a vertex of BIF eAB S = THEN RETURN (“visible”)FOR EACH triangle x of S that is stabbed by eAB DO { Start a WALK that traces a connected component C of ST IF the WALK did not run into a boundary of S THEN {

INVADE the portion of S to the left of the triangles crossed by the WALK along C

IF the invaded portion has no hole THEN IF the number of triangles that were stabbed by eAB

and visited by the WALK and the INVADE is odd THEN RETURN (“occluded”)}

RETURN (“undecided”)

Page 62: Rasterization Pipeline

62Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Walking one step

Page 63: Rasterization Pipeline

63Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Turning left on S

Page 64: Rasterization Pipeline

64Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Invade process

Page 65: Rasterization Pipeline

65Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Hot edges

Page 66: Rasterization Pipeline

66Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Results

Page 67: Rasterization Pipeline

67Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Is the moon hidden by a tree? Can’t grow a patch of edge-connected triangles

– Leaves/branches are small and disjoint Use approximate shadow fusion

– Render tree(s)– Mark area of rendered pixels– Construct big rectangle inside it (how?)– Let M= max(z-buffer inside rectangle)– Push back rectangle to z=M– Use it as occluder for other objects (behind the tree)

Accuracy depends on screen resolution– Can be improved by multiple passes (zoomed 1/4 of image each)

Use bounding spheres around objects to test them– Conservative part– Use a hierarchy of bounding sphere (hierarchical z-buffer)

Page 68: Rasterization Pipeline

68Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Occluded volumes

Assume that we have an area light source or a cell containing the viewpoint that is a polyhedron

Assume that all occluders are polyhedra Can we compute the hidden volume (umbra)?

Difficult because it is bounded by curved surfaces

Page 69: Rasterization Pipeline

69Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

What you must remember

How to build a rasterizer How to accelerate it

Page 70: Rasterization Pipeline

70Georgia Tech, IIC, GVU, 2006MAGIC MAGIC LabLab

http://www.gvu.gatech.edu/~jarekJarek Rossignac

Examples of questions for exams

When is it no-longer useful to simplify the model? What are the 7 acceleration techniques? Which ones reduce per-vertex cost? How much savings should you expect from each technique?