I am working on a ray tracer that uses photon mapping. I would like to build a graphics chip that can render global illumination in real-time, and so I am writing this program to teach myself about ray tracing. Eventually this project will, I hope, support advanced features like custom shading, wavelet compression of BRDF's, NURBS surfaces, and photon mapping. Some of the code is shared with OpenPress, such as the XML-like parser. The first release is forthcoming.
I can perform ray casting on spheres and planes. You would be suprised how much work it has taken to accomplish this simple task! Below is an example of a description file and its output,
| ![]() |
The parser now allows nodes to be deleted, inserted, and modified dynamically. Also, I been thinking about how I can improve the parser for the next version.
So far I have written a parser for an XML-like syntax, with a macro processing in Lua. Here is an example of how you can use the macro processor,
|
=> |
|
This language will eventually be described in BNF. I will work on simple ray casting next.