We are implementing Ray Marching in GLSL and using this to render primitive shapes, as well as more complex scenes in real time. Ray marching is a technique for rendering that is essentially an accelerated version of ray tracing in which rays are iteratively traversed, where step size is the minimum distance between a given point on a ray to the nearest surface. Our end goal is to create a fully generative terrain with objects such as trees and clouds, inspired by Inigo Quilez’ youtube video.
So far, we have been able to implement ray marching on Shadertoy, an online tool for creating shaders using WebGL. We have also been able to render and manipulate primitive shapes using ray marching, including planes, spheres, cubes, cylinders, and tori. Lastly, we have experimented with operations between objects such as subtract, intersect, and smooth union.
Primitives generated using ray marching
Smooth union, intersect, and subtract on primitives
We are on track with our outlined plan, as we have completed creating our ray marching engine, as well as generating basic shapes, transformations, and operations. We are currently at the stage of modifying our ray marcher to support materials and basic terrain generation.
This week: work on materials and colors, and block out main parts of the final scene.
Next week: Complete final scene, optionally experiment with fractals if time permits.