|
First I constructed wire images in Open GL, based
on our wrapped torus. This creaed a solid shell with various
parameters: It could be rotated, and the shading changed to flat or
smooth. The respective radii and their growth
rates, number of whorls, and the number of segments
could be changed. Also the fxn determining the height could be altered. The best
fit for the actual shell I was modelling was a square-root fxn on the
number of whorls. One can model a large number of different shells by
tweeking just these paramenters. |
Rather than paste this model directly into the
RayTracing code, I tried reconstructing the shell out of 2nd degree
rational bezier patches. As you can see, not all my tangents matched
up, since the cental control point was only numerically approximated.
All others were algebraic solutions. Using bezier patches was much messier,
but made recreating non-linearities easier. For example, in this picture
(right) the outer-most, upper segment has been moved away from
the underlying one to show off more of the structure. ![]() A further cool thing to do would be to make all the parameters (including index of refraction for a glass shell) into keyboard fxns, and to add a choice of texture maps. |