Erector Set Crane.txt
by
Mark Vernon
[email protected]


    This 640 X 480 32-bit rendering of a Crane made from
erector set parts was created using POV 2.2 on a Mac II ci
with an Applied Engineering Transwarp 40 MHz 68040
Accelerator and 20 Mb Ram.  All calculations and coding were
done by hand.

    In trying to come up with an image for the January
competition, a friend suggested doing something with an
erector set.  This sounded great but I wasn't sure if I could
render the girder, pulleys, brackets, support members,
screws, nuts, ..etc. necessary to build an object, but I
could feel 'the challenge'. I picked up the gauntlet and
tried to create a girder. Having accomplished that, I was off
and shortly after that, the idea of a crane hit me.

    Since this is, for all practical purposes, my first
full-fledged rendering from start to finish, I must say that
I learned a lot about memory and time efficient coding while
doing this. I initially used a hand made bi-cubic patch for
the rib on each side of the girder, but found out quickly how
memory hungry bi-cubic patches are. I realized that I could
difference a slightly smaller cylinder from a bigger cylinder
(creating a hollow pipe) and then clip 1/2 of it to produce
the same rib that the bi-cubic patch had. It reduced my
memory by over 1/3 and significantly sped up the trace time.

   Unfortunately it still grew to where 20 MB of ram was not
enough. I rewrote the girder code so that instead of creating
a box with a hole differenced out and then instantiating that
many times with an offset, I created 1 long box and
differenced out all of the holes as one, then added the side
ribs as long ones rather than short ones on each instantiated
piece. This reduced my memory requirement by almost 6 MB.
Another trick that was recommended by a friend is when you
need to difference out a round hole, use a cylinder rather
than a sphere because a cylinder's radius is defined as the
squareroot of the sum of the squares of 2 dimensions and a
sphere is of 3 dimensions.  This saves on additional math and
rendering time.

    I think that during the coarse of this project, I have
now read 'Ray Tracing Creations' (by Drew Wells and Chris
Young) as well as the POV docs all the way through several
times.

    I have included the scene files. Any recommendations or
constructive criticisms for memory (it takes about 14Mb to
render) and coding efficiency would be welcome.

Enjoy!

Mark Vernon

PS.  Thanks to Andy Cooper for the erector set idea, John
Pingel for the math lesson and the POV team for making a
great raytracer.