370 likes | 608 Views
Computer Graphics 2. Representation and modeling of 3D objects (basic concepts). FMFI UK Katedra počítačovej grafiky a spracovania obrazu. Marek Zimányi. Contents. Polygonal representation Boundary rep. Sweep Constructive Solid Geometry Implicit representation F-rep
E N D
Computer Graphics 2 Representation and modeling of 3D objects(basic concepts) FMFI UK Katedra počítačovej grafiky a spracovania obrazu Marek Zimányi
Contents • Polygonal representation • Boundary rep. • Sweep • Constructive Solid Geometry • Implicit representation • F-rep • Spatial subdivision techniques • Procedural modeling
Polygonal representation • Boundary representation (B-Rep) • Topological description • Specifies: vertices, edges, faces • Geometrical description • Specifies: equation of the surface • Sweep
Polygonal representation Boundary representation • Polygon and Polygonal Mesh • Polyhedron • Normals • Euler’s formula • DCEL
Polygonal representation Boundary representation • Describing of boundary points set • faces,edges, vertices • region, loop, shell, hole,handle • vertices : • V1 = (x1, y1, z1), V2 = (x2, y2, z2), … • edges : • h1 = (1, 2), h2 = (2, 3), … • faces : • P1 = (1, 2, 3), P2 = (4, 2, 1), …
Polygonal representation Boundary representation - Mesh • Collection of faces (polygons) • Advance: shading process • Parameters: • Vertices, faces, normals • Vertex normals versus face normals • ! This it not the same !
Boundary representation - Mesh • Definition: • Set of vertices, • Normals • Faces, • With Indexes of vertices • With Indexes of normals • Be careful -> left or right hand CS
Boundary representation - Mesh • Normal computing: • Martin Newell method:
Boundary representation - Mesh • Properties • Solidity – enclose a positive and finite amount of space • Connectedness – exist unbroken path between any two vertices • Simplicity – solid with no holes • Planarity – every face is a planar polygon • Convexity – line between any two point lies inside the object
Polygonal representation Boundary rep. - Polyhedron • Def.: • A polyhedron is a connected mesh of simple planar polygons that enclose a finite amount of space • Prop. • Every edge is shared by exactly two faces • At least 3 edges meets at each vertex • Faces do not interpenetrate:
Polygonal representation - B-rep Manifolds • Unreal objects => Non-Manifolds • 2-manifolds: point from manifold has small neighborhood of points around, topologically the same as a disk in the plane • Orientable <-> NonOrientable manifold Mobius strip, Klein bottle • Many b-rep systems support only solid whose boundaries are 2-manifold
Polygonal representation - B-rep Manifolds • Klein bottle • http://www.math.ohio-state.edu/~fiedorow/math655/Klein2.html • http://www.kleinbottle.com/ • Mobius strip • http://www.mobiusproductsandservices.com/tms.html • http://www.cut-the-knot.org/do_you_know/moebius.shtml • Another :-) • http://pbskids.org/zoom/phenom/index.html
Polygonal representation - B-rep The Winged-Edge Representation Double-connected Edge List (DCEL) For each edge is given info: • Incident vertices • Left and right adjacent face • Preceding and succeeding edge in clockwise order • Preceding and succeeding edge in counterclockwise order
Polygonal representation Polygonal representation - B-rep B-Rep • Important facts in the B-Rep: • Classification of edges • sharp and auxiliary • Normals in vertexes • Boundary of face – • find all edges of a face • Position of a point in the space • Point is IN or OUT of object
Polygonal representation Sweep • Sweeping an object along a trajectory • Translation sweep • Rotational sweep • Conical sweep • Sphere sweep • General Cylinder • Polygonal rep ?
Polygonal representation Translational Sweep Method: Define the object with the contour (2D) and the path.
Polygonal representation Rotational Sweep Method: Define the object by rotating of the contour (2D) with the arbitrary axis.
Polygonal representation Conical Sweep Method: Define the object by the contour (2D) and a 3D-point (top of the pyramide).
Polygonal representation Sphere Sweep Method: Define the object by the sphere with the varying radius and a path.
Polygonal representation General Cylinder Method: Define the object by the set of „control“-contours and by the path.
Polygonal representation Polygonal rep ? Trajectory and object shape – may swept object intersect Volume calculations complicated • General sweeps – difficult to model efficiency • General sweeps do not always generate solids • It is a polygonal rep? Sweeping a 2D area in its own plane another 2D area Yes and No.
Polygonal representation Polygonal rep ? • It is a difficult to apply regularized Boolean operations(after BOOL op. it wouldn’t be SWEEP obj) • BUT sweeps are a natural and intuitive way to construct of the objects • Many systems allow user construct sweepsBUT store the objects in other representation
Constructive Solid Geometry • CSG • Composing of Primitives: • Sphere, Cone, Cube, Cylinder, ... • Operations: I, U, -, ... • The leafs of CSG-tree are primitives and the operations are in the rest of the tree nodes. The CSG-tree represents the solid. (Scene graph idea!)
Polygonal representation - CSG Example
Polygonal representation - CSG Notes • Pros • Low memory consumption • Simple combining • Exact representation of complex surfaces • 12 Mantylas operators and his proof • Cons • Slow and difficult processing • ? • Not unique representation
Polygonal representation - CSG CSG processing • Rendering Algorithms • ray casting (tracing) • extended depth buffer algorithm • Evaluation/Conversion Algorithms • boundary representation • octree • constructive cubes
Implicit representation • Jim Blinn 1982 • Implicit surfaces • Blobby objects • Soft objects • Meta balls
Implicit representation Spreadsheet Rendering
Implicit representation Animation Path in t1t2 Plane
Spatial subdivision techniques • Octrees • Iterative space subdivision • Nodes have property: V, F or M • Subdividing P-nodes until the desired Approximation Quality • The dividing planes do not depend on objects in the scene (differs from BSP tree!) • Analogy in 2D: „Quad Tree“ • BSP trees
Spatial subdivision techniques Octree • Sort form of space • Disadvantage: sampling V – void F – full M – mixed (FFFFF(FFFVFVFV)VV)
Spatial subdivision techniques Octree • Boolean set operations and transformations • Traverse both trees top-down in parallel • Rotations (*90), scaling (*2) • General transformations – severe problem(aliasing) • Neighbor finding • Not trivial • Linear notation
Spatial subdivision techniques Binary Space-Partitioning Trees (BSP trees) • octrees divide space uniformly - drawback • BSP divide space recursively into pairs of subspaces: • each subspace has the same object complexity (# of objects) • Usual division step: • sort the objects according to actual coordinate (x,y,z) • Choose median • Place halfplane (halfline in 2D) between median and next object • Shift halfline if too many objects intersects the halfplane
Procedural modeling • Alternative to slow user modeling • Useful for complex, hard-to-manipulate, organic, fuzzy, scalable, large, … objects • Software designer prepares a procedure, implementing object-production algorithm • Software user specifies only the input parameters for the procedure • Stochastic principle is often applied (no 2 trees are exactly identical)