2015-04-29 3 views
0

У меня есть треугольник с тремя вершинами v1, v2, v3 от ℝ и координаты текстуры t1, t2, t3. Это линейная поверхность с границами.Интерполяция переменной переменной в фрагментарных шейдерах под капотом

Интерполяция как я вижу: Определим отображение "М" с той поверхности, которая является подмножеством ℝ к (0,1) ** 2 с одним ограничением M (v1) = t1; М (V2) = t2; M (V3) = t2;

Существует ли больше ограничений для функции «М»?

Конечная цель - «Растрировать» треугольник в 2D «Window Space».

Как узнать, что представляет собой координата текстуры для конкретной растровой точки треугольника? Я слышал о методах пары, как это сделать. Есть ли другие?

  1. Выполнение линейной интерполяции по краям, а затем сделать intepolation в строке развертки

  2. Используйте барицентрические координаты каждой точки в ℝ до того, как "растрирования" на ℝ . Затем сделать аффинное сочетание «изменяющимися» переменных t1, t2, t3

Какая схема используется на стадии растеризации в современном оборудовании?

ответ

2

OpenGL использует барицентрические координаты для интерполяции переменных переменных. Я еще проверил спецификацию OpenGL 2.1 и описан таким образом в разделе под названием «Растеризация основных многоугольников» (раздел 3.5.1, стр. 109) и выглядит в основном неизменным в последней спецификации 4.5 (раздел 14.6.1 , с. 451).

Вы можете найти ссылочные спецификации в OpenGL Registry.

+0

Большое спасибо, Reto. Я хотел бы узнать ответ на еще один вопрос: http://stackoverflow.com/questions/30302195/is-it-possible-generate-normal-map-from-heightmap-texture-from-math-point-of-vie Но я не могу найти ваш адрес электронной почты, поэтому я размещаю его здесь в комментариях. – bruziuz

Смежные вопросы