Transcript Slide 1

Ever wonder how they made STAR WARS or TOY STORY?

Mandelbrot sets

The development of Computer Graphics is responsible for a revolution in art and media. Starting with the pixel (the smallest discrete unit of color inherent in almost all common electronic displays today), Computer Graphics progressed through 2D manipulation to creation of imagery and onto the illusion of 3D scenes.

Author’s name made of splines

Creating complicated scenes with interdependent parts (such as moving a foot attached to a leg) can be facilitated using a structured modeling system. We took the approach of creating a hierarchical system in which a base object is created, manipulated by some matrices, and then subobjects can be appended before repeating the process starting with the sub objects.

2D image manipulation demonstrated here involved transformations of images (arrays of pixels) and fractal sets. Fractal patterns were generated using julia and mandelbrot sets which mapped colors determined by complex quadratic polynomials to pixels.

Julia set

Filled shapes (especially filled polygons) provide yet another hurdle. Polygons are filled by stepping through an image row by row and filling between edges. The difficulty comes with the many exceptions relevant to scanline filling such as image boundary conditions.

Gradients Line drawing Image manipulation: chroma keying

2D image creation from primitives such as lines, splines, and circles is deceivingly difficult. The primary difficulty is choosing which pixels to color, an issue of aliasing. Aliasing occurs when trying to map something of high resolution (in this case a mathematical line) to a discrete (low resolution) system. The result is jagged edges. The other issue is rendering speed. For instance, when drawing a circle, traditional mathematical methods such as x = cos(theta) are not practical. Splines which were used to create the curves in my name on the left were created by specifying points, joining them with lines, and then recursively subdiving those lines.

Because the images presented here were developed from scratch using mathematical formulas, each object has an associated mathematical description (usually a series of points with some method of connecting them). This can be manipulated using linear algebra. The result is spinning objects, scaled objects etc.

3D manipulated primitives

The illusion of perspective is created with computers through a series of matrix transformations. These manipulations are applied to points in 3D cartesian coordinate space mapping them onto a 2D canonical view volume. Matrix transformations can be used to manipulate models in 3D space, and if done so across multiple frames will yield animation.

Sphere made from recursive process Cube demonstrating zbuffer

The problem with moving from a 3D space to 2D is deciding how to handle the loss of depth. How do you decide which polygons need to be drawn in front and which behind? What if part of one triangular polygon is in front of part of another intersecting polygon? Which is in front? One solution is the use of a zbuffer. A zbuffer is an array of values, one per pixel, which specifies the depth of the nearest object at that pixel. If an object is found to be nearer it is drawn in front at that pixel and the depth is updated, otherwise nothing happens and that part of the object is occluded.

Budha: Complete demonstration of Lighting, Zbuffer, 3D

Lighting is the final project required to create an appealing scene. Lighting can be done (in its simplest form) by bouncing light vectors off polygon faces (whose direction of incidence can is specified mathematically via a normal vector) to the viewer location. Polygons are shaded by rendering gradients between colors specified at each vertex.

Boats created using hierarchical modeling system with waves created from polygons

Thanks to Bruce Maxwell, Taylor Hamilton, and my lab partner Shingo Murata.