TITLE: Double Shell
NAME: Wong Chee Fah
COUNTRY: Malaysia
EMAIL: wongcf@cyberway.com.sg
TOPIC: Physics & Math
COPYRIGHT: I SUBMIT TO THE STANDARD RAYTRACING COMPETITION COPYRIGHT.
JPGFILE: shell02.jpg
ZIPFILE: shell02.zip
RENDERER USED:
POV-Ray 3.01 (MSDos)
TOOLS USED:
Adobe Photoshop 4 - for image compression
RENDER TIME:
11h 15m 51s (40551s)
HARDWARE USED:
Pentium 133MHz, 64MB EDO, S3 Virge 4MB EDO
IMAGE DESCRIPTION:
Visualization of parametric equations defining a shell-shape surface
DESCRIPTION OF HOW THIS IMAGE WAS CREATED:
This image is a demonstration of the use of POV-Ray as a visualization tool.
Mathematical functions are better understood if they can be visually presented.
The wealth of mathematical functions available in POV-Ray makes it suitable as
a tool for this purpose.
The parametric equations defining the shell-shape surface are as follows :-
x = U*(cos(V)^3)*cos(U)
y = U*(cos(V)^3)*sin(U)
z = U*cos(V)*sin(V)
The shell is bounded by U from 0 to 4pi and by V from -pi to pi. The grid is
composed of spheres and cylinders unioned together. The grid is created by
first varying V for ech value of U (using nested While loops) and calculating
the sphere positions. As the spheres are calculated, they are placed in the
union group. The At_Origin and Origin_Occupied identifiers are used to check if
the origin, <0,0,0>, is already occupied by a sphere - this eliminates having
more than one sphere at the origin. As the spheres are placed, cylinders
connecting them are also calculated and placed. Note that checks for U = 0 is
done to prevent instances of degenerate cylinders. Once the first nested While
loop is completed, cross-running cylinders are calculated by varying U for each
value of V using a second set of nest While loops. This time, degenerate
cylinders are prevented by checking for cos(V) = 0. The whole Shell is then
placed in the scene and an onion color map texture is applied.
As a note to those interested in the parameters, the grid can be made smoother
by increasing then number of sphere-cylinder connection that make up each side
of a grid square. This is done by increasing the value of the U_Step and V_Step
parameters. The grid can be made denser (ie. smaller grid squares) by
increasing the Iterations value. Be warned however that memory requirement
increases with an increase in any one of the parameter. This scene for example,
requires 47313074 bytes of memory. Another parameter that controls the grid is
Thickness. As its name implies, it make the grid line thinner or thicker. DO
NOT enter 0 though as the parameter is used as a divsor.