CS 184: COMPUTER GRAPHICS


PREVIOUS < - - - - > CS 184 HOME < - - - - > CURRENT < - - - - > NEXT

Lecture #22 -- Wed 4/13/2011.

Question of the Day:

Suppose you want to design a roughly spherical, smooth ball, implemented by a B-spline or CC-subdivision surface, and decorate it with six "cubistic" fish as shown on the right.

What would be your starting model or control polygon ?

How do you define a suitable texture and appropriate texture coordinates on your surface ?




Escher tiling with 12 lizards

Escher tiling with 24 birds

Tiling with 60 butterflies

Smooth Surfaces

A Bezier patch is just the external product of two Bezier curves.
But it is tedious to assemble many of them into a smooth surface.

A B-spline surface is just the external product of two B-spline curves.
It is difficult to make closed surfaces of higher genus with multiple tunnels or handles.
Here is a generalization to arbitrary topologies:

Subdivision Curves and Surfaces

A good introductory booklet on Splines with interactive demos:
"Interactive Curves and Surfaces," (with Multimedia Tutorial on CAGD), A. Rockwood and P. Chambers, Morgan Kaufman Publishers, Inc.
[ This was used in recent offerings of CS 284. ]



Texture-Mapped Subdivision Surfaces of Arbitrary Genus

The genus of an object is measured by the number of tunnels through it, or, equivalently, by the number of "handles" glued onto a sphere.
see: http://en.wikipedia.org/wiki/Genus_(mathematics)

The construction of a subdivision surface starts with a simple polyhedron, the is then iteratively refined and smoothed by subdivision.
The texture coordinates applied to the original polyhedron are simply subdivided in the proportion of the topological splits executed.
Problems may arise in assigning texture coordinates, if the surface is not a simple cylindrical or toroidal domain.
Whenever the genus of a surface is different from 1, then you cannot regularly tile this surface with quad tile with all valence-4 vertices.
In the simple example above, the cube has valence-3 vertices, and the same geometrical vertex will have to carry different texture coordinates for different faces.

To model a "spherical" ball we may start with a
simple cube; but the "cubist" fish shape will extend beyond a single face and overlap into two adjacent faces.

 
Thus, the texture pattern that gets cut out from the whole fish is missing the nose and the tail, but gets these two pieces stuck in from the two sides.  Since these pieces belong to some other fish, they will be of different colors.
Thus, multiple copies of the B&W texture outline, filled with different colors, are needed for the different sides of the cube.
On the cube itself, the texture coordinates will then have to be permuted so that a seamless connection between the different patterns and colors occurs.  Some of the tiles may also have to be mirrored! (See the actual texture coordinates used).
Here is another textured example of genus 2.  --  And another one of genus 3.
More complex examples of a genus 5 surface are discussed here.

Multi-Textures

To make really fancy surfaces, you may have multiple textures overlaid,
e.g., one describing color, and another one describing displacement or the normal deviations for bump mapping.
While you may use multiple textures, the different types of maps may often use the same texture coordinates.
But you also have the situation that different texture locations from different faces come together at the same geometrical vertex!
Thus it is best to have a data structure that has the vertices carry their geometrical information (i.e., their position coordinates and averaged face normals), but let the faces carry their own texture corrdinates at the boundary points.
To find the shape of a subdivision surface (its limit surface) you then need to deal only with the geometrical vertex information.
To find the surface decoration at any location, you only need to deal with the face and texture information that covers that particular location.


The Course Project

Start planning for it now!  Consult Project Page!


Reading Assignments:

Shirley:  2nd and 3rd Ed: Ch.15 :  But without the detailed math relating to basis functions  (we cover that in  CS 284)


Start of the CS 184 Course Project:
Form your teams: 1, 2, or 3 persons; select a tentative design task; write a short proposal
(100-300 words) before Friday April 15, 11:00pm


PREVIOUS < - - - - > CS 184 HOME < - - - - > CURRENT < - - - - > NEXT
Page Editor: Carlo H. Séquin