Показать сообщение отдельно
Старый 03.05.2014, 04:22   #119
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Xors3D. Шейдеры. Урок первый

Нормаль обычно перпендикулярна поверхности.
Тангент перпендикулярен нормали и бинормали, и паралелен Y координате в текстурных координатах.
Бинормаль, перпендикулярен нормали и тангенту, и паралелен X координате в текстурных координатах.

Это нужно для того чтобы взять нормал карту (текстуру), извлечь из неё X и Y смещение, но оно же локально на текстуре, и далее используя нормаль, тангент и бинормаль, повернуть этот полученный вектор смещения из локального пространства в мировое.
Чтобы можно было уже далее использовать эти данные с другими, например вектором луча света от источника света, который тоже в мировом пространстве.

Любые операции над любыми данными, нужно производить в одном пространстве, это может быть локальное (local), мировое (world) или экранное (screen). Если какие-то данные в другом пространстве, то нужно их трансформировать в нужное, и для этого порой хватает только матрицы трансформации (local > world), проекционной матрицы (world > screen), а для текстурных, таких как нормал карта, нужны tbn (tanget, binormal, normal)
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо moka за это полезное сообщение:
Arton (03.05.2014), Izunad (03.05.2014), tirarex (03.05.2014)