EMAIL: duncang@eclipse.co.uk
NAME: Duncan Gray
TOPIC: Desert
COPYRIGHT: I SUBMIT TO THE STANDARD RAYTRACING COMPETITION COPYRIGHT.
TITLE: No Fishing
COUNTRY: Great Britain
WEBPAGE: www.eclipse.co.uk/duncang
RENDERER USED: POV-Ray 3.6.0.icl8.win32
TOOLS USED: I try and avoid tools outside of povray, but in this case
            a bitmap image was the easiest was to get the 'no fishing'
            text. Adobe Image-Ready was used for this text and to convert
            final output to JPG
CREATION TIME: Approx 4-5 weeks part time evenings/weekends.
RENDER TIME: 
HARDWARE USED: P4 2.8 for development / P4 3.06HT for rendering (with 
            hyperthreading disabled so that the CPU could give it's all
            to POV-Ray).
IMAGE DESCRIPTION:

    "No fishing" sign in desert !!

VIEWING INSTRUCTIONS:

I'm breaking in a new TFT monitor, and I am sorry to say I am having a
difficult time trying to get the brightness/colour/gamma set
appropriately - every time I load this image on to someone else's system
(most notably those using cathode ray tube monitors) the balance of
brightness/contrast and gamma is not what I intended.

Please feel free therefore to load the image into a paint program and
adjust the gamma to suit your system and your viewing preferences. I
would suggest tweaking the gamma such that the desert does not become
completely white, but so that the grain detail of the sign becomes clear,
and some surface detail in the rocks becomes apparent.

Thank you.

READING INSTRUCTIONS:

Judges, I know you are instructed (or requested at least) to read all
this accompanying text, and I appreciate that I have been a little
verbose in places. I therefore ask that you read as little or as much of
it as you wish. It is predominantly for the benefit of anyone who would
like to know how the scene was put together and cant get their head round
my rather messy style of programming (ie I just hack it together as seems
fit at the time, with little or no intention of trying to re-use any of
it) and my largely absent comments.

DESCRIPTION OF WHY THIS IMAGE WAS CREATED:

Well, the theme was desert - it was kinda crying out for a nice
isosurface, so I finally installed Pov 3.5 and started playing with
isosurfaces.

What I itended to produce was an object that can be viewed from any
angle, any position, and should be recognisable as a desert - nothing
more (the sign gets explained later)

I must admit, everything I have done with iso's is very hit and miss -
unlike most other pov objects, I have not entirely got the knack of
changing the functions in a way that will give me the desired effect, (ie
to visualise how I want it to look, then amend the function to get that
desired look) it's more a case of changing the functions, seeing what
effect it has on the scene/object, then amending the change to be closer
to what I want. I am thus finding it a much slower process to put
together an isosurface based scene, though I must admit the power and
versatility of the isosurface is excellent.

Urm, I guess the sign deserves an explanation ... when first attempting
to generate the function to give me a desert-type surface, I was viewing
the desert from further away - so far that the bounding box could be
seen. On one particular hit of the render button, my intended desert
undulations, combined with the rectangular block that was bounding the
isosurface, produced me the most wonderful looking plank of wood.

I got a little side-tracked at this point creating a weathered plank - I
recognised that the isosurface could be used to 'eat' away the ends of
the plank in a way that would give the appearance of rotted or broken
wood. I wasted about a week building a sign - with no particular
intention for it to remain in the scene, just because I was enjoying
fiddling with it. The sign (with no text) remained in the scene while I
continued trying to get the desert surface right, and I guess at some
point in the development process, I decided the sign was going to stay.
This just left the question of what to write on it. 'No Fishing' I would
agree is a ridiculous thing to find written on a sign in the middle of
the desert - I guess that's why I stuck with it, it appealed to my rather
strange sence of humor. I dunno, you figure it out  ;-)

DESCRIPTION OF HOW THIS IMAGE WAS CREATED:

First thing to note I guess is that the rocks are not rocks, the rocks
are rock. There is only 1 rock in the scene, it just happens to poke
through the sand in many places.

The great thing about isosurfaces (errata: one of the great things about
isosurfaces as I am sure there is much I have yet to discover about this
rather useful object) is that the function can be added to or subtracted
from by a secondary function. Thus the rocks and the sand are both based
on the same function - an undulating surface. for the sand, a function
describing a small rippled pattern based on a sine wave is added to this
base undulations function. For the rocks, a combination of granite and a
few crackle patterns are added to the same base function.

To provide some control as to where the rocks will protrude through the
sand, the base function is scaled up slightly when it is applied to the
rocks. In turn the rock isosurface is positioned lower on the y axis than
the sand function. This ensures the rocks protrude predominantly at the
peaks of the undulations - my theory here being that the dune has
gathered there because the rocks provide it with some shelter from the
wind, but that as the dune level reaches the height of the rocks, the
wind is again able to blow the sand elsewhere. I added to this an offset
to the base undulation function in the x and z axi when applying the
function to the rocks - This is intended to reflect that the wind is
blowing from the left, slightly from the distance towards the foreground,
therefore the rocks are offset slightly towards the wind (ie the sand has
piled up behind the rocks) - it was this change that produced the
'fingers' of rock reaching down the side of the dune right of center in
the picture. I liked this effect so stuck with it.

There are then two varieties of plants - grassy-type plants (plant1) and
twiggy things with small leaves (plant2) - both are created with macro's
that have the ability to seed every such plant so it is unique, however I
found that the memory requirements of the scene were two high when a
large quantity of plants were added. The scene therefore creates 10 base
plants of each variety (varying sizes) and places those plants again and
again in the scene. Memory usage dropped dramatically (though I still
wouldn't recommend rendering on a machine with less than a gig of ram -
pvengine.exe consumes over 700Meg of memory building this scene)

positioning of the plants was done in a similar way to the dune/rock
relationship - the twiggy plant was first, and I figured this plant has a
small seed, therefore it's seeds are dispersed by the wind. It might
therefore follow that the seed is more likely to take root somewhere
where there is a little shade from the wind. The loop which places the
twiggy plant therefore keeps picking random positions until it finds
somewhere where the rock iso is higher than the sand iso. It then tracks
downwind until it hits sand, and defines the plant position to be at that
point. The twiggy plants are thus predominantly down-wind of a rock.

The grassy plants are based on altitude, I decided that this plant is
more sucessfull when in the hollow of a sand dune. Thus the algorythm for
scattering the grassy plants picks 10 random positions, and places the
plant at whichever position has the lowest y value.

A function is also used which examines the values of cam_loc and cam_tgt
and decides if the chosen location is actually in view of the camera.
(very approximately) - if it is not somewhere in front of the camera, a
new location is chosen.

Finally, a little ground-fog to give some depth to the image.

Oh, and the sign of course, which as I mentioned earlier was developed by
accident, and included in the final scene because it was there all the
way through development.

RENDERING TIPS:

Warning, this scene is somewhat memory hungry .....

Both my dev and render machines have a gig of ram, pvengine.exe consumes
768 Meg of RAM in the rendering of this scene. If you wish to re-render
the scene for yourself but do not have much ram, I would suggest decreasing
the number of twiggy plants (currently 350; line 275 of desert.pov) and the
number of grassy plants (500; line 313 of desert2.pov). It is the quantity
of plants that is causing this memory usage in pov - decreasing these will
drastically impact on memory requirements - indeed if it were not for the
plants, the scene would only have 5 or 6 objects.

Sorry, but I didn't note exactly how long it takes the scene to render - it
is less than 24 hours at 1280x1024 aa+0.3 with area-lights on a 3GHz P4. if
the area light is turned off, it will render overnight.

And that's about it - I hope you like it.