diff --git a/README.md b/README.md index 3955728..b2c950f 100644 --- a/README.md +++ b/README.md @@ -46,3 +46,9 @@ By the end of this chapter I generated the following background: In this chapter I created a simple sphere and detect its surface by solving quadratic equations, which represent vectors. The sphere has no shading yet: Second PPM image + +### Chapter 5: Surface normals + +The first part of the chapter was the calculation and visualization of the normals, which we need for shading. But I also implemented the [fast inverse square algorithm](https://youtu.be/p8u_k2LIZyo) in Go just like in Quake III, which is pretty clever and fast. I did primarily because 1) I'm working with 32-bit floats for the sake of memory efficiency and 2) I don't care about accuracy - also it's very educational. But [as explained in this video](https://youtu.be/tmb6bLbxd08) the fast inverse square isn't always the better choice and in my case it probably isn't, because I need to import a Go standard library to disable data type safety and processor padding (something I've noticed when working with small data types in Zig). This is the first visualization of the normals of the sphere: + +Second PPM image \ No newline at end of file