It has been a while since I submitted an IOTD, so I thought why not show
something I'm working on now in my free time :)
The images above are all rendered using Mystique, which is the name of my first
real render system.
After seeing all these global illumination renders on the web (since it's such a
hot topic) I wanted to give it a try myself too, and
this is the result till now. Still the system is far from finished and can be
(and will be) improved on a lot of fronts.
Let me tell something about the images you see.
The upper left image shows a UFO only lit by skylight, no additional
lightsources in the scene.
Currently the skylight is just a constant color, but I am planning to support
real sunlight as well.
The image on the right of that is the same UFO lit by skylight and an additional
The cars below the UFOs are also rendered using global illumination (all pics
use GI) but in an indoor environment and with reflections.
There is one omni light a bit above the back of the car.
The tiger on the left is Majid, a model of our game in production. However the
model isn't finished yet. Just a box around the tiger and an omni
behind the tiger. The tigher head uses one omni on the left and skylight. You
can see that the model are actually 2 models (a half tiger, mirrored) since
the normals do not match up yet, so you that edge.
And finally at the bottom you see a car with only skylight on the left, and with
skylight and materials and an omni and specular on the right.
Please note that the antialiassing still sucks. And the images are still noisy.
Time for some tech info:
Can render scenes being exported from 3DSMax 4 and Maya 4
Current render plugins for mystique are: SimpleTracer, which is just a simple
raytracer with reflections and all the standard stuff and MCTracer which
is the render plugin used to render all above images. It uses montecarlo
techniques with stratisfication on the hemisphere to generate the current
samples for indirect lighting.
I will upgrade this later on to Quasi-Montecarlo, which doesn't use real
random stuff, but still on some sort of random way (to avoid aliassing) which
should reduce the variance
in the renders quite a lot. And this in combination with importance sampling
should result in really nice quality. The diablos and first tiger pic however
used more samples.
Unfortunately I don't exactly remember how many. Probably 5x5x5 or 6x6x5.
Mystique is a .lib, and I created some gui for it as well.
Most images shown used 4x4x5 samples per pixel (5 for anti aliassing, which is
just simple area filter, but that sucks)
Current ray acceleration plugins are: SimpleGraph, which only uses object
bounds and after that polygons as acceleration. And an Octree plugin, which uses
an octree *duh* :) Ofcourse the octree speeds up a lot, but I will build new
plugins soon, because octrees are definitely not the best for this. KDTrees will
be better, or other types of grids.
Still have to do some testing and research on this.
Support for area lights (triangle lights at the moment, so you can make
Texture support (shaders)
Non lamb surfaces
Sunlight and cloud simulation
Better anti aliassing
Depth of field
Planned for later:
Volumetric effects (light, fog)
You can see some more renders at http://www.mysticgd.com in the Mystique