Понимание мелкого Гуро Шейдинга на примере
Я нахожусь на курсе компьютерной графики и только что прочитал лекцию о затенении Фонга и Гуро. Я не совсем понял, о чем идет речь, поэтому обратился к учебнику за разъяснениями и нашел подходящий пример, который мог бы мне помочь. Я хотел бы обсудить этот пример со всеми вами.
Пример говорит:
During triangle rasterization we are using Gouraud interpolation
of colors across a triangle to determine the colors of pixels.The triangle we are
rendering has vertices A, B, and C, with screen-space coordinates A = (30,10),
B = (30,50), and C = (60, 30).
Вершины имеют следующие цвета RGB:
Ac = (25, 160, 30)
Bc = (25, 110, 30)
Cc = (25, 115, 30)
Какими цветами RGB являются точка (а.) (30,30) и точка (б.) (45, 30)?
Для)
Я представляю значения R и B для A и B - они одинаковы, а затем, поскольку 30 лежит между 10 и 50... возьмите среднее значение цвета A и B для G.
Итак (25, 135, 30) - это значения цвета точки. Я буду использовать это значение в следующей задаче - поэтому назовем его точкой М.
Для (б)
единственная точка, которая у нас есть с 30, поскольку их координата y - C. Точка M находится в (30,30). Итак, поскольку (30,30) и (60,30) имеют одинаковые значения R и B... Я предполагаю, что они одинаковы для (45, 30). Опять же, мы просто усредняем значение G, так как 45 точно между 30 и 60.
Таким образом, ответ (25, 125, 30).
Итак, мой вопрос - это правильно? Если так - это то, что подразумевается под интерполяцией - это... усреднение? Чем отличается затенение Фонга от этого?
1 ответ
Гуро делает интерполяцию между интенсивностью, которая быстрее. Фонг выполняет интерполяцию между нормалями, что дороже, но вы достигаете лучшего качества, более плавного. У вас нет разрыва. Для достижения того же качества Гуро нужна гораздо большая частота дискретизации.