Вычисление нормалей после отображения смещения

Я использую C ++, DX11 и тесселяцию. После тесселяции треугольника я применяю отображение смещения к новым вершинам. Но у них все еще есть нормальный треугольник, поэтому расчет освещения ведет себя так же, как поверхность была плоской.

Итак, я вижу два решения: выборка нормальной карты (соответствующей карте смещения) или выборка карты смещения в нескольких местах для вычисления самого нормального (оба делаются в шейдере).

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

Оба решения будут работать, хотя моя дилемма действительно такова: я переусердствую? Должен ли я просто пойти с одним из вышеупомянутых решений? Или есть лучший подход?

5 голосов | спросил NPS 31 MarpmMon, 31 Mar 2014 22:59:42 +04002014-03-31T22:59:42+04:0010 2014, 22:59:42

1 ответ


5

Применение двух нормальных карт не так уж плохо. Многие игры применяют несколько нормальных карт уже потому, что они смешиваются между уровнями текстуры (например, для местности), поэтому иметь нормальную карту, представляющую большие перемещения и другую нормальную карту для мелких деталей, довольно разумно. Ознакомьтесь с подробным дополнением от Colin Barré-Brisebois и Stephen Hill, чтобы посмотреть, как объединить несколько нормальные карты.

Сэмплирование карты смещения в нескольких местах для оценки ее наклона также возможно, но подумайте об этом: вам все равно придется как-то совместить оцененный наклон с нормальной картой мелких деталей. Вы снова имеете две нормальные карты, но один из них генерируется «на лету», фильтруя карту смещения.

ответил Nathan Reed 1 AMpTue, 01 Apr 2014 00:54:25 +040054Tuesday 2014, 00:54:25

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132