Обновить
5
0

Пользователь

Отправить сообщение

Но самый интересный вопрос вы пропустили. Почему у вас при смене шейдинга меняется tangent map, если модель не поменялась? TBN тот же, полигоны те же.

Я использую лексикон 3д художников, так как материал написан в первую очередь для них. В сообществе 3д художников, словесные выражения "изменить шэйдинг модели", "модель стала по другому шэйдиться" и т.д. означают не смену шэйдера, а измененение групп сглаживания модели. Изменение групп сглаживаний ведёт к изменению касательного пространства, а следственно и самой tangent space normal map .

Этот вектор показывает направление XY high-poly нормали при фиксированном, относительное low-poly нормали, Z.О каком отражении лучей вы говорите?

Если быть прям точным, то данные, которые хранятся в любом взятом текселе Tangent Space Normal Map - это 3д вектор в системе координат касательного простанства.

Касательное пространство объекта состоит из трёх векторов:

  1. Нормаль вершины - он же вектор Z. Если в Blender например включить отображение Split Normals - вы их увидите.

  2. Тангенс - он же вектор X или иногда его называют вектором U (т.к. что Тангенс, что Битангенс сонаправлены координатам U и V на развертке).

  3. Битагенс - он же вектор Y или V.

Впринципе, для того, чтбы посторить 3д вектор в этом пространстве, будет достаточно двух координат - X и Y, а третью - Z, можно будет вичислить из этих двух, при условии, что вектор будет нормализованым (единичной длины) и никогда не будет противонаправлен вектору Z (нормали вершины). На этом приницпе построены двухканальные карты нормалей касательного пространства, которые для экономии памяти, не хранят знаечние для z координаты вектора, он вычисляется шэйдером на освное координат x и y.

В конченом итоге, шэйдер, обрабатывающий эти данные, при вычислениях, будет превращать 3д вектор который хранит карта нормалей касательного пространства в вектор в мировой системе координат, используя для этого привращения как раз систему координат касательного пространства.

Но так как эта статья посвящена проблеме бэйкинга, а не тонкостям внутреннего устройства карт нормалей, я решил не усложнять материал и написал так, как написал. Ошибкой мне это не видится, ведь фактически, каждый вектор Tangent Space Normal Map показывает направление отражения лучей (которые будет проецировать шэйдер при рендеринге картинки) относительно нормали объекта (касательного пространства) в точке падения луча.

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность