Making Software: Shaders.
Shaders are a great example of how constraints make people creative - they are simple programs that run in parallel on the GPU8, with the goal of working out the value of a single pixel. But each instance of a shader program only really knows one thing: its x and y position. So how the hell do people create such insane, high fidelity graphics with just an x and y coordinate? Well the short answer is maths. And the long answer will, unfortunately, also involve some maths. ╌╌╌╌ Let's get this out of the way: a shader is a type of program designed to run in parallel on the GPU. When you think of a shader, you're probably picturing some trippy animated graphics, but those are usually fragment shaders6 which is just one type of shader. There are actually multiple types and they work together in a sort of pipeline that is designed primarily for rendering real time 3D graphics. The goal of this pipeline is essentially to figure out what color every pixel in the scene should be, and each step
Explore this link on the map →