3d object representations 2005, fall. course syllabus image processing modeling rendering animation

Post on 28-Dec-2015

220 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

3D Object Representations

2005, Fall

Course Syllabus

Image Processing Modeling Rendering Animation

Modeling

How do we.. Represent 3D objects in a computer? Construct representations quickly and/or automatically with

a computer? Manipulate 3D objects with a computer?

Different methods for different object representations

Representations of Geometry

3D Representations provide the foundations for Computer Graphics, Computer-Aided Geometric Design,

Visualization, Robotics

They are languages for describing geometrySemantics Syntax

values data structures

operations algorithms

Data structures determine algorithms!

3D Object Representations

Raw data Point cloud Range Image Polygon soup

Surface Mesh Subdivision Parametric Implicit

Solids Voxels BSP tree CSG Sweep

High-level structures Scene graph Skeleton Application specific

Point Cloud

Unstructured set of 3D point samples Acquired from range finer, computer vision, etc

Range Image

Set of 3D points mapping to pixels of depth Image Acquired from range scanner

Point Sample Rendering

Point Sample Rendering an object representation

consisting of a dense set of surface point samples, which contain color, depth and normal information

Point Sample Rendering (Surfel)

Polygon Soup

Unstructured set of polygons Many polygon models are just lists of polygons Created with interactive modeling systems?

Polygon Soup Evaluation

What are the advantages? It’s very simple to read, write, transmit, etc. A common output format from CAD modelers The format required for OpenGL

BIG disadvantage: No higher order information No information about neighbors No open/closed information No guarantees on degeneracies

3D Object Representations

Raw data Point cloud Range Image Polygon soup

Surface Mesh Subdivision Parametric Implicit

Solids Voxels BSP tree CSG Sweep

High-level structures Scene graph Skeleton Application specific

Curved Surfaces

Motivation Exact boundary representation for some objects More concise representation than polygonal mesh

Surfaces

What makes good surface representation? Accurate Concise Intuitive specification Local support Affine invariant Arbitrary topology Guaranteed continuity Natural parameterization Efficient display Efficient intersections

Mesh

Connected set of polygons (usually triangles) May not be closed

Subdivision Surface

Coarse mesh & subdivision rule Define smooth surfaces as limit of sequence of refinements

Subdivision (Smooth Curve)Subdivision Surface

Subdivision Surface

Key Questions How refine mesh?

• Aim for propertied like smoothness

• Loop Subdivision Scheme

How store mesh?• Aim for efficiency for implementing subdivision rules

Subdivision Surface

Advantages Simple method for describing complex surfaces Relatively easy to implement Arbitrary topology Local support Guaranteed continuity Multiresolution

Difficulties Intuitive specification Parameterization Intersections

Parametric Surface

Boundary defined by parametric functions x = fx (u, v)

y = fy (u, v)

z = fz (u, v)

Example: ellipsoid

sin

sincos

coscos

z

y

x

rz

ry

rx

Parametric Surface

Tensor product spline patchs Each patch is defined by blending control points Careful constrains to maintain continuity

Parametric Surface

Advantages Easy to enumerate points on surface Possible to describe complex shapes

Disadvantages Control mesh must be quadrilaterals Continuity constrains difficult to maintain Hard to find intersections

Implicit Surfaces

Boundary defined by implicit function f(x, y, z) = 0

Example linear (plane)

• ax + by + cz + d = 0

Ellipsoid

01222

zyx r

z

r

y

r

x

Implicit Surface Examples

Implicit Surfaces

Advantages Easy to test if point is on surface Easy to intersect two surfaces Easy to compute z given x and y

Disadvantages Hard to describe specific complex shapes Hard to enumerate points on surface

Comparison

FeaturePolygon

Mesh

Implicit

Surface

Parametric

SurfaceSubdivision

Surface

Accurate

Concise

Intuitive specification

Local support

Affine invariant

Arbitrary topology

Guaranteed continuity

Natural parameterization

Efficient display

Efficient intersections

No

No

No

Yes

Yes

Yes

No

No

Yes

No

Yes

Yes

No

No

Yes

No

Yes

No

No

Yes

Yes

Yes

Yes

Yes

Yes

No

Yes

Yes

Yes

No

Yes

Yes

No

Yes

Yes

Yes

Yes

No

Yes

No

3D Object Representations

Raw data Point cloud Range Image Polygon soup

Surface Mesh Subdivision Parametric Implicit

Solids Voxels BSP tree CSG Sweep

High-level structures Scene graph Skeleton Application specific

Solid Modeling

Represent solid interiors of objects Surface may not be described explicitly

Solid Modeling

Motivation Some acquisition methods generate solids (Ex: CAT scan) Some applications requires solids (Ex: CAD/CAM) Some algorithms require solids (Ex: RT with refraction)

Solid Modeling Representations

What makes a good solid representation? Accurate Concise Affine invariant Easy acquisition Guaranteed validity Efficient boolean operation Efficient display

Voxels

Partition space into uniform grid Grid cells are called a voxels (like pixels)

Store properties of solid object with each voxel Occupancy Color Density Temperature Etc.

Voxel Acquisition

Scanning devices MRI (Magnetic Resonance Imaging) CAT (Computed Axial Tomography)

Simulation FEM (Finite Element Method )

Voxels

Voxels

Advantage Simple, intuitive, unambiguous Same complexity for all objects Natural acquisition for some applications Trivial boolean operations

Disadvantages Approximates Not affine invariant Large scale requirement Expensive display

Quadtrees & Octrees

Refine resolution of voxels hierarchically More concise and efficient for non-uniform objects

<Enumeration vs Quadtree >

Quadtree Display

Binary Space Partitions (BSPs)

Recursive partition of space by planes Mark leaf cells as inside or outside object

Binary Space Partitions (BSPs)

recursively divide space into pairs of subspaces each separated by a plane of arbitrary orientation and

position

Constructive Solid Geometry (CSG)

Represent solid object as hierarchy of boolean operations Union Intersection Difference

Constructive Solid Geometry

Constructive Solid Geometry (CSG)

CSG Acquisition Interactive modeling programs

• CAD/CAM

Comparison

Feature Voxels Octree BSP CSG

Accurate

Concise

Affine invariant

Easy acquisition

Guaranteed validity

Efficient boolean operations

Efficient display

No

No

No

Some

Yes

Yes

No

No

No

No

Some

Yes

Yes

No

Some

No

Yes

No

Yes

Yes

Yes

Some

Yes

Yes

Some

No

Yes

No

To generate a 3-D surface, revolve a two dimensional entity, e.g., a line or plane about the axis in space.

called surfaces of revolution

Surface of Revolution (SOR)

Sweep surfaces (1/2)

A 3-D surface is obtained by traversing an entity such as a line, polygon or curve, along a path in space

the resulting surfaces are called sweep surfaces Frequently used in Geometric modeling

ex) entity : point

path : curveGenerates curve

Closed polygons and curves generates finite volume by sweeping transformation ex) square or rectangle swept along a

- straight path yields a parallel piped

- circle on straight path cylinder

- Rotation is also possible

Sweep surfaces (2/2)

Sweep

Solid swept by curve along trajectory

3D Object Representations

Raw data Point cloud Range Image Polygon soup

Surface Mesh Subdivision Parametric Implicit

Solids Voxels Octree BSP tree CSG Sweep

High-level structures Scene graph Skeleton Application specific

Scene Graph

Union of objects at leaf nodes

Skeleton

Graph of curves with radii

Application Specific

Taxonomy of 3D Representations

Equivalence of Representations

Thesis Each fundamental representation has enough expressive po

wer to model the shape of any geometry object It is possible to perform all geometric operation with any fund

amental representation

Analogous to Turing-Equivalence All computers today are turing-equivalent, but we still have

many different processors

Computational Differences

Efficiency Combinatorial complexity (Ex: O( n log n)) Space/time trade-offs (Ex: Z-buffer) Numerical accuracy/stability (Degree of polynomial)

Simplicity Ease of acquisition Hardware Acceleration Software creation and maintenance

Usability Designer interface vs. computational engine

Complexity vs. Verbosity Tradeoff

Advanced Modeling

Advanced Modeling Procedural Modeling

• Fractal Modeling

• Grammar-based Modeling

Particle System Physically Based Modeling

top related