Refraction モード:Pixel Normal Offset

マテリアルで Pixel Normal Offset のRefraction モードを使う方法

Windows
MacOS
Linux

Unreal Engine 4 では屈折の非物理モデル Pixel Normal Offset が使用できます。ビルトイン コードは、Index of Refraction の屈折の物理モデルを使って、 ライト光線が媒体間を移動する際の反射方法に基づいているので、スクリーン以外から読み取るとアーティファクトが多数発生する可能性があります。ガラスジャーなどの小さなオブジェクトに使う場合は便利ですが、 気が付かない程度ではありますが、平らなサーフェスでは問題があります。Pixel Normal Offset は、大きく平らな、例えば水のようなサーフェースをスクリーン以外から読み取っても、 絶えずオフセットが生じてしまうことのない屈折を可能にします。頂点法線を参照にして、各ピクセルの法線と頂点法線の差を出して、屈折オフセットを計算する "Pixel Normal Offset" 屈折モードが追加されました。 これにより、平らなサーフェスでのずれがなくなりました。

屈折の物理モデルと非物理モデルの比較

下の図は、Index of Refraction の物理モデルと Pixel Normal Offset の非物理モードの Refraction モードの比較です。 マテリアル内での法線の読み取り方の違いを表しています。

屈折の物理モードのさらに詳細、またマテリアルとの使用方法については、屈折の使用方法 を参照してください。

RefractionSettingIOR.png

RefractionSettingPNO.png

Physical Model of Refraction:Index of Refraction (法線なし)

Non-Physical Model of Refraction:Pixel Normal Offset (法線なし)

スクリーン外からはあまり読まない Pixel Normal Offset モードに比べて Index of Refraction モードを使用すると画像がずれていることが分かります。Index ofRefraction は法線マップをマテリアルに差し込まずに機能しますが、 Pixel Normal Offset は法線マップを付けないと屈折はでません。

RefractionSettingIOR.png

RefractionSettingPNO.png

Physical Model (法線マップあり)

Non-Physical Model (法線マップあり)

屈折を使い 1 以上の値を Refraction に入力して法線マップをマテリアルに追加すると、Pixel Normal Offset を使うと法線はサーフェスに沿って平行移動します。 ただし、Index of Refraction を使うと以前としてスクリーン外から読みこまれたオフセットが残り、これは屈折が使われている平らなサーフェスには好ましくないエフェクトです。

最終結果

この例では、屈折がまったくない 1.0 と、Pixel Normal Offset を使用して画像がずれないように 屈折をサーフェスに合わせた 2.0 の間で調節しています。

Tags
Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback