Как работает WorldAlignedNormal HQ в UE5: точные нормали без артефактов — Game Design Radar
← Все посты

Как работает WorldAlignedNormal HQ в UE5: точные нормали без артефактов

15.12.2025
Как работает WorldAlignedNormal HQ в UE5: точные нормали без артефактов

Проблема базового WorldAlignedNormal

В Unreal Engine 5 есть две версии трилпланарных нормалей: быстрая WorldAlignedNormal и более точная, но дорогая WorldAlignedNormal_HighQuality (используется по умолчанию).

Базовая версия смешивает нормали, проецированные по осям мира (XY, XZ, YZ), прямо в World Space. Для каждой проекции берутся нормали из текстуры и умножаются на соответствующие компоненты маски (NormalMask_R, NormalMask_G, NormalMask_B), затем линейно смешиваются.

Такой подход даёт проблему: нормали остаются «привязаны» к осям мира и не учитывают реальный поворот поверхности объекта. На наклонённых плоскостях итоговый вектор нормали теряет правильное пространственное направление относительно геометрии — рельеф «плывёт», а освещение выглядит неточно.

Автор отдельно подчёркивает важный момент: перед смешиванием нормали ослабляются по весам (компонентам маски), а не просто лерпятся как единичные векторы. Это нужно, чтобы более слабая проекция вносила меньше деталей, а доминирующая — больше, обеспечивая плавный переход и сохранение контраста. Но даже при корректном взвешивании проблема остаётся: смешивание происходит в неверной системе координат.

Как работает WorldAlignedNormal_HighQuality

HighQuality-версия решает ключевую проблему: перед смешиванием все нормали приводятся к общей системе координат, согласованной с ориентацией конкретной поверхности.

Процесс на примере:

  • Берутся нормали из трёх проекций (XY, XZ, YZ), например: Nxz(1, 0, 0), Nyz(-0.87, 0.3, 0.4), Nxy(1, 0, 0).
  • Из геометрической нормали поверхности извлекаются маски (например, NormalMask_R = 0.81, NormalMask_B = 0.5) — они задают веса проекций.
  • Строится ортонормальный базис для текущей поверхности (локальное Tangent Space), с учётом её реального поворота в World Space.
  • Нормали из текстур сначала подготавливаются к этому базису: инвертируется компонент Y, а компонент X при необходимости домножается на +1 или -1 в зависимости от знака геометрической нормали по соответствующей оси. Это учитывает ориентацию лица относительно проекции.
  • После этого нормали переводятся в новый базис и только затем смешиваются по весам масок.

В стандартной реализации UE часть коррекции делается на этапе переноса нормали из tangent space, а не при построении базиса (например, инверсия Y или порядок векторного произведения при создании третьего ортогонального вектора).

Результат HighQuality-подхода

Итоговое отличие:

  • WorldAlignedNormal (base) — смешивает нормали в координатах мира, игнорируя реальный поворот поверхности. На повёрнутых и криволинейных объектах рельеф и направление нормали искажаются, переходы между проекциями заметны.
  • WorldAlignedNormal_HighQuality — сначала приводит все проекции к единому базису, согласованному с поверхностью, и только потом смешивает. Рельеф и освещение остаются стабильными и предсказуемыми даже на сложной геометрии.

Автор модернизировала весь набор функций трилпланарной проекции в UE5: WorldAlignedTexture_Modernized, WorldAlignedNormal_Modernized и WorldAlignedNormalHQ_Modernized теперь синхронизированы по возможностям:

  • поддержка Local Space;
  • общая точка проекции;
  • кастомный поворот проекции и зеркалирование.

Благодаря этому трилпланарный маппинг ведёт себя предсказуемо на любых объектах и даёт чистое, бесшовное освещение.

Выводы

  • Базовый WorldAlignedNormal смешивает нормали в World Space и даёт искажения на повёрнутых поверхностях.
  • Корректное взвешивание нормалей по маскам важно, но без общей системы координат проблему не решает.
  • WorldAlignedNormal_HighQuality сначала приводит нормали к базису поверхности, затем смешивает их по весам.
  • HQ-версия даёт стабильный рельеф и освещение, особенно на сложной и криволинейной геометрии.
  • Модернизированные функции UE5 поддерживают Local Space, общую точку проекции, поворот и зеркалирование, делая трилпланар продакшн-готовым.
check_circle Факт-чекинг
Статья прошла проверку. Фактологических ошибок не выявили.