Arauna Technology

On this page you will find information about the technology used in the Arauna real-time ray tracer.

What is real-time ray tracing
Scene representation
Acceleration structure
SIMD arithmetic
Lighting model
Dynamic geometry
Adaptive anti-aliasing
High dynamic range

------------------------------------------------

Real-time Ray Tracing

Arauna is a real-time ray tracer. Its primary goal is to render realistic 3D images of virtual worlds, using geometry, materials and lights. The ray tracing algorithm does this by tracing rays from a camera, through each screen pixel, into the world; rays then bounce off of reflective materials, change their path inside refractive materials, or get obstructed when travelling to light sources to create realistic shadows.

This is a fundamentally different approach than what is done by a rasterizer, which simply draws visible triangles, one after the other. Since rays behave just like rays of light, a ray tracer can achieve a higher level of realism.

Ray tracing is currently not supported by hardware, and has to be performed on the CPU (unlike rasterization, which is commonly handled by a GPU). For this reason, ray tracing is usually (much) slower than rasterization. The advent of fast multi-core CPUs is about to change this: Using highly optimized real-time ray tracers, ray tracing can now be done in real-time on consumer hardware.


------------------------------------------------

Arauna scene representation

Arauna renders meshes represented as triangles. While a ray tracer can in theory easily support other primitives, such as spheres, cylinders and patches, triangle data is still the most common format. Arauna will read data from 3D studio max or Maya. In general, data does not need to be 'clean'; a ray tracer will effortlessly render geometry with intersecting triangles, degenerate triangles and tiny gaps.


------------------------------------------------

Acceleration structures

To speed up rendering, the scene is internally stored in an hierarchical acceleration structure. Arauna uses the BVH for this. The BVH allows fast traversal of groups of rays. A BVH also has the potential to support dynamic scenes better than other structures, such as the kD-tree. Thanks to the acceleration structure, a ray tracer is (to a large degree) unsensitive to overall world complexity. Arauna handles up to 1 million triangles per gigabyte of RAM.


------------------------------------------------

SIMD arithmetic

Arauna makes extensive use of SIMD arithmetic to speed up almost all stages of the rendering process. Using SIMD code, several streams of data can be processed in parallel. This is used to trace groups of rays and to shade groups of pixels.


------------------------------------------------

Arauna lighting model

The lighting model used in Arauna implements the full Phong illumination model, supporting ambient, diffuse and specular components, as well as distance attenuation. Large amounts of lights in a scene are supported, by using an approximation of quadratic fall-off to limit the sphere of influence of each light source. Lights are dynamically placed into their own acceleration structure to limit the number of light sources that affects each rendered pixel.


------------------------------------------------

Handling dynamic geometry

An acceleration structure is static, generally speaking. This presents a problem for games, where the scene is usually not completely static. To overcome this, Arauna uses a separate acceleration structure for dynamic geometry, which is traversed for every ray. This way, dynamic geometry uses the same features as static geometry, including reflections and shadows, without bringing down the speed to an unacceptable level in more complex levels. Speed depends on the number of dynamic objects, not on overall world size.


------------------------------------------------

Adaptive anti-aliasing

GPU rasterizers improve the quality of the rendered image by using full-screen anti-aliasing (FSAA). Arauna does this too: It detects areas where extra rays will significantly improve image quality, such as sharp edges and shadow boundaries. The adaptive anti-aliasing comes at a small cost.


------------------------------------------------

High dynamic range rendering

Internally, all colors are stored using 16 bits per color component: The lowest 8 bits are used to store the 'regular' color, and the excess is used to represent 'overbright' colors (due to lighting or emissive materials). Bright colors in the final image are visualized using a post-processing glow filter.