3d polygons - ucrvbz/cs130f14-06.pdf2 3 • to do this, we can project the 3d polygon into 2d and...

21
1 1 Surface and Solid Geometry 2 • Once we know our plane equation: Ax + By + Cz + D = 0, we still need to manage the truncation which leads to the polygon itself Functionally, we will need to do this to know if a point lies in a polygon or not, for example 3D Polygons

Upload: vukiet

Post on 30-Jun-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 3D Polygons - UCRvbz/cs130f14-06.pdf2 3 • To do this, we can project the 3D polygon into 2D and see if the point is in the 2d using the inside test (xi,yi,zi) (xi’,yi’) z x y

1

1

Surface and SolidGeometry

2

• Once we know our plane equation:

Ax + By + Cz + D = 0,

we still need to manage the truncation which leads to the polygon itself

Functionally, we will need to

do this to know if a point

lies in a polygon or not,

for example

3D Polygons

Page 2: 3D Polygons - UCRvbz/cs130f14-06.pdf2 3 • To do this, we can project the 3D polygon into 2D and see if the point is in the 2d using the inside test (xi,yi,zi) (xi’,yi’) z x y

2

3

• To do this, we can project the 3D polygon into 2D and see if the point is in the 2d

using the inside test

(xi,yi,zi)

(xi’,yi’)

z

x

y

3D Polygons

4

•Project 3d to 2d based on largest of A,B,C

(xi,yi,zi)

(xi’,yi’)

z

x

y

This example:

Z (or C) is principal component of N, normal so project on to xy-plane

3D Polygons

Page 3: 3D Polygons - UCRvbz/cs130f14-06.pdf2 3 • To do this, we can project the 3D polygon into 2D and see if the point is in the 2d using the inside test (xi,yi,zi) (xi’,yi’) z x y

3

5

Z-buffer

•For 3D with multiple polygons, must deal with visibility

imageplane

Project vertices into image plane and with projected vertex include depth in additional depth- or Z-buffer

6

Z-buffer

Scan convert each projected polygon:

For each polygon in scene

project verticies

for each pixel inside poly

calculate z

if z < closest

draw into frame buffer

update z buffer

Page 4: 3D Polygons - UCRvbz/cs130f14-06.pdf2 3 • To do this, we can project the 3D polygon into 2D and see if the point is in the 2d using the inside test (xi,yi,zi) (xi’,yi’) z x y

4

7

Z-buffer

•How do we calculate z for buffer, quickly?

z = (-Ax -By -D)/C from plane eq.

Same scanline (x + 1):

z' = (-A(x + 1) - By - D)/C or

z' = z - A/C

z z'

8

Z-buffer

•How do we calculate z for buffer, quickly?

•For the next scanline, following edge coherence:

xs+1 = xs + 1/m, ys+1 = ys +1

plus zs = (-Axs -Bys -D)/C,

zs+1 = zs - (A/m + B)/C

z z'

zs+1

Page 5: 3D Polygons - UCRvbz/cs130f14-06.pdf2 3 • To do this, we can project the 3D polygon into 2D and see if the point is in the 2d using the inside test (xi,yi,zi) (xi’,yi’) z x y

5

9

Z-buffer

•Z-buffering is very common approach, also often accelerated with hardware

•OpenGL embeds this approach

3D Polygon Image PixelsGRAPHICS PIPELINE

10

Page 6: 3D Polygons - UCRvbz/cs130f14-06.pdf2 3 • To do this, we can project the 3D polygon into 2D and see if the point is in the 2d using the inside test (xi,yi,zi) (xi’,yi’) z x y

6

11

Surface Geometry

12

Surfaces

• Interpolating points for 2 parameters, u and v

Bi-cubic patch

Page 7: 3D Polygons - UCRvbz/cs130f14-06.pdf2 3 • To do this, we can project the 3D polygon into 2D and see if the point is in the 2d using the inside test (xi,yi,zi) (xi’,yi’) z x y

7

Subdivision Surfaces

Refinement

Types of Subdivision

• Interpolating Schemes- Limit Surfaces/Curve will pass through original set

of data points.

•Approximating Schemes- Limit Surface will not necessarily pass through the

original set of data points.

Page 8: 3D Polygons - UCRvbz/cs130f14-06.pdf2 3 • To do this, we can project the 3D polygon into 2D and see if the point is in the 2d using the inside test (xi,yi,zi) (xi’,yi’) z x y

8

Subdivision Surfaces

• Approach Limit Curve Surface through an Iterative Refinement Process.

Refinement 1 Refinement 2

Refinement ∞

Interpolation example

A Primer: Chaiken’s Algorithm (approximating surface)

213

212

4

1

4

34

3

4

1

PPQ

PPQ

325

324

4

1

4

34

3

4

1

PPQ

PPQ

101

100

4

1

4

34

3

4

1

PPQ

PPQ

Apply Iteratively

Limit ‘Curve’ Surface

P0

P1

P2

P3

Q0

Q1

Q2Q3

Q4

Q5

Subdivision Surfaces

Page 9: 3D Polygons - UCRvbz/cs130f14-06.pdf2 3 • To do this, we can project the 3D polygon into 2D and see if the point is in the 2d using the inside test (xi,yi,zi) (xi’,yi’) z x y

9

Surface Example

Surface evolution with subdivision level

Limit surface

Catmull-Clark Subdivision (1978)

n

ivn

f1

1FACE

42121 ffvv

e

EDGE

VERTEX

j

jj

jii fn

en

vn

nv

221

112

Page 10: 3D Polygons - UCRvbz/cs130f14-06.pdf2 3 • To do this, we can project the 3D polygon into 2D and see if the point is in the 2d using the inside test (xi,yi,zi) (xi’,yi’) z x y

10

Subdivision used in production

• Traditionally B-spline patches have been used in production for character animation.

• Difficult to control B-spline patch density in character modelling.

Subdivision in Character AnimationTony Derose, Michael Kass, Tien Troung(SIGGRAPH ’98)

(Geri’s Game, Pixar 1998)

Solid ConstructiveGeometry

Page 11: 3D Polygons - UCRvbz/cs130f14-06.pdf2 3 • To do this, we can project the 3D polygon into 2D and see if the point is in the 2d using the inside test (xi,yi,zi) (xi’,yi’) z x y

11

21

• Inherently 3D, geometric elements describe sets of spaces enclosed by 2D boundaries

•For example, a solid sphere is the simplest solid element. Other simple primitives include the cube, cylinder, cone, and torus

Solid geometry

22

•Other objects are defined by combinations of primitives.

•An entire math has been explored related to the combination of solid primitives called constructive solid geometry (CSG)

•With CSG, complex shapes may be generated from operations formed on primitives

Solid geometry

Page 12: 3D Polygons - UCRvbz/cs130f14-06.pdf2 3 • To do this, we can project the 3D polygon into 2D and see if the point is in the 2d using the inside test (xi,yi,zi) (xi’,yi’) z x y

12

23

•Boolean operators are defined tools for combining solid geometry for CSG

•These perform group operations on the points included in the solid primitives

•They are: - Union

- Subtraction

- Intersection

•These bool-op's are implemented in Maya

Solid geometry

24

•Boolean operator: Union combines two elements into a single one

Solid geometry

Page 13: 3D Polygons - UCRvbz/cs130f14-06.pdf2 3 • To do this, we can project the 3D polygon into 2D and see if the point is in the 2d using the inside test (xi,yi,zi) (xi’,yi’) z x y

13

25

•Boolean operator: Union combines two elements into a single one

Solid geometry

26

•Boolean operator: Subtract take the difference between two elements

Solid geometry

Page 14: 3D Polygons - UCRvbz/cs130f14-06.pdf2 3 • To do this, we can project the 3D polygon into 2D and see if the point is in the 2d using the inside test (xi,yi,zi) (xi’,yi’) z x y

14

27

•Boolean operator: Subtract take the difference between two elements

Solid geometry

28

•Boolean operator: Subtract take the difference between two elements

Solid geometry

Page 15: 3D Polygons - UCRvbz/cs130f14-06.pdf2 3 • To do this, we can project the 3D polygon into 2D and see if the point is in the 2d using the inside test (xi,yi,zi) (xi’,yi’) z x y

15

29

•Boolean operator: Subtract

Solid geometry

30

•Boolean operator: Intersection finds the common points in the given primitives

Solid geometry

Page 16: 3D Polygons - UCRvbz/cs130f14-06.pdf2 3 • To do this, we can project the 3D polygon into 2D and see if the point is in the 2d using the inside test (xi,yi,zi) (xi’,yi’) z x y

16

31

32

Solid ConstructiveGeometry

Page 17: 3D Polygons - UCRvbz/cs130f14-06.pdf2 3 • To do this, we can project the 3D polygon into 2D and see if the point is in the 2d using the inside test (xi,yi,zi) (xi’,yi’) z x y

17

33

Solid geometryCSGTree

Graph for hierarchyof Booleanoperations

Often usedfor CAD andMech Eng

34

Solid geometry

Adams & Dutre 2003

Page 18: 3D Polygons - UCRvbz/cs130f14-06.pdf2 3 • To do this, we can project the 3D polygon into 2D and see if the point is in the 2d using the inside test (xi,yi,zi) (xi’,yi’) z x y

18

35

Surfaces splitting

Split along the intersection curve

Label each part of the object (inside/outside)

A∩B

A A C A

A C ACA

36

Example

Page 19: 3D Polygons - UCRvbz/cs130f14-06.pdf2 3 • To do this, we can project the 3D polygon into 2D and see if the point is in the 2d using the inside test (xi,yi,zi) (xi’,yi’) z x y

19

37

Intersection curve

Compute approximate intersection of both mesh sets

38

Split and label operations

Interior faces

Exterior faces

Page 20: 3D Polygons - UCRvbz/cs130f14-06.pdf2 3 • To do this, we can project the 3D polygon into 2D and see if the point is in the 2d using the inside test (xi,yi,zi) (xi’,yi’) z x y

20

39

Intersection Union A - B B - A

Reconstruction

Depending on boolean operation: Mergeoperation along the intersection curve

40

WHY?Solid Constructive

Geometry

Page 21: 3D Polygons - UCRvbz/cs130f14-06.pdf2 3 • To do this, we can project the 3D polygon into 2D and see if the point is in the 2d using the inside test (xi,yi,zi) (xi’,yi’) z x y

21

41

Solid ConstructiveGeometry

42

Solid ConstructiveGeometry