Я пытаюсь понять концепцию нормального отображения, но меня смущают несколько вещей. Короче говоря, я не уверен, зависит ли карта нормалей от точки обзора или нет (т.е. получите ли вы другую карту нормалей того же объекта при вращении вокруг него). Во-вторых, я не понимаю, почему голубоватый цвет является преобладающим цветом на картах нормалей.
Как я думаю о нормалях и их отношении к цветам RGB, выглядит следующим образом. Единичная сфера представляет собой любую возможную единичную нормаль - другими словами, компоненты X, Y и Z единичного вектора нормали находятся в диапазоне от -1 до 1. Все компоненты цвета RGB находятся в диапазоне от 0 до 255. Поэтому имеет смысл для отображения -1 (нормальный компонент) в 0 (компонент цвета), от 0 до 127 или 128 и от 1 до 255. Любое значение между ними просто линейно интерполируется.
Применение этого сопоставления к нормали произвольного трехмерного объекта приводит к очень красочному изображению, а вовсе не синему. Например, при взятии куба все шесть граней будут иметь разный, но равномерный цвет. Например, лицо с нормой (1,0,0) будет (255,128,128), лицо с нормой (0,0, -1) будет (128,128,0) и так далее.
Однако по какой-то причине карты нормалей куба, которые я обнаружил, полностью голубоватые, то есть (128,128,255). Но ясно, что нормали не все в положительном направлении z, то есть (0,0,1). Как это работает?
[Редактировать]
Итак, описанный выше подход, по-видимому, называется картой нормалей пространства объектов или картой нормалей мирового пространства . Другой называется нормалью касательного пространства . Я понимаю, как такую карту нормалей касательного пространства можно использовать для изменения нормалей геометрии, но я все еще не до конца уверен, как она на самом деле рассчитывается (см. Мой комментарий в ответе Николь Болас).
[Редактировать 2]
Наверное, стоит упомянуть, что я работаю с кусочно-параметрическими поверхностями. Эти поверхности состоят из набора поверхностных фрагментов , где каждый фрагмент связан со своим параметрическим пространством (u, v) = [0,1] x [0,1]. В любой точке поверхности нормаль может быть точно рассчитана. По-видимому, векторы T ( касательная ) и B ( двух касательная ) - необходимые для охвата касательного пространства - не являются просто частными производными участка поверхности в направлении u и v ...