EMAIL:		ceckak@televar.com
NAME:		Ken Cecka
TOPIC:		Great Engineering Achievements
COPYRIGHT: 	I SUBMIT TO THE STANDARD RAYTRACING COMPETITION COPYRIGHT.
TITLE:		
COUNTRY:	USA
WEBPAGE:	http://www.televar.com/~ceckak/povray
RENDERER USED:	POV-Ray for Windows
TOOLS USED:	sPatch
		Blob Sculptor for Windows 1.0
		Texture Magic
		Crossroads V1.0 - Beta 4
		Notepad
		MSDOS Edit
		Pico
		Borland Builder and GCC (custom coding)
		Paintshop Pro
RENDER TIME:	6 Hours, 41 Minutes, 2 seconds
HARDWARE USED:	Intel Pentium 166, 64MB ram, Win NT 4 Workstation

IMAGE DESCRIPTION:




DESCRIPTION OF HOW THIS IMAGE WAS CREATED:

I've never entered anything in the IRTC before, and I was sitting arround afte classes one day not wanting to get started on homework, and I decided to check out the current topic.  Great Engineering Achievements actually seemed kind of boring to me since I've lately been fascinated with organic modeling with sPatch, but then the caveman idea popped into my head, so I decided to go for it.

Inspirations
If you look at the head animation on my web site, you'll see that my first attempt at modeling a human was rather unpleasant.  I decided to work through Anto Matkovic's tutorial (http://www.geocities.com/SoHo/Studios/7415/).  Before I could get started, I needed some pictures to work off of, so I started poking arround the web looking for pictures of Neanderthols.  I found materials in several places (see the list at the end), but primarily used a picture from a Newsweek article published last July (http://www.neanderthal-database.com/neandert.htm).


Modeling the head
To get some reference points, I stretched out the image in Paintshop Pro and printed it on a piece of engineering paper.  Then I turned the grid on in sPatch and sketched out three orthogonal profiles.  From there, I followed the first few steps in the tutorial and continued tweaking and adding to the mesh until I was satisfied.  I put the most work into the head since it would be one of the primary focuses in the scene, but there is an entire body underneath the robe.  It's just not as detailed.  Two points of difficulty I encountered in modeling the head were the eyes and ears.  Because of the way I built my mesh, the eye sockets ended up sealing over with no hole to place the eyes in.  I could have solved this by adding another row of points on each side of the head, but never did because it turned out that his eyes aren't visible anyway.  The ears were frustrating in the final step when I had to attatch them to the head.  I started several different times on the ears before I finally found a method that worked.  Originally, I just made an ear and tried to attatch it, but inevitably, I had too many, or not enough points.  My solution was to copy the points from the region where I wanted to attatch the ear, and build directly from those.

Modeling the wheel
The wheel turned out remarkably well for the small ammount of time I spent on it.  I made it with Blob Sculptor and it is essentially a mass of spheres for the rock and a circle of spheres for the wheel which are fairly regular in size and position.  I added a couple of smaller blobs to fill in some of the large gaps, but not many.  All of the blobs making up the wheel itself were in a single plane.  I expected this would look rediculous, but I decided to give it a shot and see what it looked like.  As expected, the wheel looked very obviously blobby, not what I wanted.  I decided to add a large scaled crackle normal to it though, and wow!  The combination of the real bulges of the blobs and the normal gave the perfect effect.

A little planning
Up to this point I just had a vague idea of a caveman carving a wheel out of stone.  I hadn't really figured out what the scene was going to look like though.  Now that I had the caveman and the wheel built, I needed to figure out how they were going to fit together.  I wanted to keep his face visible since that was where I had put the most work, but I wanted to make it an interesting pose.  The layout of the current scene is pretty much what I came up with.

Wishing for bones
My next challenge was getting the caveman into the position I wanted him in.  I modeled him in an erect positions with both arms bent at the elbows and hands pointing out ahead of him.  sPatch is wonderful for building a model, but rearranging things can be a hastle.  I'm usually a bit of a perfectionist and try to make everything correct even if it's out of site of the camera, but this time, I just started twisting arms and body parts till they were in the correct positions and left the distortions for later.    I was pretty sure I wanted him to be wearing a robe of some sort, so I knew most of the problem areas would be covered up.

The tools
I threw together the rock and the antler rather quickly.  I modeled them both as really regular round shapes, and then used the random noise function in sPatch to skew them a bit.  Then I added them to the main caveman mesh.

Mesh export organization
One of the difficulties in working with sPatch is that it exports all of it's layers into one pov file.  By this point, I had the caveman, his fingernails, the antler, the rock, his robe, and his hair all in one file.  Each of these objects needed different textures, so they had to be exported independently by systematically deleting the other objects from the scene and then exporting the remaining one.

My first plunge into the world of heighth fields
I probably spent an entire day trying to get the height field right.  Originally, I was going to put the scene at the top of a hill, but it just didn't look right.  When I decided I wanted some mountains in the background, I tried downloading some DEMs from the web, but I wasn't quite satisfied with them either.  Finally, I rememered HFLab and decided to give that a shot.  I actually ended up using one of the DEMs as a base image and modified it with HFLab.  I used Paintshop Pro to flatten out the foreground part of the image so it wouldn't interfere.

Fur just can't be faked
Up until now, I had been using a cheesy texture on a flat robe.  I had done my dangdest to make it look furry, but you can only do so much with elongated bump normals, and being this close up, it was a lost cause.  I decided to have a go at writing a program to add fur to an object.  I don't know enough about bezier patches to parse them directly, so I exported my robe as a DXF and used Crossroads to convert it to a pov triangle mesh.  I slapped together a quick little program which would go through the triangles in an input file and spit out a bunch of perpendicular triangles for each one.  Several problems appeared right away.  I was calculating normals based on the order the three corners of the triangle were listed in the file, but it turned out that these normals were fairly random in direction, alternating all over the place.  The only realistic solution I could see was to write a program which could read in the entire mesh, fix the normals, and dump it all back out again.  Once this was complete, I rewrote the fur program using the classes I developed for the normalize program, and it seemed to be working better.  I threw in some randomizers for length, width, and angle, and the result was pretty believable.

The following are most of the URLs where I got ideas and inspirations from:

http://www.neanderthal-database.com/neandert.htm
http://www.neanderthal.de/e_thal/muse/bilder.htm
http://www.compulink.co.uk/~archaeology/
http://oregon.uoregon.edu/~osma/FIELD/fschool.html
http://www.kerna.ie/archaeology/
http://www.ee.liverpool.k12.ny.us/EE/staff/Team_3/MOQUIN/desert/desertclimate.html
http://www.salc.wsu.edu/Classes/ipip/u-canyon/canyon.html
http://www.website1.com/odyssey/week1/desert.html
http://www.utah.com/destin/coloradop/cp.htm