This was based on chapter 16, "Shadow Proxies", of the OpenGL Insights book.

I was impressed by how such an advanced-looking lighting technique was achieved with a relatively simple shader, so I decided to try implementing it myself.

Programmed in Dart.