TITLE: The central message of communication, the body of the message.

NAME: Jens Persson
COUNTRY: Sweden
EMAIL: pottsorken@hotmail.com
WEBPAGE: home.student.uu.se/j/jepe1833/

TOPIC: Surrealism
COPYRIGHT: I SUBMIT TO THE STANDARD RAYTRACING COMPETITION COPYRIGHT.
JPGFILE: msgbody.jpg
RENDERER USED: 
    My own software (a little raytracer I call Raymo)

TOOLS USED: 
    Only Raymo (Gimp to convert ppm image to jpg)


RENDER TIME: 
    Approximatley 20 h, (cpu frequenlty busy with other stuff)

HARDWARE USED: 
    1 GHz Pentium III, 512 MB



IMAGE DESCRIPTION: 


As far as I understand, the surrealists engaged in activities intended to 
unleash the irrational uncontrolled thoughts and impulses that they believed
underpinned human existence. They were trying to reach a deeper truth, 
something that lies behind/beyond what we think of as our conscious reality. 

Our problem is then, that we don't see the real reality, the surreality. 
So with their paintings the surrealists wanted to communicate a message to 
the observer that opened her eyes to this real reality.

That is, the message of a surrealistic painting is ment to trigger thoughts
that may seem irrational but in (sur)reality is truer than true.

So, what is such a message like? It shoud be a very (sur)real message!
But, how do I know if it is really a real message?

To answer this question, I have made an informative picture in which the 
actual body of a message is visualized, and it is not the body of just any 
message, it is the body of the message of the image itself. That is, it is 
an image of its own message, its message body. 



DESCRIPTION OF HOW THIS IMAGE WAS CREATED: 


A while ago I played around with isosurfaces in PoVRay. I was intrigued by
the concept, and I started reading about how to render them and also how to
create continous 3d (Perlin) noise. This got me started on writing my own
raytracer, which I hade been planning to do for a while to be able to
experiment with unconventional objects and raytracing methods.

There is not very much unconventional about it yet though; I have implemented
spheres, isosurfaces, point lights, area lights and anti-aliasing. The program
is written in C++ and is entirely self contained (no external libraries 
are used).

The object on this image is an isosurface sphere whose radius is dependent 
on 3d Perlin noise with its "granularity" increasing along the distance to the 
center of the spehere. Further more, "twists" are applied at random places in
random angles and amounts, the coloring is done in a way so that it is related
to the shape of the object, everything decided by a couple of 3d Perlin
noise sources.

The long render time is not entirely the effect of poorly written code 
(I would like to believe that it is not that extremely slow), but each ray has
to step through the isosurface object carefully by taking very small steps in
order to make sure that no parts of the surface is missed, and this particular
object has a lot of details and fast changing values. And this has to be done
for each of the 16 anti-alias rays per pixel and for each of the 9 light 
sources in the single area light. The next thing I will do is to 
triangulate the isosurface into a mesh, which would render
many times faster and also make it possible to save the
objects as meshes instead of just the function.