Unreal Engine では、屈折率 の値から派生した物理ベースの屈折モデルをデフォルトで使用します。物理的な 屈折率 モデルは、光線が媒体間を移動するにつれて屈折する様子を模倣するものです。これは瓶やガラスなどの小さなオブジェクトや、曲がったサーフェスに使う際はうまく機能しますが、大きい平らなサーフェスでは、シーンの色がオフスクリーンから読み取られるため、アーティファクトが生じたり予期せぬ結果となったりすることがあります。
ピクセル法線オフセット は、マテリアル エディタ で利用可能な屈折モードの一つです。ピクセル法線オフセットでは頂点法線をリファレンスとして使用し、ピクセルごとの法線と頂点法線との差を計算することで、屈折オフセットを算出します。これは、オフスクリーンからのデータを読み取る定数オフセットが適さない、水などの大きい平らなサーフェスで有用です。
物理的および非物理的な屈折モデル
マテリアルの 屈折モード は [Details (詳細)] パネルで変更できます。[Refraction (屈折)] セクションまでスクロールしてこのセクションを展開し、[Refraction Mode (屈折モード)] ドロップダウンで 2 つのオプションのうちの一つを選択します。すべてのマテリアルでは、デフォルトで [Index of Refraction (屈折率)] が使用されます。
屈折の物理的モデルの詳細とマテリアルでの使用方法については、「Using Refraction (屈折の操作ガイド)」のページを参照してください。
![]() |
![]() |
---|---|
物理的な屈折モデル:Index of Refraction (屈折率) | 非物理的な屈折モデル:Pixel Normal Offset (ピクセル法線オフセット) |
以下の比較画像では、[Refraction Mode] が [Index of Refraction] から [Pixel Normal Offset] に変更された際に、マテリアルでの法線の読み取りがどのように変化するかを示しています。


上の比較画像では、オフスクリーンからの読み取りがそれほど多くない ピクセル法線オフセット モードと比べて、屈折率 モードを使用している際は画像がシフトすることがわかります。屈折率 は マテリアルに法線マップが接続されていないでも機能しますが、ピクセル法線オフセット では、法線マップがない場合は屈折が生じないことに注意してください。


Refraction 入力に 1 より大きい値が接続されたマテリアルに法線マップを加えると、ピクセル法線オフセット を使用した際に、その法線がサーフェスに沿って平行移動されます。 ただし、屈折率 を使った場合にもオフスクリーンから読み取られるオフセットが生じますが、屈折を使った平らなサーフェスに適したエフェクトではありません。
最終結果
この例では、屈折がまったくない 1.0 と、Pixel Normal Offset を使用して画像がずれないように 屈折をサーフェスに合わせた 2.0 の間で調節しています。
ピクセル法線オフセットとガラス
ピクセル法線オフセットは、次のようなカフェのシーンにある窓などの、大きい平らなガラスのサーフェスにも有用です。スライダーの最初の画像では、デフォルトである 屈折率 が使われています。窓の屈折は雑然としており、右下隅にはアーティファクトが生じています。屈折モードを ピクセル法線オフセット に変更すると、窓はより現実味溢れるものとなり、アーティファクトも消えます。


スライダーを動かして、屈折モードが屈折率 (画像 1) からピクセル法線オフセット (画像 2) に変更された際のガラスの変化を確認してください。
このガラスの法線マップには、細かな摩耗とサーフェスのマイナーな不完全部分のみが含まれるため、この例の屈折は、ピクセル法線オフセット モードでは非常にわずかです。これは、きれいな建築用ガラスでは予期どおりの結果です。
ただし、テクスチャ化またはパターン化されたガラス エフェクトが必要な場合は、より多くの表現が可能な法線マップを使用して、Refraction の値を「1.52」などに設定できます。
次の画像は、法線マップがガラス窓の屈折に及ぼしている影響を表しています。