Submitted by , posted on 02 July 2002

Image Description, by

What's up all!

First, I'd just like to say that man- the IOTD's are really looking nice and you all should keep it up. There's nothing better than working hard and getting nice feedback for your work. Anyways- for this shot's description.

This is a procedural aquarium that I've been developing for two weeks in my spare time for a chapter of a friend's book. I say 'procedural' because a lot of the things in it are controlled using a procedural texture primitive- noise. The first thing I did was develop a bunch of interpolation functions- linear, cosine and cubic. Then, using noise I somewhat uniformly dispersed the fish around the aquarium. Each fish has its own tic count timer. When it elapses, a new position is chosen randomly (via noise) and the fish is moved via one of the three interpolation functions. Also, if you look at the back of the tank you'll notice a bunch of bubbles. The bubbles use a very similar algorithm that the fish do; I create a Bubble/Fish bounding field (in my case, just a box, but it is adaptable and can be any shape the programmer wants) and move the bubbles at a constant rate up the Y-Axis adding noise each tic to make them jiggle unpredictably like real bubbles. Last but not least, the light under the case's intensity flickers- once again, also by means of noise.

As you can tell, this really is one noisy demo! But just sitting back and watching it really is peaceful. I'm also thinking of making a screen savor version. Ah, yes- I forgot to mention; the ground is also a heightmap that is generated by- you guessed it: noise. Anyhow, the purpose of this demo was to show programmers just how easy it is to add details to their games using noise instead of paying animators (no offense animators- I consider myself an animator too, so I know how it feels =P). My goal by doing this is to be able to save this project into a nice little adaptable .dll and call it up in my 3D engine whenever I want. If I can add enough 'small programs' like this to the .dll, I can essentially develop a library of cool specifial effects that I can easily just 'drop' into any game I make.

The demo has already been completed- it has nice sin/cosine auto rotation, and if u press the 'R' key, you can use the arrow keys to navigate manually. Also, in the program directory, there is a file called numFish.txt which allows people to adjust the fish count. All of the fish Sleep, Swim and Interact with each other. The demo is not available online yet because it's going to be going into my friend's book. But once the book is out, the executable will be made available online. The source and a beautiful 30page chapter explanation will be found in the book only! For now, check out more pictures at my website:

Till next time,

-Uthman "Papacharino" Apatira

Image of the Day Gallery



Copyright 1999-2008 (C) FLIPCODE.COM and/or the original content author(s). All rights reserved.
Please read our Terms, Conditions, and Privacy information.