Geometric Modeling




CS116b/CS216

Chris Pollett

Apr 21, 2014

Outline

Introduction

Winged-Edge Representation

image showing why this is called winged representation

Winged Edge Representation Data Structures from

image showing triangle with interior triangle as supported by this representation

We only need one circular list for the edges of a face because we can do tricks like in the above picture (from Wikipedia).

Here are some example data structures for Winged-edge representation from Wikipedia:

class WE_Edge {
  WE_Vertex vert1, vert2;
  WE_Face aFace, bFace;
  WE_Edge aPrev, aNext, bPrev, bNext; // clockwise ordering
  WE_EdgeDataObject data;
}
class WE_Vertex {
  List<WE_Edge> edges;
  WE_VertexDataObject data;
}
class WE_Face {
  List<WE_Edge> edges;
  WE_FaceDataObject data;
}

Quiz

Which of the following statements is true?

  1. The rendering equation, as expressed in class, is a differential equation.
  2. The `L^2` term of our lighting model is important for seeing caustic effects.
  3. In the thin lens model, all depths of field are equally in focus.

Implicit Surfaces

Example of blobby water

Interior/Exterior

Difference of a cube and sphere (Wikipedia) Intersection of a cube and sphere (Wikipedia) Union of a cube and sphere (Wikipedia)

R-sets

More on R-sets

R-set operations

Results about R-set Operations

Facts (we won't prove).
(1) The regularized set operations take r-sets to r-sets. Furthermore, there are algorithms to perform these operations.
(2) The class of regular semialgebraic or semianalytic sets is closed under the regularized set operations.

Agoston (a common book for CS216) gives references into the literature for the proofs of these statements. Of the two statements, (1) is the most useful from a computer graphics point of view. The algorithms mentioned above probably need some caveats. These algorithms assume that for each of the input r-sets `X` and `Y` we have a procedure which can decide given a point `x` whether `x` is inside, outside or on the boundary of `X` (resp. Y). This is for instance certainly doable for polynomially defined generic half-spaces. Given such input procedures for `X` and `Y` we build a procedure for the given r-set operation. i.e., for `X \cup^\star Y` we would combine the procedure of `X` and `Y` to be able to say when something is `x` is inside, outside or on the boundary of `X \cup^\star Y`.

Boundary Representations

The CSG Representation

Converting from CSG's to B-rep's

Intersection of a circle and a square

More on Converting from CSG's to B-rep's

Dividing space into on, in, and out

Still More on Converting from CSG's to B-rep's