Pixel Normal Offset の Refraction モード

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

Choose your operating system:

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

屈折設定の物理モデル: Index of Refraction

屈折設定の非物理モデル: Pixel Normal Offset

屈折モード: Index of Refraction 法線マップなし

屈折モード: Pixel Normal Offset  法線マップなし

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

屈折モード: Index of Refraction 法線マップあり

屈折モード: Pixel Normal Offset  法線マップあり

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

最終結果

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

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
閉じる