website articles
raymarching distance fields
In 2008 I made some experiments in raymarching again, inspired by distance field optimizatios. I made five images using the technique, where all the objects, textures and lighting was procedural (each image fits in fact in less than 4 kiloytes, rendering engine and presentation included). I made a presentation about the technique, you can find it here. More information about procedural modeling for raymarching can be found here, and info about lighting can be found here


You can also download a small program that will generate these raymarching images on your hard disk. Actually it generates five images, yet itīs only 13 kilobytes. The trick is that all the images are procedurally generated, or in other words, the raymarched primitives or distance functions are describeed my mathematical formulas, which of course don't consume much space. Get the executable and get the images yourself.

slisesix

This image was the first to be generated with the distance field technique.

It contains some simple geometric primitives like boxes, planes and spheres, but also some more interesting organix shapes (the monster in the center of the image mainly). It's interesting how simple is to blend, twist or deform shapes with this raymarching technique.

It's also interesting to note that both the soft shadows and the ambient occlusion are very very cheap to compute. Actually the cost is quite smaller than that of casting (marching) a single ray. No joke. The distance field gives enought information as to fake these two shading techniques without resorting to montecarlo integration.

I also made a small video of the scene that you can grab here or watch directly here in youtube.
organix

Organix was a fast production, and an attempt to not only procedurally generate the geometry and the textures, but also the lighitng.

Everything seen in the image are simple shapes again, but they are distorted with perlin noise functions. Because noise functions are slow to compute, the raymarching process is very slow in this image. It takes around 40 seconds to render in a dualcore laptop at 1280x720 resolution.

Most of the work went in the texturing in fact (and also most of the bytes).

Lighting is fake, in the sense that shadows and ambient occlusion are procedurally painted on the geometry, not computed in any way (not even faked).
leizex

This was a one day production. I wanted to check how it is to directly raymarch a celular pattern (also known as voronoi diagram) in three dimensions. It's a fully procedural voronoi pattern (no LUT used), so itīs very slow.

Again shading is fake, there is no light source, neither there is ambient occlusion or anything. Colors are procedurally asigned to points in space. There is a bit of fog though.
bridge

This is a sketch really, but it never got completed, due to the lack of artistic appealing of the image. The intereseting part is probably the technique used for creating the grass, and the design of the bridge formula, which is a combination of bent and distorted boxes mainly.
distant forest

An attempt to fake some trees, really. It got some nice analytic fog (as explained here). I never finished this one neither.
city

Unfinished raymarched distance field. Basically an experiment on raymarching hierarchical distance fields. The lighitng was donde by pathtracing, which gave some nice indirect lighting to the cubes.
fruxis

In this case the raymarching happens in the GPU. The lighting is done with a simple pathtracer. The geometry is really simple (all planes and deformed spheres), but it was more of an experiment on pathtracing than anything.