AGAL и переменный регистр - PullRequest
       45

AGAL и переменный регистр

0 голосов
/ 20 декабря 2011
  1. Я просто хотел сделать, как это работает.Так что я в верте шейдере.Я храню UV-координаты от va1 до v1.В шейдере фрагмента интерполированная текстурная координата теперь доступна в v1 для выборки.Существуют ли связи под капотом, как семантика, чтобы связать v1 с нормальными координатами?

  2. Фрагменты выталкиваются в шейдер фрагментов в каждом треугольнике или когда через геометрические вершины всей сетки проходят?

  3. Допустим, в вершинном шейдере я умножаю свой вид модели на положение моей вершины.Затем я хочу поделиться своими координатами z с фрагментным шейдером для чего-то еще.Я храню z-шнур преобразованного вектора в v3.Когда я нахожусь во фрагментном шейдере и получаю доступ к v3 для z-координаты, это та же самая z-координата, которую я передал, или эта z-координата будет изменена из-за разрыва перспективы между ними?Я спрашиваю только, поскольку хочу уточнить поведение «интерполяции», описанное при сохранении значений в этих регистрах.

1 Ответ

2 голосов
/ 22 января 2012
  1. Нет семантики с переменными регистрами. Все, что вы передадите в переменный регистр, будет интерполировано, и оно работает так же для нормалей, как и для uvs или чего-либо еще.

  2. Я полагаю, что вся сетка сначала преобразуется с помощью вершинного шейдера, а затем запускается фрагментный шейдер. Хотя не должно иметь значения, как аппаратные средства справляются с этим.

  3. Координата будет интерполирована; различные регистры не знают, какие данные они хранят - с их точки зрения, это всего лишь 4 числа с плавающей запятой. Поскольку переменные регистры содержат 4 компонента, вы можете просто вставить туда всю позицию вершины. Стоит отметить одну вещь - если вы хотите что-то сделать с глубиной, я думаю, вам нужен компонент w.

...