Рефракция с применением Pixel Normal Offset в Unreal Engine 4

0
6
Рефракция с применением Pixel Normal Offset в Unreal Engine 4

В Unreal Engine 4 теперь мы используем нефизическую модель рефракции – Pixel Normal Offset. Встроенный код, используя физическую модель преломления для индекса рефракции (Index of Refraction), основан на том, как световые лучи преломляются при переходе между средами, что может вызвать множество артефактов по мере того, как цвет сцены считывается с экрана. Это может быть полезно для небольших объектов, таких как стеклянные банки, где вы не заметите эффект настолько, но это проблематично для плоских поверхностей. Pixel Normal Offset позволяет преломлять эти большие плоские поверхности, такие как вода, когда вы не хотите, чтобы было такое сильное постоянное смещение, которое читается с экрана. Он использует нормаль вершины как ссылку, а затем вычисляет смещение рефракции от того, насколько отличается нормаль каждого пикселя от нормали вершины, позволяя этим плоским поверхностям не сдвигаться.

Чтобы включить рефракцию в режиме Pixel Normal Offset, выберите Main Material Node и используйте панель Details, чтобы установить режим преломления (Refraction Mode):

Настройка преломления PNO UE4

Физическая и Нефизическая Модель Рефракции

В приведенных ниже сравнениях Рефракционные режимы для физической модели Индекса Преломления и нефизической модели для Pixel Normal Offset демонстрируют различия в том, как нормаль читается в материале.
Дополнительную информацию о физической модели преломления и использовании ее с материалами см. в разделе Использование Рефракции.
IOR без нормалей UE4

Режим преломления: Index of Refraction

PNO без нормалей UE4Режим преломления: Pixel Normal Offset

Здесь вы заметите, что изображение смещается при использовании режима Index of Refraction по сравнению с Pixel Normal Offset, где вы не читаете с экрана так явно. Индекс рефракции будет работать без карты нормали, подключенной к материалу, тогда как с Pixel Normal Offset, если нет карты нормали, вы не получите никакого преломления.

Когда вы добавляете карту нормали к вашему материалу с рефракцией и значением, превышающим 1, подключенным к вашему входу Refraction, нормаль будет транслироваться вдоль поверхности при использовании Pixel Normal Offset. Однако вы заметите, что с помощью Index of Refraction вы по-прежнему будете иметь смещение, которое считывается с экрана, что не является желательным эффектом для этих плоских поверхностей с использованием преломления.

Конечные результаты

В этом примере величина преломления регулируется между значением 1,0, которое вообще не является преломлением, до значения 2,0 для некоторого преломления вдоль поверхности без смещения изображения при использовании Pixel Normal Offset.