Top Banner
Object Modeling Recap Computer Graphics Lecture 6 Dr. Marc Eduard Frˆ ıncu West University of Timisoara April 7, 2020 1 / 24
36

Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Aug 16, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Computer GraphicsLecture 6

Dr. Marc Eduard Fr̂ıncuWest University of Timisoara

April 7, 2020

1 / 24

Page 2: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Outline

1 Object ModelingProcedural ModelingSolid Modeling

2 Recap

2 / 24

Page 3: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Object Modeling

Why & how

need a method of representing/manipulating 3D objects in a computer (3D →2D image via projections)

surface (frontiers) & solid modeling (union of elementary volumes)

construction:interactive modeling tools (e.g., CAD programs. . . )scanning tools (e.g., CAT, MRI, . . . )computer vision (e.g., stereo, vision)procedural generation (e.g., sweeps, fractals, grammars)

How much information is needed?lines & curves not always enough for reconstruction → ambiguous, extra informationnot necessarily useful

3 / 24

Page 4: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Object Modeling

Why & how

need a method of representing/manipulating 3D objects in a computer (3D →2D image via projections)

surface (frontiers) & solid modeling (union of elementary volumes)

construction:interactive modeling tools (e.g., CAD programs. . . )scanning tools (e.g., CAT, MRI, . . . )computer vision (e.g., stereo, vision)procedural generation (e.g., sweeps, fractals, grammars)

How much information is needed?

lines & curves not always enough for reconstruction → ambiguous, extra informationnot necessarily useful

3 / 24

Page 5: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Object Modeling

Why & how

need a method of representing/manipulating 3D objects in a computer (3D →2D image via projections)

surface (frontiers) & solid modeling (union of elementary volumes)

construction:interactive modeling tools (e.g., CAD programs. . . )scanning tools (e.g., CAT, MRI, . . . )computer vision (e.g., stereo, vision)procedural generation (e.g., sweeps, fractals, grammars)

How much information is needed?lines & curves not always enough for reconstruction → ambiguous, extra informationnot necessarily useful

3 / 24

Page 6: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Object Modeling

4 / 24

Page 7: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Procedural Modeling

Procedural Modeling

Procedural modeling

– describe 3D models algorithmically

repeated models

self-similar processes

random processes

advantages:automatic generationconcise representationparameterized classes of models

5 / 24

Page 8: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Procedural Modeling

Procedural Modeling

Sweeps

Example: shell generation

θi+1 = ti + ∆t = θi + ∆θ(arithmetic progression)

ri+1 = r0ξtir ξ

∆tr = riλr (geometric

progression)

zi+1 = z0ξtiz ξ

∆tz = ziλz

(geometric progression)

6 / 24

Page 9: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Procedural Modeling

Procedural Modeling

Fractals

deterministic: parts are scaledcopies of original

nice shapes

statistical: parts have samestatistical properties as original

3D terrains3D plants

Figure: Deterministic fractalhttp://www.cs.princeton.edu/courses/archive/spr03/cs426/#Coursework

Figure: Statistical fractalhttp://www.cs.princeton.edu/courses/archive/spr03/cs426/#Coursework

7 / 24

Page 10: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Procedural Modeling

Procedural Modeling

Grammars

– useful for generating plantsExample: tree generation

Tree → Branch Tree | LeafBranch→ Cylinder | [Tree]

Figure: Tree generationhttp://www.cs.princeton.edu/courses/archive/spr03/cs426/#Coursework

8 / 24

Page 11: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Solid Modeling

Solid Modeling

Representation rules

1 the representation field should be large enough

2 the representation should be non-ambiguous and accurate

3 no invalid representations should be allowed

4 valid representations should always be easy to create

5 efficient boolean operations: union, intersection, difference

6 closeness (invariant) to an affine transformation

7 compact (memory efficient) representation

8 fast algorithms for computing the physical properties of the representation

∃ representation following ALL rules above?NO ⇒ compromise

9 / 24

Page 12: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Solid Modeling

Solid Modeling

Representation rules

1 the representation field should be large enough

2 the representation should be non-ambiguous and accurate

3 no invalid representations should be allowed

4 valid representations should always be easy to create

5 efficient boolean operations: union, intersection, difference

6 closeness (invariant) to an affine transformation

7 compact (memory efficient) representation

8 fast algorithms for computing the physical properties of the representation

∃ representation following ALL rules above?

NO ⇒ compromise

9 / 24

Page 13: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Solid Modeling

Solid Modeling

Representation rules

1 the representation field should be large enough

2 the representation should be non-ambiguous and accurate

3 no invalid representations should be allowed

4 valid representations should always be easy to create

5 efficient boolean operations: union, intersection, difference

6 closeness (invariant) to an affine transformation

7 compact (memory efficient) representation

8 fast algorithms for computing the physical properties of the representation

∃ representation following ALL rules above?NO ⇒ compromise

9 / 24

Page 14: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Solid Modeling

Solid Modeling

Representation schemes

1 boundary representation (reducing the dimension)

2 pure primitive instantiation (parameterized prototypes)

3 sweeping method (moving objects, trajectory)

4 enumerating the spatial occupancy (voxels = volumetric pixels)

5 decomposing in cells (gluing elementary volumes)

6 constructive solid geometry (operations with elementary volumes)

7 multiple representations (particle systems)

10 / 24

Page 15: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Solid Modeling

Solid Modeling

Boundary representations

point list

lines:transversal sections: points from the same sections are joined to form section contourwireframe: object represented by line and curve segments (good for for animations, badfor computing areas, volumes, mass, . . . )

explicit segments: extremities of the coordinatesimplicit segments: pair of indices to a list of verticespolygonal linestransversal sections & longitudinal lines

11 / 24

Page 16: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Solid Modeling

Solid Modeling

Boundary representations

polygonsexplicit: store vertices in the order they appear: V = {V1,V2, . . . ,Vn}

duplicate coordinates, double drawing of edges, problem finding concurrent edgespointers to a list of vertex indices: VP1 = {1, 2, 4}, . . . , P = {VP1, . . . ,VPk}double drawing of edges, problem finding concurrent edgespointers to a list of edges: E1 = {V1,V2,P1} ,. . . , P = {E1, . . . , Em}problem finding concurrent edges (we draw lines NOT polygons)

find interior?store vertices in a given order (clock-wise, counter clock-wise)draw edge only from a vertex with a smaller index to one with a greater index value

12 / 24

Page 17: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Solid Modeling

Solid Modeling

Boundary representations

polygonsexplicit: store vertices in the order they appear: V = {V1,V2, . . . ,Vn}duplicate coordinates, double drawing of edges, problem finding concurrent edges

pointers to a list of vertex indices: VP1 = {1, 2, 4}, . . . , P = {VP1, . . . ,VPk}double drawing of edges, problem finding concurrent edgespointers to a list of edges: E1 = {V1,V2,P1} ,. . . , P = {E1, . . . , Em}problem finding concurrent edges (we draw lines NOT polygons)

find interior?store vertices in a given order (clock-wise, counter clock-wise)draw edge only from a vertex with a smaller index to one with a greater index value

12 / 24

Page 18: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Solid Modeling

Solid Modeling

Boundary representations

polygonsexplicit: store vertices in the order they appear: V = {V1,V2, . . . ,Vn}duplicate coordinates, double drawing of edges, problem finding concurrent edgespointers to a list of vertex indices: VP1 = {1, 2, 4}, . . . , P = {VP1, . . . ,VPk}

double drawing of edges, problem finding concurrent edgespointers to a list of edges: E1 = {V1,V2,P1} ,. . . , P = {E1, . . . , Em}problem finding concurrent edges (we draw lines NOT polygons)

find interior?store vertices in a given order (clock-wise, counter clock-wise)draw edge only from a vertex with a smaller index to one with a greater index value

12 / 24

Page 19: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Solid Modeling

Solid Modeling

Boundary representations

polygonsexplicit: store vertices in the order they appear: V = {V1,V2, . . . ,Vn}duplicate coordinates, double drawing of edges, problem finding concurrent edgespointers to a list of vertex indices: VP1 = {1, 2, 4}, . . . , P = {VP1, . . . ,VPk}double drawing of edges, problem finding concurrent edges

pointers to a list of edges: E1 = {V1,V2,P1} ,. . . , P = {E1, . . . , Em}problem finding concurrent edges (we draw lines NOT polygons)

find interior?store vertices in a given order (clock-wise, counter clock-wise)draw edge only from a vertex with a smaller index to one with a greater index value

12 / 24

Page 20: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Solid Modeling

Solid Modeling

Boundary representations

polygonsexplicit: store vertices in the order they appear: V = {V1,V2, . . . ,Vn}duplicate coordinates, double drawing of edges, problem finding concurrent edgespointers to a list of vertex indices: VP1 = {1, 2, 4}, . . . , P = {VP1, . . . ,VPk}double drawing of edges, problem finding concurrent edgespointers to a list of edges: E1 = {V1,V2,P1} ,. . . , P = {E1, . . . , Em}

problem finding concurrent edges (we draw lines NOT polygons)

find interior?store vertices in a given order (clock-wise, counter clock-wise)draw edge only from a vertex with a smaller index to one with a greater index value

12 / 24

Page 21: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Solid Modeling

Solid Modeling

Boundary representations

polygonsexplicit: store vertices in the order they appear: V = {V1,V2, . . . ,Vn}duplicate coordinates, double drawing of edges, problem finding concurrent edgespointers to a list of vertex indices: VP1 = {1, 2, 4}, . . . , P = {VP1, . . . ,VPk}double drawing of edges, problem finding concurrent edgespointers to a list of edges: E1 = {V1,V2,P1} ,. . . , P = {E1, . . . , Em}problem finding concurrent edges (we draw lines NOT polygons)

find interior?store vertices in a given order (clock-wise, counter clock-wise)draw edge only from a vertex with a smaller index to one with a greater index value

12 / 24

Page 22: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Solid Modeling

Solid Modeling

Boundary representations

polygonsexplicit: store vertices in the order they appear: V = {V1,V2, . . . ,Vn}duplicate coordinates, double drawing of edges, problem finding concurrent edgespointers to a list of vertex indices: VP1 = {1, 2, 4}, . . . , P = {VP1, . . . ,VPk}double drawing of edges, problem finding concurrent edgespointers to a list of edges: E1 = {V1,V2,P1} ,. . . , P = {E1, . . . , Em}problem finding concurrent edges (we draw lines NOT polygons)

find interior?store vertices in a given order (clock-wise, counter clock-wise)draw edge only from a vertex with a smaller index to one with a greater index value

12 / 24

Page 23: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Solid Modeling

Solid Modeling

Boundary representations

polyhedrons: solid bounded by a set of polygons ⊕ set of constraintsw/o holesrepresentation:

vertices stored in a certain orderpolygonal faces stored through indices to a list of verticesedges stored through pairs of indices pointing to the vertex list

13 / 24

Page 24: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Solid Modeling

Solid Modeling

Primitive instantiation

define a set of 3D solids relevant for the scene

primitives may be parameterized, i.e., family with members varying in a smallnumber of characteristics

represent complex objects through hierarchies

14 / 24

Page 25: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Solid Modeling

Solid Modeling

Representation through sweeping (movement)

translational volume ⇒ 2D/3D object from a linear trajectory

rotational volume ⇒ 2D/3D object from rotation around an axis

general cylinder ⇒ 2D object

in general:objects can change shape and orientationtrajectory can arbitrary

15 / 24

Page 26: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Solid Modeling

Solid Modeling

Voxels

– partition space into an uniform grid volume whose cells are called voxels ,i.e,volumetric pixels:

occupancy

color

density

temperature

. . .

Figure: Voxel partitioned space:http://www.cs.princeton.edu/courses/archive/spr03/cs426/#Coursework

16 / 24

Page 27: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Solid Modeling

Solid Modeling

Voxels

advantages:simple, intuitive, unambiguoussame complexity for all objectsnatural acquisition for some applications, e.g., MRI, CATtrivial boolean operations (

⋃,⋂

, \)

disadvantages:approximativenot affine invariantlarge storage requirements, i.e., O(n3)expensive display

17 / 24

Page 28: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Solid Modeling

Solid Modeling

Voxels

advantages:simple, intuitive, unambiguoussame complexity for all objectsnatural acquisition for some applications, e.g., MRI, CATtrivial boolean operations (

⋃,⋂

, \)

disadvantages:approximativenot affine invariantlarge storage requirements, i.e., O(n3)expensive display

17 / 24

Page 29: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Solid Modeling

Solid Modeling

Quadtrees & octrees

– refine resolution of voxels hierarchically

18 / 24

Page 30: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Solid Modeling

Solid Modeling

Quadtrees & octrees

Figure: Quadtree based surface http://www.infinitecode.com/?view_post=23

19 / 24

Page 31: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Solid Modeling

Solid Modeling

Octrees

advantages:combinations very simplefast renderingspatial search possible

disadvantages:inexact representationlow image qualityrestricted transformationshigh memory costproblems in finding the neighbor of a node

20 / 24

Page 32: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Solid Modeling

Solid Modeling

Octrees

advantages:combinations very simplefast renderingspatial search possible

disadvantages:inexact representationlow image qualityrestricted transformationshigh memory costproblems in finding the neighbor of a node

20 / 24

Page 33: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Solid Modeling

Solid Modeling

Binary space partitioning

partition a convex region by a hyperplane

single operation → two child nodes added as leaf nodes:left child: interiorright child: exterior

point classification (in or out) can be easily done

21 / 24

Page 34: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Solid Modeling

Solid Modeling

Constructive solid geometry

– simple primitives ⊕ boolean operations⇒tree with internal (operations) and terminal(primitives) nodes

can be created through CAD/CAM

22 / 24

Page 35: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Solid Modeling

Solid Modeling

Multiple representations

– good for describing objects that changeover time → particle systems:

examples:cloudssmokefirefireworkswater(fall). . .

a particle:position, speed & accelerationlife & fading factorcolor, material & texture. . .

Figure: Smoke effect: Call of Duty 2

Figure: Explosion effect: Star Trek II

23 / 24

Page 36: Computer Graphics Lecture 6marc.frincu/cg/c6.pdf · computer vision (e.g., stereo, vision) procedural generation (e.g., sweeps, fractals, grammars) How much information is needed?

Object Modeling Recap

Lecture Recap

24 / 24