Понимание мелкомасштабного затенения Гуро на примере

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

Пример говорит:

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 являются точкой (a.) (30,30) и точкой (b.) (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).

Итак, мой вопрос: правильно ли это? Если да - то это и имеется в виду под интерполяцией - этаким... усреднением? Чем затенение Фонга отличается от этого?


person PinkElephantsOnParade    schedule 20.02.2014    source источник


Ответы (1)


Гуро делает интерполяцию между интенсивностью, которая быстрее. Фонг делает интерполяцию между нормалями, что дороже, но вы получаете лучшее качество и плавность. У вас нет разрыва. Для достижения того же качества Гуро нужна гораздо большая частота дискретизации.

person crow    schedule 21.02.2014