A huge improvement is a user interface for selecting options. To bring up the GUI, press "Shift+Q". The code is live at www.seas.upenn.edu/~pjia/raymarch (since unfortunately iamnop.com is still having issues.) If you are running this, remember to resize your browser to a smaller size for reasonable performance.
Here's what it looks like now:
Aside from fixing corner cases and doing optimizations, here are the new features implemented:
- New GUI! (of course!)
- Mirrored reflections.
- New more realistic soft shadows method, based on technique by the.savage.
- New fog. Not really fog anymore. It simply darkens the color relative to distance marched. Takes care of the far distances where numerical errors are large.
- Focal blur, which is basically dithering based on distance. This is implemented last minute and doesn't produce very good results.
And of course, the project is not complete, and there are a few known bugs:
- Ambient Occlusion and Subsurface Scattering stops working when warping is turned on.
- As mentioned, focal blur at this moment is an experimental and unfinished feature. To improve, I will need to take several dithered samples and average between them. However, this will hurt performance.
- The quaternion fractal does not render quite well with all modes, since I'm trying to optimize across all types of scenes, balancing quality and performance. The current smoothing level doesn't work quite well for the fractal, so there will be breaks in the surface. It's also running at a few iterations, so it seems to leave artifacts across the scene. I'm just putting it in there as an example of a very complex shape.