Parallax против Normal Mapped объектов


Parallax против Normal Mapped объектов

Height Maps не только обеспечивают превосходный визуальный результат на местности, но и на мешах. Сравните следующую кирпичную стену, которая включает в себя как Height Map, так и Normal Map, с той же стеной, используя только Normal Map:

Вы можете ясно видеть, что эффект Parallax обеспечивает превосходное чувство глубины по сравнению с версией Normal Map.
Height Map - это единственный дополнительный канал текстуры (обычно это альфа-канал текстуры Normal Map), который определяет, как далеко перемещается каждый тексель в геометрию. Для Parallax на меши чистый белый (1.0) оставляет геометрию неизменной, в то время как любое другое значение выталкивается на поверхность, вызывая эффект Parallax. Чем ближе к черному (0.0) значение heightmap получает, тем дальше его вставляют. Возьмем следующий пример текстуры кирпича:

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

Ограничения

1. Параллакс будет постепенно слабее, так как угол приближается непосредственно к камере. В следующем видео, если вы посмотрите внимательно, вы увидите артефакт деформации на вершине кирпичной стены.

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



3. Старайтесь избегать геометрии, которая имеет большой угол между двумя гранями, поскольку эффект параллакса будет затруднен смешением между ними.

4. Эффект параллакса увеличивает количество «текстурных кровотечений» на обработанных текстурах даже при высоком уровне детализации. Ознакомьтесь с передовыми методами (ниже) для стратегий по предотвращению этого ограничения.
5. Эффект параллакса значительно искажается, если тексели не отображаются «квадратными». Это легко поддерживать для статической модели или жесткой анимации, но исключает использование параллакса для большинства облегающих анимаций. УФ-отображение должно быть сконфигурировано таким образом, чтобы ширина и высота каждого текселя были одинаковыми. Подробнее о коэффициентах текселя здесь.

Best Practices

• Мы рекомендуем использовать параллакс для всего ... да для всего. Вы не сэкономите на производительности, оставив высоту в 1.0. Вы можете сделать карту высоты настолько интенсивной или такой тонкой, как вам нравится, но это определенно стоит применить ее ко всем вашим активам.
• Если у вас есть большая плоская поверхность, которая может использовать некоторую глубину, чаще эта поверхность будет идеально подходит для параллакса (карта высоты + нормальная карта)!
• Бесшовные текстуры обычно облегчают работу с параллаксом. Это связано с эффектом параллакса на обрезке полигонов и не смешиванием с другой частью текстуры.

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

• Используйте текстуры высокого разрешения для эффекта параллакса. (Это справедливо и для обычных карт.) Используйте множество деталей текстур и дайте движку обработать текстуру LOD. Не заходите за борт, используя текстуру 2048x2048 на одном болте, но в равной степени не делайте результат ужасным, используя текстуру 128x128 на большой стене.

click for larger image
•Если у вас есть несколько разных частей вашей текстуры, используемых в разных частях вашей сетки, например, текстура включает в себя крышу, а также кирпич для стен, тогда вам нужно обязательно оставить промежутки в текстуре между каждой " суб-текстуры ", чтобы избежать эффекта параллакса, кровоточащего в следующую часть текстуры. Вы захотите использовать подкладку с отдельным внутренним и внешним участком заполнения и убедитесь, что ваше UV-mapping не пересекает области заполнения.

Внешняя прокладка должна иметь верхний градиент и должна достигать полной высоты (1.0) перед внешним краем. Этот градиент должен полностью соответствовать текстуре только в внешнем дополнении.

При регулярных углах внутренняя прокладка проявляется эффектом параллакса, но поскольку она текстурирована и отображается как нормальная, все выглядит нормально. При экстремальных углах внешняя обивка показывает - теоретически это означает, что зритель может заметить изменение высоты, однако в крайних углах в любом случае видны не очень значимые детали. Внешний градиент помогает избежать эффекта параллакса, проникающего в следующую текстуру в нашем атласе, что было бы гораздо более заметным. На следующем изображении мы окрашивали прокладку, чтобы сделать ее видимой; это не то, что вы сделали бы в своих собственных текстурах:

Think Outside the Box

Если у вас возникли проблемы с краевым деформированием, которые вы просто не можете решить, или если вы хотите, чтобы силуэт объекта сохранял ту же самую высокую деталь, которая видна на карте параллакса, но ваша фактическая геометрия не имеет такой детали, то вы можете просто прикрыть край несколькими дополнительными полигонами. Таким образом, вы можете положиться на превосходный эффект глубины материала параллакса для большинства ваших моделей, избегая при этом ограничений. Возьмите это, например:

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

Программное обеспечение

Существует множество программных решений для создания карт высот, но бесплатно, это AwesomeBump. Стоит посмотреть, если вы планируете попасть в параллакс и материалы PBR.