I've seen this website mentioned many, many times. What kind of background would one need to begin to start understanding/making these things?
Every time I see this site, I think I should figure this out. I don't see any sort of introduction area, so I click on a shader and am presented with some totally indecipherable code.
The maths isn't hard, but you do need a decent grasp of vectors and (optionally) 3D transformation matrices, and it's pretty opaque until you figure out the terminology.
I haven't done GPU raymarching myself but I've used the same techniques on the CPU side in order to develop a whole-planet procedural renderer (in Ada, of course); the raymarching was relatively straightforward but I got horribly bogged down trying to make a volumetric atmosphere work.
(Also known as iq, he's responsible for a number of amazing demos, including the 4kB demo _Elevated_: https://www.youtube.com/watch?v=jB0vBmiTr6o He also appears to have written ShaderToy. Search for iq to see his stuff omfg ShaderToy lets you write shaders to produce _music_ now? https://www.shadertoy.com/view/ldXXDj)
When I first looked at many shader examples, such as those with SDF, it looked like gibberish.
The first thing you need is a firm understanding of geometry and basic vector/matrix operations (add, sub, mult, dot, cross, etc). You might think you remember stuff from your highschool math classes but if you are not actively using this stuff frequently you will not truly understand it.
For the record I was really bad at basic math, and barely skimmed by in highschool. It wasn't until I started programming heavily that I really learned how everything worked.
Start as simple as possible - rendering a triangle on the screen with polygons (there are a million tutorials for this). Then move up to cubes or something. I recommend starting with Three.js as it very easy to get up and running. Eventually you will get into shaders, which are fairly easy to understand but do have quirks you will gradually learn.
Every time I see this site, I think I should figure this out. I don't see any sort of introduction area, so I click on a shader and am presented with some totally indecipherable code.