Sunday, March 20, 2005

Lecture 8

scheduled: Saturday, March 19, 2005

We discussed:

1. Few more properties of Bezier curves
  • De-Casteljau's algo to evaluate a point on the curve, graphically.
  • Convex-Hull and the intersection of two Bezier curves.
  • Joining of two cueves (C0, C1, C2 -continuity constraints on the control points).
2. Splines (introduction), their advantages over a single Bezier curve.

Lecture 7

scheduled: Sunday, March 6, 2005

We discussed:

1. Matrix representation of Bezier curves. Time complexity for evaluation.
2. How to get more focussed(localized control)
  • Increasing degree is not a viable/scalable solution (time complexity)
  • Use of S(interval) boxes to adjust Control-Matrix
  • Using above to add more control points.

Sunday, February 20, 2005

Lecture 6

scheduled: Saturday, Feb 12, 2005

We discussed:

1. Why do we need parameterization.

2. The example of a Volume Control
  • Continuous
  • Smooth variation
  • Predictability while variation
  • Independent controls like tone and bass affect the sound independently. Yet the overall result is not garbled and you can predict the effect of each control in the resulting sound.
3. Bezier Curves
  • Bernstein Polynomials; how they partition 'unity'.
  • How they blend the curve
  • Degree-1 curve is a straight line.
  • Constructing higher degree curves from lower ones.
4. Continuities C0, C1, C2, ..., Cn

Monday, February 07, 2005

Lecture 5

scheduled: Saturday, Jan 29, 2005

We discussed:

1. Details of B-rep
2. The Winged-Edge datastructure.
3. Topological validation of B-rep
  • Euler-poincare' Equation
    V+F - E = 2(S-G) + (L-F)

Sunday, January 23, 2005

Lecture 4

scheduled: Saturday, Jan 22, 2005

We discussed:

1. Problems with CSG
  • Redundancy - A considerale part of a huge tree may result in a null-space.
  • The operations at each level is much. The cost of CLASSFY increases considerable with the increase in the CSG-Tree size.
  • Allowing very simple primitives poses restriction to the users.
  • There is no provision to preserve the precomputed boundary-info (this computation is costly.
2. B-rep. Topological information is represented separately from the location/geometric information. In topological representation, we have one structure binding the other in a hierarchy. Say for instance, a solid/space is bounded by surfaces, a surface is bounded by edges and so on. Classification methods can be used to convert a CSG to B-rep.

3. The parameteric representation of a ray (say, emerging from the point (20,20,20) and passing through (-10,20,30)) helps in solving the 'classify' against a solid (say, {(x, y, z) | (x-3)^2 + (y-8)^2 <= 9, 0 <= z <= 12}). We saw, how do we decide the topological placement of the point w.r.t. the solid.

4. What are
  • 2-manifold surfaces; nice and non-nice-objects
  • orientability of a surface.
  • Compactness of a solid.
5. An example of how a CGS operation can lead to a non-nice objects.

6. Home work!

Sunday, January 16, 2005

Lecture 3

scheduled: Saturday, Jan 15, 2005

We discussed:

1. The CGS (Constructive Solid geometry): We follow a binary-tree approach towards the construction of a complex 3D object.
  • CGS-tree (the binary tree)
  • Operations: union, intersect and difference and their regularized versions.
  • The essence of world co-ordinate system.
2. Why and how of Regularization. How artifacts get created in CG. Finding the interior points and putting the shell/boundary points.

3. The practical approach -- Classification! The aim is to determine whether a point (or a curve or a surface) of interest lies IN, ON or OUT of the given solid (whose CSG-Tree we already know). The signature of the method CLASSIFY:
CLASSIFY CSG-tree * {point, curve, surface} --> {IN, ON, OUT}
4. The recursive implementation of the CLASSIFY(...) method. Note that the leaves of the CSG-Tree are the primitives (and the terminating condition for the recurtion). When we reach a primitive, the native implementation of the primitive's CLASSIFY is summoned.

5. The root-operation over the two returned results (corrresponding to its two child-nodes), depends on the operation.

if X is one of the {IN, ON, OUT} then for the Regularized-Union:

(IN, X) --> IN
(OUT, OUT) --> OUT
(OUT, ON) --> ON
(ON, ON) --> {IN | ON}

Now for the last case, we use the Neighborhood-method to determine whether it's IN or ON.

The aim is to see if all the points in the epsilon-neighborhood (an open-ball of radius equalling epsilon; for epsilon being as small you can think of) of the point (under consideration, where the center of the open-ball lies) are in the interior of the resulting structure. If so, we declare that the point (under consideration) is IN the resulting structure. This method helps in Regularization.

6. The other (regularized) operations are left as an exercise.

Lecture 2

scheduled: Friday Jan 14, 2005
We discussed:

1. How do we generate primitives for modeling.

  • Contour Sweep. This is very complex. I have, practically, never seen its use in CG.
  • Parameterized solids. These are very simple (should I say, trivial) structures like shpere, cone, prism, toroid, the shape of whose can be altered just by varying one or two parameters. So, you see the ease of their usage.
  • Half-Spaces. We have already discussed these in Lecture-1. They are mathematically complex, but just slightly. They can represent wide variety of primitives with ease.

2. Problems with the contour sweep method.
  • Describing the contour and the curve is mathematically complex. As an instance, creating a Right-Circular-Cylinder using parameterization is way easier than this method, with a circular contour swept over a straight line with is parallel to the normal to plane of the contour (I mean, you see this description itself is so complicated!)
  • As a continuation to the above point, we need bounding equations additionally (I mean, of course, the solid has to finite. So, the sweep has to have some bounds, which need to be specified explicitly!). While in the other two methods, the boundary-specification happens to be a gift by the method itself.
  • Degeneracy, when the normal of the contour-plane forms a right angle with the line, at any point during its motion. At this point you lose one-dimention, resulting in a 2D structure.

3. The operations on the primitives to generate complex models, can be classified as Local Operations and Global operations.
  • A local operation is local to the primitive under operation. This operation does not affect other primitives. in OO this is analogous to tampering the private members using the getter-setter methods. Local operation may need local coordinate system for tampering, depending on how the primitive is constructed an the ease of the tampering.
  • Global operations are always with respect to a Global-Coordinate-System which is shared by all the other promitives into play. Global operation on a primitive is visible to other primitives. in OO this analogous to sharing some information amongst the primitives through an interface. GO includes mainly the translation and the rotation.

Sunday, January 09, 2005

Lecture 1

scheduled: Sunday, Jan 9, 2005

We discussed the following:

1. What, why and how of Modeling.
2. Primitives.
3. Inroduction to half-spaces & surfaces, their boundedness.

Forum for the graphics students

Please feel free to ask your questions through Comments. I'll post my reply-comments.

- Sujeet