Milo Ray Tracer is a graphics application I created for generating photorealistic images. The application uses advanced algorithms to simulate realistic effects like reflections, refractions, shadows and caustics. Unlike most commercial and homemade ray tracers which are written in C++, Milo Ray Tracer was developed and tested in Visual Basic 2005. The
pictures on this page were all created in Milo Ray Tracer.
It all started when...
A few years ago, a friend of mine challenged me to write a program to display 3D surfaces using land survey data for input. It wasn't long before I was showing him my
Surface Generator. The program performed as expected, but it was far from being perfect or complete. With time, the program evolved into the
3D Graphics application, with features like 3D function plotting, 3D object generation, texture and bump mapping, and Gouraud and Phong shading. I wrote the program originally in Quick Basic for DOS and ported it to Windows with Visual Basic, which I was already using to develop the
HVAC Designer. With the advent of the .Net framework, I rewrote an improved version of 3D Graphics with Visual Basic 2005.
Ready to trace...
Having used ray tracing in commercial applications, and knowing of the superior rendering results it can deliver, I decided to write my own ray tracer. I started my research on the internet, and found enough information to grasp the basics and start coding a simple ray tracer. My first pictures of reflecting spheres showed the reflections on the wrong side of the spheres! Refusing to give up, I acquired these excellent books, which improved my understanding of the subject, and helped me improve the ray tracer:
Visual Basic Graphics Programming by Rod Stephens,
An Introduction To Ray Tracing by Andrew Glassner and
Physically Based Rendering by Matt Pharr and Greg Humphreys. With time and the will to succeed, I developed the Milo Ray Tracer application (below), with advanced features like polygonal and parametric object rendering, antialiasing, soft shadows, depth of field, refractive caustics and bump and texture mapping for increased realism. I am presently adding toon shading to the application, which will render scenes in cartoon style.
A reminder...
The
pictures below are my creations. I don't mind anyone using them for their personal enjoyment, wall paper, screen saver, etc. If you intend to use them for profit, I would prefer that you contact me first.
The objects below were generated with equations. These objects render
quickly, but can model a limited number of real-life objects.
The objects below were created with triangular faces (polygons). These objects
take longer to render, but can model all types of real-life objects.
Photon Mapping improves realism by allowing my ray tracer to render
diffuse illumination and reflective and refractive caustics.
Fresnel equations control reflections and refractions as a function of viewing angle.
This allows my ray tracer to render more realistic dielectrics like glass and water.