Yet Another Golang Ray Tracer - Episode 1
Intro In this blog series I will be creating a CPU ray tracer (eventually a path tracer) from scratch. Main idea of a ray tracer is to send rays from the camera for each pixel into the scene and calculate that pixel's color value from the properties of the objects that the ray hits. With ray tracing we can generate photorealistic images, usually better than the ones we can generate with the forward rendering techniques. The catch is, it is slow. Consider a measly 1024x1024 image, there are 1,048,576 pixels we need to color. In other words we need to cast at least ~1 million rays into the scene just to get a really basic image (maybe on par with a kindergarten watercolor). Generating cool looking images (e.g. Blender Splashes) may take several hours to days. Blender 2.79 - Splash image I chose to create this ray tracer in Go because I have been wanting to try it out. I believe that with a project of this size I will get quite familiar with it. Moreover I know that paral