TITLE: Flight of the Boomerang
NAME: Bill Leckey
COUNTRY: Australia
EMAIL: oldwolf@tpgi.com.au
WEBPAGE: http://www1.tpgi.com.au/users/oldwolf
TOPIC: Physics & Math
COPYRIGHT: I SUBMIT TO THE STANDARD RAYTRACING COMPETITION COPYRIGHT.
JPGFILE: owbmrang.jpg
ZIPFILE: owbmrang.zip
RENDERER USED: 
    Povray 3.01 Linux/DOS

TOOLS USED: 
    HF Lab, Paint Shop Pro, pdt_tree.inc,
       Dave G's Bezier Curve System.

RENDER TIME: 


HARDWARE USED: 
    386 DX 40, 486 DX 33

IMAGE DESCRIPTION: 

It is mid-morning, in the middle of a hot, dry Australian
summer.  The heat of the sun is starting to be felt as it
continues its job of turning the already yellow and brown
drought-striken grass to dust.  There is not even a hint
of green to be seen anywhere.  As I walk I kick up the dust, 
imitating the wind creating a willy-willy in the distance.   The 
wind is just light enough to try out the new boomerang I've 
purchased.  I step into the centre of the dry, dusty sportsfield,  
check the wind, rear back, and let fly.  The boomerang flies out, 
away from my outstretched hand, moving in a straight line for 
just a moment.  Then, as if by magic, physics turns its glance 
towards my toy, and  the boomerang slowly begins to curve.  
I watch fascinated, as it continues its flight, swinging back 
towards me, until it slows, hovering above my head, where I 
can reach up and pluck it out of the air.  

Boomerangs have always been my favourite toys, and have always 
fascinated me.  They seem such a simple toy, but during their 
flight the following pricinples come into play: Bernoulli's
law, Newton's laws of mition, gyroscopic stability, gyroscopic
precession and several other laws of aerodynamics.
A boomerang's wings generate lift.  The two arms of a boomerang
are aerofoils, and use Bernoulli's principle (air travelling
at a higher speed creates less pressure than air travelling
at lower speed) to create lift.
The mass (weight) of a boomerang sustains its flight according
to Newton's law of inertia (a body in motion tends to stay
in motion).
The configuration of a boomerang's wings generates a stable
spinning motion.  The length of the wings, and the angle at
which they are joined, enable a boomerang to spin in
a stable plane as a result of spin imparted on the launch.
This is "gyroscopic stability".
The combination of lift and spin causes the turn.  The 
aerofoil shape of the boomerang's arms causes more lift on
the forward facing arm (the upper), than on the backward
facing arm.  This force on the gyroscopically stable, spinning
boomerang results in a reaction 90 degrees later, causing
a change in the direction of flight.  This is called 
"gyroscopic precession".


DESCRIPTION OF HOW THIS IMAGE WAS CREATED: 


I decided that whatever my scene actually looked like, the boomerang
would be the main focus.  I therefore spent most of the time on the
boomerang.  I went through several false starts, until I achieved quite
a reasonable result using a CSG object.  It was designed in three
main sections:  the curve in the middle, the base of the arm, and
the aerofoil end of the arm.  The aerofoil is basically a half-cylinder,
behind which is a flat portion (a prism), then a cone, to smooth out
the aerofoil.  

To make the path, I used part of Dave G's Animation System:
Dave G's Bezier Curve System (Sorry, I can't track down the
url for them).  I produced a curve that mimicked the flight
of the boomerang:  it starts off at about shoulder height, flies
forward and up, then begins its curve until it begins to slope
down to hover above your head.  I then simply used a number of points
along the curve to place the boomerang.  One thing I (stupidly)
hadn't counted on was: all I was doing was _placing_ the
boomerang, not rotating it as it flew.  So, I took two points on
the curve, calculated the angle between them, and used this
to rotate the boomerang.  A little quick and dirty, but it works.

I tried to give a "snapshot view" effect.  So the boomerangs placed
around the path all have a transmit value to make them slightly
transparent.  Then, for the final hovering-over-the-head bit, I
placed several very transparent boomerangs, then one not-at-all
transparent one, as if that was it's final position.

I used to throw boomerangs around a sportsfield/BBQ area located on
the edge of my home village, and I've tried to recreate that here.
The BBQ shed in the background is simply several poles, with 
galvanised corrigated iron sheets attached.  Beside it is a 
galvanised corrigated iron watertank on a concrete block.  The 
galvanised corrigated iron is produced by simply using a gradient 
normal, with a slope map approximating a sine wave (I think I got 
this from the POV-Ray docs).  If you look very closely at the 
watertank, you'll see a tap on the right-hand side.  Of course, 
that only ended up as 1 or 2 pixels in the final image :)

In the shed are three simple brick BBQs, and three metal/wood
picnic tables.  Again, just simple CSG objects.

Just outside the shed are two 44-gallon drums, recycled as bins.  These
are made up of three segments placed on top of each other.  Each segment
is a cylinder with a torus subtracted from the outside to give it
a slight inward curve.  The whole bin was then shrunk a little, and
subtracted from the larger bin to hollow the thing out.

To the left and right of the shed are bins.  These bins were popular around
our area, consisting of two poles, with a bin swinging between them.
The bin itself is a series of truncated cones.  The handle on the lid 
is a rather deformed torus.  

The Koppers log (treated pine) fences are simply three cylinders, with a 
wood pigment map (which you can't see at all).

Behind all of this is an old hardwood fence.  The posts and crossmembers
are just stretched boxes.  They are given the old, falling apart feel
by applying a bozo pigment map with a lot of totally transparent areas
and then stretching it to give long, thin empty areas.
I wrote a small bit of POV code to calculate random angles for the posts
and cross-members to be placed at to give the old, hand-hewn, falling
apart feel to the whole fenceline.
The grass was the interesting bit.  I noticed, whilst taking off on a
plane, that dry grass tends to congregate in little patches, with a
small gap between each.  This is almost perfectly modelled by the
"crackle" modifier.  Inside each of these patches, are further patches,
again, crackle came into play.  The clear patches are simply a transparent
portion in the pigment map, and the whole texture is mapped onto cubes.
These are raised slightly above a brown (dirt) plane, to give a more
3D feel than simply mapping the whole deal onto a plane would give.
The hill in the background just has a texture mapped straight onto it.
The hill itself was created by HF lab.  I wanted a hill with two peaks,
sloping down to the ground.  The method I used is painful, and I'd
love to hear from anyone who knows how to do this more quickly. 
Basically the algorithm is:
1. Make a random landscape (gforge), set it's limits between -1 and 1.
2. Make the highest point where you want the peak.
3. Repeat steps 1 (with a different seed) and 2
4. add the two landscapes together.
5. Repeat steps 3 and 4 lots of times.  Slowly a hill will develop.
6. Use clip and floor, to remove all of the surrounding (smaller) hills.
7. For the second peak, repeat steps 1-6, but put the peak in a 
   different place.
8. Add the two hills together.
9. Save as TGA.

A quick word on the grass textures here.  I've used several "segments"
to produce the grass areas, but I wanted the textures to meet at the
"join".  This was achieved by placing the grass areas _then_
applying the texture. 

There are a number of trees in the background, but only a couple of 
definitions. I didn't want to run out of memory, and trees tend
to have a lot of objects (and I have a lot of objects to start with).
I used Paul T. Dawson's pdt_tree.inc utility.  I got
it from 
  http://www.voicenet.com/~ptddawson.
I only needed to make a few changes to Paul's example tree
to produce exactly what I wanted (hey, you have to be lucky
_sometimes_).
If you're interested in producing trees, another utility to 
try is Sonya Roberts's Tree Utility Version 2.0 (maybe 3.0 by
now) from
  http://www.geocities.com/SoHo/Lofts/1022

The shape of the trees came from this observation by a visiting mate
from Japan:
"In the northern hemisphere, most trees are spheres, or a triangle, with
the point on top.  In Australia, they are mostly upside-down triangles"
To that, I'd add that our gum trees (eucalyptus), tend to be like
upside-down triangles on a stick.  The triangle tends to rest on
a much longer trunk.

In the background, you'll also see a windmill.  This is a pre-
Southern-Cross type, so it has a crank arrangement on the back
of the fan to move the pump shaft, rather than a gearbox.
This is a large CSG object.  The support, and struts are all cylinders.  
This allowed me to make the base easily, since with cylinders you specify 
the endpoints, rather than making the cylinder, then doing to calculations 
yourself to move and rotate it into position.  The fan was produced 
by using two planes to cut out a blade from a cylinder, rotating it a 
little to tilt the blade.  The blade was then rotated several times around
the hub.

There are very few lights in this scene.  I started by putting a "sun"
light point, a long way away behind the viewer.  I made this yellow to
give everything a warmer tinge, and give the feeling of hot and dry.
I then placed a white light in the same position to really brighten 
things up.  Then, I required only one more light, a small light inside 
the shed, mimicing the sun reflecting off the stones/sand just in front
of it.

