Шейдер сам проецирует
Шейдер же ты пишешь, как он может сам что-то делать? Это блок растеризации их "проецирует".
Процесс таков: на выходе вершинного шейдера получаются трехмерные
гомогенные координаты вершин. Аппаратный растеризатор берет эти вершины,
делит x,y,z на w и рисует только те, которые попадают в куб (-1,-1,-1)-(1,1,1) (на самом деле тут еще надо учесть треугольники, находящиеся частично за пределами экрана). При этом координаты x и y определяют координаты результирующего пикселя на экране.
Матрица проекции должна быть построена таким образом, чтобы в координату w записывалось значение как-то связанное с z.
Подробнее можно узнать
тут