EMAIL: tm-ray@consistent.org
NAME: Terran Melconian
TOPIC: Warfare
TITLE: American Cemetary in Normandy
COUNTRY: United Police State of America
WEBPAGE: http://www.consistent.org/terran/
COPYRIGHT: I SUBMIT TO THE STANDARD RAYTRACING COMPETITION COPYRIGHT.
JPGFILE: normandy.jpg
ZIPFILE: normandy.zip
RENDERER USED: 
    MegaPov 0.7 (custom version patched to fix bugs)

TOOLS USED: 
    perl, imagemagick, dia, vim

RENDER TIME: 

    Time For Parse:    0 hours  1 minutes   6.0 seconds (66 seconds)
    Time For Trace:   19 hours  9 minutes  38.0 seconds (68978 seconds)

HARDWARE USED: 
    750 MHz Athlon


IMAGE DESCRIPTION: 

    There are 9,386 people buried in the American Cemetary in
Normandy, France, and another 1,557 whose remains were never found.
Most of these people died during the initial landing during World War
II and the subsequent combat in France.

    Over 400,000 Americans died in World War II.  Many of them likely
believed that they were fighting for "freedom" and "justice", but the
reality of this is questionable.  At the beginning of World War II,
the USA rounded up all the Japanese-Americans it could find and placed
them in camps, without accusing them of anything or trying them, in
complete violation of its consitution.  The conditions in these camps
are reported to have been comparable to the camps in which the Nazis
kept captive Jews.

    In the last few weeks, the US Congress has once again used the US
Consitution as toilet paper, this time with the excuse of "terrorism"
and a "new kind of war." This makes USA considerably less free than
many former Soviet countries - which people in the USA always used to
hold up as an example of opression.

    The freedoms are gone.  The dead, of course, remain completely and
entirely dead.

DESCRIPTION OF HOW THIS IMAGE WAS CREATED: 

INTRODUCTORY COMMENTS
~~~~~~~~~~~~~~~~~~~~~

    I had only about two weeks to work on this, because I didn't
even remember that the IRTC existed until half way through October
when I was looking for povray information for an unrelated endeavor.
This is also my first entry, so please tell me if I've done anything
inappropriate.

    When I saw the topic, I was sure this round was going to be full
of pictures of airplanes and exploding buildings, and I wanted to do
something different.  I wanted a very simple scene.  That meant that
every object has to be almost a work of art in and of itself to carry
it off, and I've tried to achieve that.  I also generally try to avoid
pasting in images and using things written by other people, because it
feels like cheating.

    I've never been to France in person, so I worked from pictures.
Here are a few:
 
    http://www.abmc.gov/no.htm
    http://www.igr.nl/users/vandenheuvel/Individuals/images/roosevelt4.jpg

SKY
~~~

    I did the sky first, because it seemed to me that a realistic sky
would be essentialy to carry the picture.  I played with some squashed
spheres, as I've seen other people do, but I ultimately didn't like
it, so I went with planes.  When I have more time, I'll play with a
very large sphere almost completely below the viewpoint, like the
actualy sky is, and see if I like that any better.

    The outer layer is blue with some dark clouds on it; these clouds
are intended to look unlit.  There is then an inner layer which
contains media clouds using Mie scattering.  It's 1000 units thick; I
think of each unit as being one foot.  The clouds look like cirrus ice
crystal clouds; a higher media density would presumably produce more
cumulus-style, but I didn't have time to try.  Povray doesn't support
wavelength-dependent Raleigh scattering, so I couldn't color the sky
"legitimately".  Thus, the outer layer is manually colored blue, and
the light on the clouds is faked to give it color.  I just stuck a
small transparent sphere around a point light source and colored it
appropriately.

    The light striking the ground is yellow, with the blue components
coming from the sky, as it really is.  This means you have to render
with radiosity on or the ground looks much too yellow. (It's not
actually the same light lighting the sky and ground, because I wanted
an area light for the ground)

    The sky took about a day by itself.  I'm reasonably happy with it,
so if you don't like it, I'd appreciate it if you could be as specific
as possible about what you don't like.

    The sky*.pov files are my test images for the sky.

STONES
~~~~~~

    The base cross shape was modeled in Dia with Bezier splines, and
then converted to a Povray prism with a custom Perl script, svg2pov.
This script should be included in the zip file, and you are welcome to
use it.

    The engraved text was quite difficult.  I first tried the built-in
Povray text, but it just wasn't going to do.  The Povray text can only
be extruded straight, but engraving is done at an angle.  I tried
the font3d utility, which is able to put bevels on text, but it wasn't
able to put a large enough bevel on before its algorithm broke.  Thus,
I had to write something myself, again.  I read some papers on
meshing.  I got around having to implement the difficult parts of the
meshing problem by not making front and back faces, but just doing the
sides.  This makes it utterly unsuitable to use as a positive, but
it's perfect for engraving with.  The script, called engrave, should
be included in the zip file (assuming I get a zip file put together in
time) and you are welcome to use it.  It will actually engrave any
bitmapped image you can generate, and can do text internally without a
supplied bitmap.

    While I was working on this, I found that megapov's "solid" meshes
had some bugs, and didn't work correctly in a difference operation!  I had
to fix it.  I've submitted this to Nathan Kopp, and it will hopefully
be appearing in the next release, but if you want a copy of the patch
right away, it should be up on my web page RSN.

    The names are all real people buried in the cemetary, courtesy of
abmc.gov.  They are not all actually buried right next to each
other, however; I assigned the names to random locations for want of
better data.  The inscriptions are not necessarily exact, either, but
they should be close (I might have gotten a few abbreviations wrong).
Only one inscription can really be seen anyway, so it hardly matters.
:-/

    The only other interesting thing about the stones is the slight
glow around illuminated edges; the stones are actually hollow with
media inside to achieve the effect.  I think it makes them look much
more realistic.  corner.pov and marble.pov were my test images for the
stones, with cross.pov being the final engraved marker.

GRASS
~~~~~

    I had a Perl script to generate grass from before.  Each blade of
grass is two triangles.  It's very simple, but it generates meshes
which can be tiled in large quantity with reasonable memory
requirements.  It obviously won't stand up to much close-up scrutiny,
and I was concerned that it wouldn't be good enough in these scene,
but it turned out to be ok.

    The angle of the blades is biased by location to create the
lawnmower-row effect; I added that to the grass include after noticing
very distinct lawnmower rows in some of the pictures I was working
from.  grass.pov is the grass demo.

TREES
~~~~~

    I had trees from before, too, but they were too memory-intensive
for this application.  The script made them out of cylinders, and the
leaves out of prisms - I can fit about 15 trees in memory at a time,
and that just wasn't enough for the forest effect I wanted.

    The only thing Pov can handle with low memory requirements is
meshes, so meshes it had to be, and I rewrote the script to use them.
Thus, the trees have square branches and diamond leaves (they're not
even smoothed with normal vectors).  However, they're so far away that
they look OK anyway, and I can fit hundreds of them into memory,
instead of just a handful.  There are actually only three unique tree
models, two tall and one short, which are used over and over.  I tried
a few more, but it didn't add anything.

WALKWAY/POOL
~~~~~~~~~~~~

    The concrete texture is quite detailed, down to the actual
stones/cement, but you can't really see it at the distance.  The
concrete blocks in the walkway are all slightly rotated in random ways
to simulate sinking and movement over time.  

    The reflecting pool does exist, but isn't located where I showed
it; I took some liberties.  I put it in where I did because the left
side of the image looked a bit sparse without it; there was no way to
position the camera so the text on two stones would be clearly visible
without making the spacing unrealistic.

    The water was not hard to do; water gets good built-in support by
virtue of being something everyone wants, I suppose. ;)  The only
interesting thing about the water is that many of the people I showed
early versions of the image to thought it should be more reflective,
even though it's already as reflective as it can be without being
nonphysical.  I decided to go with the realistic version anyway, but
if you want to see the version they preferred, turn on the
BRIGHT_SHINY_WATER option.

FOG
~~~

    There is some fog in the picture, for the simple reason that I
think it looks better with it than without it.  I'm not entirely
satisfied with the fog appearance, but I tried many different things
(including nothing at all), and this was the version I was happiest
with.  Any advice on the fog would be particularly appreciated.

MISC COMMENTS
~~~~~~~~~~~~~

    I considered putting in some other things like the flag, but I
concluded it would just distract from the effect I was trying to
achieve, which was an emphasis on the immense number of gravestones.
I also tired raising the camera up a few more feet, and while it
captured the large number of gravestones better, it made *all* the
inscriptions unreadable, which I considered unacceptable.

    The zip file should contain everything required to render the
image, except for the engraved text, which requires a fixed
megapov.  I haven't included many of the .inc files, however (such as
the 12 megabyte one with the engravings) - you'll have to recreate
them using the scripts.

    Thanks to all my friends and family who put up with me as I showed
them version after version of this image for their comments. :)

 vim:wm=10