Почему вычисления затенения по гураду и фонгу заканчиваются тем же вычислением?

Затенение Гурадом интерполирует цвета, тогда как затенение телефона интерполирует нормали.

Пусть P - некоторая точка в треугольнике, и пусть N_x - нормаль в точке X, а C - цвет направленного света. Пусть a + b + c = 1 - отношения расстояний до каждого угла от P.

Мы вычисляем цвет пикселя в точке P, предполагая, что затенение Гурада

a N_0 C + b N_1 C + c N_2 C

Если мы вместо этого примем фоновый шейдинг и сначала интерполируем нормали, то цвет пикселя будет

(a N_0 + b N_1 + c N_2) C

2 выражения, которые я написал выше, одинаковы, поскольку скалярное произведение является дистрибутивным. Однако, очевидно, что затенение гурадов и фонг выглядит очень по-разному. Что-то не так в вычислениях... что бы это могло быть?

0 ответов

Другие вопросы по тегам