Ravi Design Demo V0.38

Although WinOSi is still a very slow rendering system, it's underlying Raytracing Engine "RaVi" is so fast, that rendering small scenes at low resolution is possible in real-time.

The RaVi-Demo shows some sample scenes with different shaders and quality settings, ranging from fast approximations to super high-quality filtered adaptive 4x4 anti-aliasing.

The first demo animates the famous "mirror-sphere on checkerboard floor" scene in 320x240 pixel resolution at interactive framerates of up to 60 fps.

In adaptive sub-sampling mode, a special interpolation scheme saves many unneccessary ray-casts without decreasing image quality too much.

Here, the lightsource moves around the scene. Phong shading with specular highlights and correct dropshadows are rendered on true quadric surfaces in real-time.

The scene is stored in a special space partitioning structure (BSP Tree), which makes it possible to render very large scenes with many hundreds or thousands of objects in logarithmic time.

Another demo shows a spinning glass cube. True reflection and refraction according to fresnels law is calculated in real-time.

One of the demo sets shows a cylinder lit by an area light casting a soft shadow with correct penumbra.

The current RaVi-Engine can even render caustics in real-time, but this feature is still under development.

The latest demo shows global illumination with diffuse indirect illumination and color bleeding in real-time!


During the demos, you can click and hold down the left mouse-button inside the window, and move the mouse to rotate the virtual camera around the scene in real-time!

For Pentium III/Athlon XP (or better) computers, some of the core routines of Version 0.35 are written in hand-optimized assembler-language using fast SSE-instructions.
In the special 4x4 rendering mode 4 coherent rays are traced parallel using SIMD instructions, making the renderer twice as fast as in 1x1 mode, and I think there is still much optimization potential.
Currently this only works with the normal- and simple shader, as I haven't fully parallelized the phong shader yet.

Ravi-Demo V0.35 Executable
for 32Bit-Windows, zipped 39k
Ravi-Demo V0.35 Source code
for MSVC6, NASM, zipped 97k

Version 0.38 supports real-time global illumination and caustics with multithreading for up to 4 threads gaining a performance increase of 20-50% on Hyperthreading processors and 80-90% on a dualprocessor machine.
It has adaptive quality management with mixed sub- and super-sampling to satisfy the desired frame rate, with best possible image quality.
This version uses some (SSE-)assembly optimizations but no SIMD yet.

Ravi-Demo V0.38 Executable
for 32Bit-Windows, zipped 52k
Ravi-Demo V0.38 Source code
for MSVC6, zipped 108k

The setup of caustics and global illumination is a little bit faked in this demo, but future versions will generalize this concept study to allow loading of any arbitrary scene file and render it with all optical effects in real-time!

I have many ideas for further optimizations so things will get even faster, and because WinOSi and VModel use the same raytracing engine, they will be sped up by this project too.