Как стать автором
Обновить

Комментарии 4

В 90% случаев наилучшим решением являются карты нормалей касательного пространства Mikk.
Прошу прощения, но что означает Mikk? Я еще не слышал такой аббревиатуры.
Возможно эта расшифровка известна у нас под другим именем?
Код генерации касательного пространства Мортена С. Миккельсена
ссылка
Автор путает какие-то вещи, а какие-то излишне усложняет.
Возможно, я ошибаюсь, но касательный базис рассчитывается для вершины в треугольнике. Вершина обычно принадлежит нескольким треугольникам, поэтому нужно как-то усреднить касательный вектор и вектор бинормали каждого треугольника, включающего вершину. И Mikk — это как раз про это. Вектор нормали не усредняется, он остаётся таким, каким его «нарисовал художник».
при запекании она считает, что нормали вершин параллельны осям мира

Странное усложнение. Просто нормаль записывается в мировых координатах.
Так как обычно в большем дефиците находится память, такая оптимизация используется часто и некоторые движки выполняют её автоматически (например, Unreal Engine, когда мы устанавливаем для сжатия нормалей текстуры параметр «normal map»). Освободив один канал карты нормалей, мы можем уменьшить размер текстуры или использовать этот канал для metalness/roughness/opacity…

Обычно третий канал выкидывают, чтобы сжать нормаль в формате 3Dc/ATI2n/RGTC2/LATC2 и получить 8бит/пиксель вместо исходных 24бит/пиксель.
В подобной ситуации можно использовать 16-битные карты нормалей, обычно в формате файлов .tga, которые имеют большее количество цветов и больше по размеру, чем обычные 8-битные карты нормалей.

TGA не умеют в 16 бит на канал. Вероятно, автор имел в виду TIFF.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации