12/06/00 Dinesh Manocha, COMP258 Solid Modeling CSG (Constructive Solid Geometry) Representations: A set theoretic Boolean expression of primitive solid.

Slides:



Advertisements
Similar presentations
CSG and Raytracing CPSC 407.
Advertisements

Advanced Manufacturing Laboratory Department of Industrial Engineering Sharif University of Technology Session # 5.
Advanced Manufacturing Laboratory Department of Industrial Engineering Sharif University of Technology Session # 8.
Computational Topology for Computer Graphics Klein bottle.
CS 599 – Spatial and Temporal Databases Realm based Spatial data types: The Rose Algebra Ralf Hartmut Guting Markus Schneider.
Knots and Links - Introduction and Complexity Results Krishnaram Kenthapadi 11/27/2002.
Topology YAN JIE (Ryan).
9/5/06CS 6463: AT Computational Geometry1 CS 6463: AT Computational Geometry Fall 2006 Plane Sweep Algorithms and Segment Intersection Carola Wenk.
CS447/ Realistic Rendering -- Solids Modeling -- Introduction to 2D and 3D Computer Graphics.
Operators in CAD Systems
IE 590 J Cecil NMSU 1 IE 590 Integrated Manufacturing Systems Lecture 4 CAD & Geometric Modeling.
GATE D Object Representations (GATE-540) Dr.Çağatay ÜNDEĞER Instructor Middle East Technical University, GameTechnologies & General Manager SimBT.
2003 by Jim X. Chen: Introduction to Modeling Jim X. Chen George Mason University.
Implicit Surfaces Tom Ouyang January 29, Outline Properties of Implicit Surfaces Polygonization Ways of generating implicit surfaces Applications.
IE433 CAD/CAM Computer Aided Design and Computer Aided Manufacturing Part-4 Computer Graphics- CAD Software Dr. Abdulrahman M. Al-Ahmari Industrial Engineering.
Representation Issues in Data Exchange for RP-LM Sara McMains U.C. Berkeley.
11/08/00 Dinesh Manocha, COMP258 Subdivision Curves & Surfaces Work of G. de Rham on Corner Cutting in 40’s and 50’s Work of Catmull/Clark and Doo/Sabin.
IE433 CAD/CAM Computer Aided Design and Computer Aided Manufacturing Part-4 Computer Graphics- CAD Software Industrial Engineering Program King Saud University.
Introduction to Boolean Operations on Free-form Solids CS284, Fall 2004 Seung Wook Kim.
Complex Model Construction Mortenson Chapter 11 Geometric Modeling
Apex Point Map for Constant-Time Bounding Plane Approximation Samuli Laine Tero Karras NVIDIA.
09/16/02 Dinesh Manocha, COMP258 Surfaces Locally a 2D manifold: i.e. approximating a plane in the ngbd. of each point. A 2-parameter family of points.
Contributed Talk at the International Workshop on VISUALIZATION and MATHEMATICS 2002 Thomas Lewiner, Hélio Lopes, Geovan Tavares Math&Media Laboratory,
3-D Modeling Concepts V part 2.
Modeling and representation 1 – comparative review and polygon mesh models 2.1 Introduction 2.2 Polygonal representation of three-dimensional objects 2.3.
Laplacian Surface Editing
CS 450: Computer Graphics REVIEW: OVERVIEW OF POLYGONS
COMP 175: Computer Graphics March 24, 2015
UNC Chapel Hill M. C. Lin Point Location Reading: Chapter 6 of the Textbook Driving Applications –Knowing Where You Are in GIS Related Applications –Triangulation.
Graphics Graphics Korea University cgvr.korea.ac.kr Creating Virtual World I 김 창 헌 Department of Computer Science Korea University
COMPUTER AIDED DESIGN -(CAD)-3
October 14, 2014Computer Vision Lecture 11: Image Segmentation I 1Contours How should we represent contours? A good contour representation should meet.
Kansas State University Department of Computing and Information Sciences CIS 736: Computer Graphics Wednesday, February 23, 2000 William H. Hsu Department.
Disediakan oleh Suriati bte Sadimon GMM, FSKSM, UTM, 2004 SOLID MODELLING.
COLLEGE OF ENGINEERING UNIVERSITY OF PORTO COMPUTER GRAPHICS AND INTERFACES / GRAPHICS SYSTEMS JGB / AAS Solid Modelling Graphics Systems / Computer.
Schloss Dagstuhl, September 2014 Shape Representation Carlo H. Séquin University of California, Berkeley Slicing Less than Perfect B-Reps and the Winding-Number.
12. Polyhedra
PRESENTED BY – GAURANGI TILAK SHASHANK AGARWAL Collision Detection.
Copyright © Curt Hill Visualization of 3D Worlds How are these images described?
Representation and modeling of 3D objects (basic concepts) FMFI UK Katedra počítačovej grafiky a spracovania obrazu Marek.
Visual Computing Geometric Modelling 1 INFO410 & INFO350 S2 2015
3D Object Representations
Solid Modeling Ref. Mantyla. Introduction Aim of modeling: The search of a media of communication.
1 Outline Previous work on geometric and solid modeling Multiresolution models based on tetrahedral meshes for volume data analysis Current work on non-manifold.
Minimum Distance between curved surfaces Li Yajuan Oct.25,2006.
Chapter Area, Pythagorean Theorem, and Volume 14 Copyright © 2013, 2010, and 2007, Pearson Education, Inc.
9 of 18 Introduction to medial axis transforms and their computation Outline DefinitionsMAS PropertiesMAS CAD modelsTJC The challenges for computingTJC.
1 CS 430/585 Computer Graphics I 3D Modeling: Subdivision Surfaces & Solid Modeling Week 9, Lecture 17 David Breen, William Regli and Maxim Peysakhov Geometric.
Three-Dimensional Object Representation
Constructive Solid Geometry Ray Tracing CSG Models
Geometrically Bounded Wireframe AIC (Part 510) Grouping of curves relevant for 3-dimensional wireframe modeling without topological constructs Elementary.
3D Object Representations 2011, Fall. Introduction What is CG?  Imaging : Representing 2D images  Modeling : Representing 3D objects  Rendering : Constructing.
1 k Jarek Rossignac,  2008 Topology  What is a polygon?  Set operations  Interior, boundary, exterior  Skin, Hair, Wound,
IT / API 1 CERN 1-Feb-16 GBLIB: classes to deal with geometrical data Evgueni Tcherniaev IT / API CLHEP workshop, January.
Solid Modeling Prof. Lizhuang Ma Shanghai Jiao Tong University.
David Breen, William Regli and Maxim Peysakhov
Solid Modeling Dr. Scott Schaefer.
3D Object Representations 2009, Fall. Introduction What is CG?  Imaging : Representing 2D images  Modeling : Representing 3D objects  Rendering : Constructing.
CS552: Computer Graphics Lecture 28: Solid Modeling.
Constructive Solid Geometry CSG (Geometri Padat Konstruktif)
Computer graphics 3D solid modeling.
SOLID MODELLING.
CMPS 3130/6130 Computational Geometry Spring 2017
3D Object Representations
Computer Aided Engineering Design
Computer Aided Engineering Design
I. The Problem of Molding
Collision Detection.
Overlay of Two Subdivisions
Prof. Lizhuang Ma Shanghai Jiao Tong University
Presentation transcript:

12/06/00 Dinesh Manocha, COMP258 Solid Modeling CSG (Constructive Solid Geometry) Representations: A set theoretic Boolean expression of primitive solid objects Object is always valid (surface is closed, orientable and encloses a volume) B-Rep (Boundary Representation): Describes the oriented surface of a solid as a data structure composed of vertices, faces and edges Easier to render Easier for collision detection, finite element simulation DUAL REPRESENTATION Modelers: Use both of them

12/06/00 Dinesh Manocha, COMP258 Primitives Pre-selected from solid shapes and instantiated/transformed: blocks, polyhedra, spheres, cones, cylinder, tori (all can be represented using NURBS) Primitives is created by sweeping a contour along a space curves or surfaces (e.g. offsets are generated by sweeping a sphere) Primitives are algebraic half-spaces:, where f(x,y,z) is an irreducible polynomial

12/06/00 Dinesh Manocha, COMP258 CSG Representation Built from standard primitives, using regularized Boolean operations and transformations Each primitives is defined in a local coordinate system. The tree nodes correspond to transformations to place them in a global coordinate system Boolean operations or set-theoretic operations: union (U), intersection ( ) and difference (-)

12/06/00 Dinesh Manocha, COMP258 Regularized Boolean Operations Regularized union ( ), regularized intersection ( ) and regularized subtraction ( ) Difference with normal set theoretic operations: the result is the closure of the operation on the interior of the two solids and used to eliminate dangling low-dimensional structures. To compute them: Compute A B in the set-theoretic sense. Compute the interior of A B (in the topological sense) Compute the closure the interior (i.e. all boundary points adjacent to some interior neighborhood) The resulting solid is the regularized intersection. In practice, they are computed by computing A B and eliminate the lower-dimensional structures.

12/06/00 Dinesh Manocha, COMP258 Point/Solid Classification Given a point (x,y,z), is it inside, outside or on the boundary of the solid Other queries include classifying a line, how a surface intersects a solid and a test of whether two solids intersect in a non-empty volume Reduce the query to classification of the primitives of the CSG tree, involving Downward propagation as well as upward propagation Issue: What happens when the point lies EXACTLY on the surface of the primitive

12/06/00 Dinesh Manocha, COMP258 Tree Propagation Downward Propagation If (x,y,z) arrives at a node specifying a Boolean operation, then it is passed unchanged to the two descendants of the node If (x,y,z) arrives at a node specifying a translation or rotation, the inverse translation or rotation is applied to (x,y,z) and the transformed point it sent to the node’s descendant If (x,y,z) arrives at a leaf, then the point is classified w.r.t. that primitive and the classification (in/on/out) is returned to the parent of the leaf. Upward Propagation The messages contain point classification that must be combined at the Boolean operation nodes. No work is done at nodes representing transformations

12/06/00 Dinesh Manocha, COMP258 Neighborhoods Problem: How to classify points that lie on the surface of a primitive solid? Solution: Use neighborhoods. The neighborhood of a point P w.r.t. solid S, is the intersection with S of an open ball of infinitesimal radius centered at P. P is inside S, iff the neighborhood is a full ball and P is outside S, iff the neighborhood is an empty ball. If P is on the surface of S, then the structure of neighborhood depends on the local topology of S at P. Face: Ngbd. Is a halfspace Edge: Ngbd. Is a wedge Vertex: Ngbd. Is a cone

12/06/00 Dinesh Manocha, COMP258 Refined Upward Propogation Goal: Perform the respective Boolean operation on the neighborhood itself Account for the local geometry Devise suitable data structures to represent neighborhoods Transform the geometric data appropriately at the rigid motion nodes In practice, involves dealing with lots of non-trivial and degenerate cases

12/06/00 Dinesh Manocha, COMP258 Curve/Solid Classification Applications: ray tracing a CSG model; boundary evaluation Send the line or curve description to the leaves Partition the curve into segments labeled inside, outside, or on the surface of the primitive Propagate the segments back upward, and merge them appropriately, by performing Boolean operations on them

12/06/00 Dinesh Manocha, COMP258 Surface/Solid Classification Intersect the surface with each of the primitives from which the solid has been constructed Classify the resulting curves, thereby determining the bounding edges of those surface areas that are inside or outside the solid, or are on the solid’s surface Combine the segments, appropriately oriented, constructing a boundary representation of the respective surface areas Surface/solid classification can be used to devise a method for converting a CSG to B-rep model (based on generate-and-test paradigm)

12/06/00 Dinesh Manocha, COMP258 Boundary Representations Two parts: Topological description of the connectivity and orientation of vertices, edges and faces; in terms of incidences and adjacencies Geometric description for embedding these surface elements in space; includes vertex positions or surface equations

12/06/00 Dinesh Manocha, COMP258 Manifold vs. Non-Manifold Manifold surface: Around every one of its points, there exists a neighborhood that is homeomorphic to a plane: I.e. the surface can be locally deformed into a plane without tearing it or identifying separate point with each other A manifold surface is orientable if we can distinguish two different sides, e.g. sphere and torus Non-orientable surfaces: Moebius strip, Klein bottle Closed orientable manifolds partition the space into the interior, the surface and the exterior A Boolean operation on two manifold objects may yield a non-manifold results

12/06/00 Dinesh Manocha, COMP258 Common Approaches to Non- Manifold Structures Objects must be manifolds, so operations on solids with non-manifold results are not allowed and are considered an error Objects are topological manifolds, but their embedding in 3-space permits geometric coincidence of topologically separate structures (i.e. topological interpretation is given to non-manifold structures); serious robustness issues; Non-manifold objects are permitted, both as input and as output

12/06/00 Dinesh Manocha, COMP258 Robust and Error Free Geometric Operations Geometric objects belong to a continuous domain, they are analyzed by algorithms doing discrete computations (e.g. floating point numbers) Imprecise representations; leads to contradictory information about the representation object Typical approach: relax the incidence tests, hard to control their implications

12/06/00 Dinesh Manocha, COMP258 Floating Point Arithmetic Conversion errors: Can’t represent numbers exactly using binary arithmetic (e.g. 0.6) Roundoff errors: each arithmetic operations has roundoff error Catastrophic cancellation

12/06/00 Dinesh Manocha, COMP258 Geometric Failures due to Floating Point Arithmetic Computation carried out with finite precision arithmetic Decision tests or questions of incidence: answered by different sequence of numerical computation Different sequences of computation are equivalent when exact arithmetic is used, but may result different answers using floating point arithmetic (e.g. incidence asymmetry checking whether intersections of lines correspond to the same)

12/06/00 Dinesh Manocha, COMP258 Approaches for handling robustness Restructure the algorithm so that all interpretations of noisy numerical data and computations are logically independent Make interdependent logical decisions by respecting the symbolic data exactly, but can perturb the numerical data When making interdependent logical decisions, give priority to the numerical data

12/06/00 Dinesh Manocha, COMP258 Specific Approaches Use exact arithmetic: simple for linear primitives; non-trivial for non-linear primitives Use symbolic information (hard for non-linear primitives) Use perturbation approaches (limited success) General area for non-linear primitives is an open area of research