Sep-Oct-1998, Topic WATER
POV-Ray 3.0, 1998running.zip
This image was choosed as "Splash Screen" for the Windows version of the new POV-Ray 3.5! After some funny logo integration suggested by Chris Cason, you can see the results below.
A little brook. Not really a river... now. Water is slowly running down,
stoped in some places by the stones, creating little pools.
During the first month, I was not able to find any reasonable idea for
my (kind of) skills, and I decided to not enter this round and I've started
then some private attempts to make a convincing stone. I made it with a
mesh, using arrays for the points and for the triangles. Then I filled by
hand both arrays for a 1 unit box and created some macros to subdivide and
randomize automatically this "seed" box shape into something looking as a
This method obtains nice stones, but the they need a too big number of
triangles (memory) and subdivisions/randomizations (parsing time). So, I was
forced to think in blobs, but ...how? Well, why to not use the previous
"mesh" squeleton? Placing blobs in the points (instead of making triangles
with them), I can get an interesting stone with only a few blobs (bcos the
stone interior is not filled)... Wow! It worked nice and fast with a few
subdivisions and randomizations!
Ok. The stone looked very nicely shaped, but due to it's blob nature, it
seemed too rounded, like a river stone....
...RIVER stone? ...mmmmm... ...WATER!!!! Well, I can enter this round! :)
At that point, I figured a riverbed plenty of rounded stones, with a low
water volume, running down slowly. Not so easy as simply putting a water
wavy-bumped-plane with some of these stones...
Fisrt of all, I wanted many stones populating the riverbed, so, explicit
placement was discarded. I tried then a very simple collision-detect macro,
but, using imaginary "bounding" spheres, the stones looked too much spaced
between them. So, a random placement was finally used, with many trials to
obtain a good seed with not many obvious collisions. This way the stones
look more "naturally" placed (altought there are some evident collisions).
These stones are placed along the riverbed, which is a height_field done
with POV-Ray in a separate scene: the tipical B/W HF generator, with a two
layer texture : a wrinkled texture for the terrain surface and, on top, a
marble one, showing only one big line to create the riverbed hole. Both the
riverbed and the stones are textured with the same tree-layer texture, which
is composed of one standard stone for the main texture, a second, custom,
gradient y for the dirty on the stones, and last, a gradient y mapped
over the whole thing to simulate the underwater stones and bed as if they
were wet (more dark) and greenish.
The plants on the banks are the most simple plant I was able to model.
They are a bunch of random curved leafs grouped togheter with a random
loop and also randomly pigmented from Gold to DarkGreen. The plants are
placed by hand, to disimulate some ugly things on the banks.
The fishes are done very poorly, but well, they are underwater... :( The
fish model was created with a variant of the stone macro, adapted for the
fish shape. Nothing to be proud to explain...
The hard work of this scene was the water height_field. I have done the
scene first with a simple box for the water, with a wavy normal. When the
arrangement of stones looked right, I've copied the scene into another one
(called hf_water.pov, included in ZIP), which I modified to make the stones
and riverbed totally black, and the water box textureed with a B/W texture
with the same wavy pattern as the original. Placing the camera above, the
result was a nice heightfield of the water, with the stones and riverbed
differenced from it (in black).
And, why all this work? Well, to create the ilusion of "running" water.
The wavy pattern normal on the water-box looked nice, but not really as if
it were running, affected by the stones. So, i figured this method to latter
edit this height_field in PCPainbrush to "paint" some turbulences around the
stones (with "glaze" and "smear" tools), following the supposed direction of
the water. Of course, I've done hundreds of trials to create some convincing
ripples (not a great job at the end, but not too bad...), and later to place
the HF aligning the holes with the stones. Also, the texture for the water
was a hard work with many tests. Finally, a glass finish with ior 1.2 worked
fine. The pigment is a heavilly filtered white and a cutted fog is under the
surface of the water to simulate some dirt.
Well, that's the idea. See the code if you want some more details and
don't doubt to ask for anything missing or obscure.
WIPS, tests and other images: