A computer graphics program for research in realistic portrait of real scenes using pseudo random functions

`` the quest for visual realism''


This research started following the class "cs174" ``Computer graphics lab'' that the author took while attending the California Institute of Tecnology; the program was built originally as homework; it was an image processor with a renderer that could work as a graphic pipeline or a raytracer.
This led start to a more important line of research : the basic idea is that when a geometrical object is displayed on a computer, it usually looks too ``tidy'' to seem real; there are two complementary ways to solvethe problem: the first is to use more complex geometrical primitives, and the second is to study a better model for the ``material definition''. Given where the lights are in the virtual world we put the geometrical primitive in, a ``material definition'' is the way the light shades and colors the object's surface; physical studies have been done on the subject to try to find functions that would give to objectsrendered on the screen a real look. Even if a function that perfectly computes the shading of an object is implemented (to have it look, say, as if it were made of gold), still the object would not seem real. The reason is that the virtual object are too perfect to be true; this is where pseudorandom functions help.
To perform this research, the graphics program has been transformed into a ``programmable raytracer'' : when an object is put in the virtual world, it is possible to specify a function the program will use when it will compute the lightining of the object; in doing so, pseudo random functions can be used.
A few technical words: a tecnique called ``bump mapping'' has been used; the basic idea is that to speed up things; when we want to draw an object that should look like a bumpy sphere , the best answer is to drawa perfectly flat mathematical sphere, but to alter the normal to the surface used to compute the lighting, as if the surface was really bumpy; the effect is quite astonishingly the same .
To conclude, a few words on the example and on the reason all this work has been done for; in the example you see , the tree surface has been ``bump mapped'' using a pseudo random function called ``hilly function''; in the ground, the water is bump mapped using a fractal obtained summing sinusoidal functions, while the terrain is a ``bumpy function''; even the decision of where to have water and where to have terrain was left to a ``bumpy function''.
The reason why all this work is carried on is : to study better computer visualization; and also to study better the way we see: understanding how a ``real looking'' object can be drawn tells us a lot on how the brain sees; moreover it is a good way to build images to test computer vision ideas and systems: real looking computer images are a much more controlled type of test for a robotic viewer than any real image. Maybe a good idea in studying these subjects could be to study a better computer graphic and a better computer vision together.