Производные карты и касательное пространство Карты нормалей

11

Я обнаружил, что некоторые движки используют производные карты вместо карт нормалей касательного пространства .

После некоторого прочтения кажется, что это действительно замечательный способ заменить нормали касательного пространства, но есть ли какой-то недостаток в их использовании? Почему все еще продолжают использовать нормали касательного пространства?

Можно ли сравнить как преимущества, так и недостатки?

Мат
источник
Есть несколько блогов, рассказывающих о дериватах, и было бы здорово получить отзывы от людей, которые внедрили их в свой производственный движок, и почему они выбрали этот метод.
17
2
Одним из главных факторов того, почему вещи не сразу принимаются, является инерция и то, что существующее решение достаточно хорошо.
храповик урод

Ответы:

4

После некоторых исследований и ответов профессионалов, вот мой вывод.

Pros

  • Не требует касательных или бинормалей. Меньше интерполяторов.
  • Нужно всего два канала. меньше текстурной памяти.
  • Не страдайте от касательных швов.
  • Может смешиваться с использованием альфа-смешивания без перенормировки.
  • Меньше памяти сетки: нам не нужно хранить касательный вектор.
  • Быстрая реализация.

Cons

  • Больше АЛУ
  • Менее гибкий. Карта нормалей может представлять любую производную карту, но обратное неверно. Например, острые края трудно представить.

Итак, это много плюсов по сравнению с минусами. Но главная проблема в том, что это не отраслевой стандарт.
Практически нет инструментов для создания контента и ноу-хау художника.

Вот цитата Барта Вронски, которая хорошо иллюстрирует текущее состояние производных карт:

К сожалению, в жизни / технологии не всегда лучшее решение выигрывает / даже не получает заслуженного внимания ... Это больше о стандартах и ​​инерции.

Если вам интересно узнать больше о производных картах, вот несколько интересных статей.

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

Мат
источник
Некоторые из ваших профессионалов, похоже, не используют предварительно вычисленное касательное пространство (т.е. выводят касательное пространство из УФ-производных на пиксель), что AFAIK является отдельным выбором дизайна, независимым от выбора производных карт по сравнению с картами нормалей.
Натан Рид
Спасибо за комментарий @NathanReed Вы говорите о факте вычисления тангенсов и бинормалей? Не могли бы вы рассказать мне больше о предварительно вычисленном касательном пространстве?
17
1

Я предполагаю, что вы используете предварительно вычисленные производные карты высот, а не вычисляете их на лету (подробности см. В этом посте в блоге Миккельсена). Если нам нужно предоставить предварительно вычисленные производные высоты, то мы должны предоставить два канала, как карту нормалей. Можно утверждать, что производное отображение не требует наличия атрибута касательной вершины, как нормальное отображение, но дополнительные операции дифференцирования на карте высоты несколько сводят на нет этот прирост производительности. Производные карты - это крутая концепция, но, в конце концов, я не думаю, что они значительно лучше, чем обычные карты с точки зрения производительности (хотя концептуально я согласен, что с производными картами легче работать, потому что нам не нужно иметь дело с с касательным пространством).

AnimatedRNG
источник