Parametric Geometry and Lighting

CS 348B - Final Project Proposal - 2003

Jared Jackson

My proposal was inspired by two projects that I saw on Andrew Glassner's web site. The first was a method for mapping complex geometries onto simple ones, and the second a visual simulation of lightning. My original thought for a project was that I could produce an image similar to this one created in a physics lab using two Van deGraff generators, each surrounded by an electric dispersing shield:

Glassner's paper on lightning generation refers to other papers on the creation of a geometric representation of the lightning. These papers use an approach that generates the path of the lightning using a statistical method with random numbers to simulate a roughly straight path. This approach would not be sufficient for the above image, since the shields around the generators and the fact that there are two generators cause the artificial lightning to arc.

This led me to thinking about using parametric equations to define paths that you could map a geometry onto. This geometry could be used either for shape generation or creating a light, either as a path or an area. You could then approximate the path of the lightning by defining an arc, then let the program manipulate that arc to make it more realistic.

So, my actual proposal for the project is to implement parametric geometry for shapes and lighting (and hopefully lightning). I thought I would first try to define a structure that could generate an image of a light bulb like this one:

Where the shape of the bulb is defined by:

x(u) = ext_radius * sin(u)
y(u) = ext_radius * cos(u)
z(u) = 4 * int_radius / Pi
radius(u) = int_radius

The shape would then be stretching a circle of the given radius along sampled points of the parameterized line defined by the equations above. In order for this to work, the tangent of the line would also need to be defined as well as the start and stop u values and the number of samples to take. The equations would probably be formed as S-expressions (e.g. (mult (5 (sin u))) ).

I thought I could then turn this into either a geometry or a light of varying intensity and render it in a room at different intensity values.

The same scheme could possibly be used to create neon lights:

Or the geometry could be changed by either changing the circle making the tube to another shape (like a star) or perturbing the perfect trace of the path somehow (like in lightning simulation).

This same technique could be used to model hair as cylinders following a path with tapering radius, but I'm not adventerous enough to go down that path right now.