qdoTracer
Introduction
qdoTracer is a ray tracer developed as a hobby project. It was mainly created for me to do something fun in my otherwise so dull spare time.
Features
The featurelist of qdoTracer is quite limited compared to some fully featured Ray Tracers. However, I've choosen to implement some to me interesting features. In the future I might decide do extend the featurelist with more candy, but please don't ask me about any schedules =)
The current features are as follows:
- Diffuse lighting
- Specular lighting
- Reflection
- Object Oriented design to enable easy extention of objects, IO subsystems and integration into other applications
- Two object types:
- Generic Sphere
- Fractal Sphere - The fractal sphere has modulates the diffuse color component with a real-time Mandelbrot fractal function. It is also possible to make the reflection parameter dependent on the Mandelbrot set.
- Unlimited number of objects
- Unlimited number of lightsources
- Very compact code and executable
- Raw- and Targa24 image output
- Simple custom fileformat for loading scenes
Download
- qdoTracer v0.5 - Main executable (28kb)
- example1.txt - Example scene (1kb)
Limitations
Currently the qdoTracer have several limitaions of which some are deliberate and some are the result of lack of time. The following are limitations I intend to address:
- Camera heading is limited to parallell with z-axis
- Transparancy is not supported.
- Ambient lighting not supported.
- Aspect ratio not implemented. Setting non-square image dimentions will result in distorted images.
- Bumpmapping is not supported.
In addition to the limitations above there are a number of limitations that I probably won't address. Here are a few:
- Space partitioning schemes. Tracing is now done with brute force but I probably won't bother to change this.
- More object types. I will probably just stick to spheres and do effects with them instead =)
- Texturemapping. Apart from the fractalmapping of the fractal spheres, there is no support for textures, and I probably won't implement any generic file based texturemapping.
Images
![]() |
![]() |
| Three spheres, two lights. Only diffuse lighting. No reflection. | Four spheres, two lights. Only diffuse lighting with shadows. No reflection |
![]() |
![]() |
| Three spheres, two lights. Only diffuse lighting. Reflection on all objects. | 371 spheres, two lights. Diffuse and specular lighting with shadows. Reflection on all objects. |
![]() |
![]() |
| Two spheres. Both spheres have Mandelbrot fractals as diffuse colors. The bottom one has a fractal reflection channel. | 372 Spheres, two lights. Diffuse and specular lighting with shadows. Reflection on all objects except the 320 small yellow spheres. Fractal diffuse coloring and reflection on the two largest spheres. |
![]() |
![]() |
| Same as previous, but enlarged. | Same as previous, but enlarged. |
![]() |
|
| Same as previous, but enlarged. | |
| All images created with qdoTracer, a Ray Tracer written by Patrik Kudo. Copyright 2001 Patrik Kudo. | |







