Основные принципы работы с шейдерами в Unity:
Шейдер — это программа, выполняющаяся на графическом процессоре видеокарты (GPU). 5 На вход шейдера подаются входные данные, содержащие информацию о координатах вершин, полигонах, нормалях, освещении, цвете вершин, UV-координатах и т. д.. 5 Задача шейдера — принять эти данные, обработать и подать на выход конечный результат. 5
Конвейер шейдеров. 1 Первым шагом является функция vertex, которая работает с вершинами в модели (наряду с другими данными, такими как нормали) и подготавливает их к следующему шагу — функции fragment. 1
Вершинный шейдер запускается для каждой вершины в меше и отвечает за преобразование трёхмерных положений вершин (в пространстве объектов) в положения пространства отсечения. 4 Также он должен передавать из меша данные, которые потребуются для вычислений на этапе фрагментного шейдера (UV, нормали и т. д.). 4
Далее для этих фрагментов (потенциальных пикселей) запускается фрагментный шейдер. 4 Он определяет цвет, который будет нарисован на экране (и в некоторых случаях выводит значение глубины). 4
Пиксели помещаются в буфер кадров, где ими можно манипулировать дальше (даже с помощью других шейдеров), пока они не будут нарисованы на экране. 1