• fragment → because something can be fractionally on a pixel (and not fully).

cpu → gpu (vertex data & fragment data).

glsl doesn’t do artificial matrix constructions like javascript. matrices go directly into the circuitry (hence the math is faster).

#version is a pragma.

think of it as a pipeline → things are fed into it via the cpu → vertex takes in px positions; converts them to -1, 1 space; passes to fragment → does manipulations and outputs a color for each pixel.

uniform is same for each pixel.