CIS881: Geometric Modeling
Content
Topics:
CIS881 covers geometric modeling from the programming/algorithm point of view.
This quarter, I'm trying to shift the emphasis a bit in the course and introduce some new material at the end of the quarter.
The material breaks down into three categories: data generation techniques; curves and surfaces; advanced modeling techniques.
I'm not sure how the timing will work out so I don't know how far we'll actually get into the new material (which is mostly in the 'advanced modeling' category).
Lab:
CIS881 basically has one quarter-long project that's done in stages.
The objective is to develop a program with basic geometric modeling capability.
There will be a basic point-line editing program given to you with
a basic interface.
This will use Motif and OpenGL.
You will modify this for the project.
As opposed to some of the other graphics courses, you will be more on your own in terms of design of the lab.
I'll be looking for certain functionality but beyond that it's up to you how to implement your lab; there are no sample labs.
Homework:
There will also probably be some homework assignments to make sure everyone understands the calculations described in the book.
I haven't decided how much or how often.
It will probably be pretty sporadic and mostly concerning curves and surfaces although there may be some which cover the reading material for the advanced modeling techniques.
 
List of Topics:
Below is a list of topics that we will try to cover.
We will probably not make it through all of the topics here.
We WILL NOT cover Motif in class; you are expected to either know it already or pick up what you do need for the class on the fly.
Most of what you will need is already demonstrated in the course software.
This list is NOT in chronological order.
It almost is, but because of the way in which I'll need to time the topics in order to present material for the labs, I'll need to rearrange some things.
See the schedule for my current best guess of the ordering.
-
Introdution
- terms (Sections 1.1-1.2, pp.1-7)
- geometric modeling
- solid modeling
- computation geometry
- differential geometry
- CAD, CAM
- boundary representation, volume graphics, construction solid geometry
- project
- get it up and running, add simple data generation
- add curve editing
- add sculptured surface capability
- add advanced data generation
- overview graphics system: input/construct-represent-modify-output/display
- construction
- interactive v. batch
- design v. transcribe
- display v. analyze
- capability: generality, flexibility, extensibility, robustness
- representation
- geometry v. topology
- representational scheme
- wireframe (no surface definition)
- B-rep (polyhedral, sculptured)
- volume (voxel,implicit surfaces, CSG)
- data structures: need to support whatever operations are envisioned (e.g., modification v. display or both)
- modification and analysis
- construction by repeated incremental modification of valid form
- construction by combining primitive shapes
- shape modification
- extract useful measurements from model (volume, center of gravity, etc.)
- animation: rigid transformations, physcially based modeling
- display - what computations do you need for a geometric model to support for display
- conversion to polygons (polygonalization)
- scanline/z-buffer processing: calculating extents, z-depth
- ray tracing: intersecting ray with object (test v. calculation)
- illumination: normal vector calculation
- display attributes: e.g., associating and extracting texture coordinates
- Motif programming
- motif on top of X tools on top of X library on top of Xlib on top of UNIX
- attributes: setting, reading back
- manage/unmanage
- callbacks, event driven
- widgets (p. 168)
- context
- application
- bulletin board
- form
- dialogs: file selection, message, prompt, etc.
- labels
- menu bar
- pull-down menu
- RowColumn
- separator
- text
- push button
- cascade buttons
- drawing area
- toggle buttons
- hierarchy of containers
form -> menu-bar -> pull-down-menu -> cascade-button -> push-button
- Basic data generation
-
solids of revolution, extrusion
-
sweep operators (10.5, pp.455-461)
-
lofting (get papers)
-
fitting polygons to height fields
-
fractals (get paper)
-
rounding (get paper)
-
intersection algorithm
-
parameterized models
-
procedural model, evaluated v. unevaluated
-
instances and parameterized shapes (10.3, pp. 446-450)
- B-rep: polyhedra (Section 10.7, pp.469-477)
- wireframe (10.8, pp.477-480)
- Euler Formula: validity checking (9.2,pp.384-395)
- V-E+F=2-2g
- V-E+F-H+2P=2B
- orientable
- Mobius strip, Klein bottle
- Euler operators (Section 9.8,pp.420-427; figure 9.44,p.424)
- formal modeling criteria (9.9, pp.427-430)
- clean up routines
- remove duplicate vertices
- remove coplanar adjacent faces
- test planarity of faces
- triangulate faces
- polyhedral data structures (10.1, pp.431-438)
- support dispay v. editing
- vertex based v. edge based v. face based
- Winged Edge Data Structure: pface,nface,v1,v2,pcw,pccw,ncw,nccw
- B-rep: non-planar curves and surfaces
- intro (Sections 1.4-1.9, pp.18-29)
- implicit v. explicit equations: testing v. generating; ordering of interpolation; rotation invariant.
- intrinsic v. extrinsic properties: local v. global
- parametric equations (page 25, advantages of parametric equations over explicit form)
- curves (Chapter 2, pp.30-150)
- parametric form, tangents vector and derivatives, relation of parametric to implicit form; simple reparameterization
- algebraic & geometric form: P=UMB; algebraic coefficients; geometric coefficients
- introduction to Hermit curves
- tangents and curve shape
- parametric space of curves
- Blending functions: orthogonality
- reparameterization: to reverse direction, normalize to 0-1 range, by arclength
- truncating, extruding, subdividing
- space curve: fitting p0,p1,t0,t1 to pass through p(u) for u to be determined
- four-point form
- geometric construction
- straight lines
- conics
- composite curves (v. Lagrangian)
- Spline curves
- Bezier
- B-spline (Beta splines - paper)
- rational polynomials (NURBS)
- surfaces (3, pp.151-239)
- display requirements (analytic v. polygonalize)
- algebraic & geometric forms
- tangents and twist vectors
- normals
- parametric space
- reparameterization
- subdividing
- 4 curve form
- plane surface
- cylindrical surface
- ruled surface
- surface of revolution
- spherical
- conic
- composite
- Coons Patch
- Bezier
- B-spline
- degenerate
- curves on surfaces
- irregular boundaries
- analytic properties
- intrinsic properties of curves
- extrinsic properties of curves
- characteristic test
- direct and inverse point solution
- global properties:
- arc length
- surface area
- volume
- relational properties
- computing distances
- distance between 2 points
- distance between a point and a curve
- distance between a point and a surface
- distance between a curve and a surface (path following)
- nearest neighbor (complex 3D user interaction)
- computing intersections
- volume graphics and other
- fractals
- procedural models
- superquadrics
- CSG (10.2, pp.439-446; 10.6, pp.461-469)
- volumes(10.4, pp.450-455)
- octree, quadtree
- fully enumerated
- ray tracing
- surface construction
- implicit surfaces
syllabus
Last updated 3/15/99