Я просто хотел сделать, как это работает. Итак, я нахожусь в вершинном шейдере. Я храню UV-координату от va1 до v1. В фрагментном шейдере теперь интерполированная координата текстуры доступна в v1 для образца. Существуют ли связи под капотом, например семантики, для сопоставления v1 с нормальными координатами?AGAL и переменный регистр
Являются ли фрагменты, сдвинутые в фрагментный шейдер на треугольник или после того, как пройдены все вершины геометрии сетки?
В вершинном шейдере, допустим, я умножаю свое моделирование на позицию моей вершины. Затем я хочу поделиться своей z-координатой с шейдером фрагментов для чего-то еще. Я храню z-шнур трансформированного вектора в v3. Как только я нахожусь в шейдере фрагмента, и я получаю доступ к v3 для z-координаты, является ли это той же самой z-координатой, в которой я прошел, или эта z-координата будет изменена путем разделения перспективы между ними? Я только спрашиваю, как я хочу уточнить «интерполяционное» поведение, описанное при сохранении значений в этих регистрах.
0
A
ответ
2
Там нет семантики с различными регистрами. Все, что вы передаете в переменный регистр, будет интерполировано, и оно работает одинаково для нормалей, как для uvs или чего-то еще.
Я считаю, что вся сетка сначала преобразуется с помощью вершинного шейдера, затем на ней работает фрагментарный шейдер. На самом деле не имеет значения, как это работает.
Координата будет интерполирована; различные регистры не знают, какие данные они хранят - с их точки зрения это всего лишь 4 числа с плавающей запятой. Поскольку переменные регистры содержат 4 компонента, вы можете просто вставить туда всю вершину. Одно замечание - если вы хотите что-то делать с глубиной, я думаю, вам нужен компонент w.