2014-5-1

UE4 の物理ベースのシェーディング

作成 Jordan Walker

物理ベースのシェーディングという用語には、3 つの意味が込められています。1 つは、アンリアル・エンジン 4 で使用されているライティングとシェーディングのアルゴリズムが、光と物質間の物理的相互作用に近似しているということ。2 つ目としては、使用されている単位が、物理的な測定で一般的に用いられるものであるということ。3 つ目は、マテリアルの定義がシンプルであり、現実のものを簡単に変換できるということです。以前であれば、デベロッパーたちは多数の変数を調整することによって、望みの外見を実現していたものです。しかも、さまざまなライティングのシナリオで、幾度となく予期しない結果を得ながら。

以下では、物理ベースのレンダリングが、アンリアル・エンジン 4 内部のコンテンツ クリエイターにどのように影響するかということについて書いています。

ライト
ライティングを計算する場合、UE4 では、物理的にできるだけ正確なアルゴリズムと単位が使用されます。たとえば、ライトの強度はルーメンが使われ、減衰率は逆二乗の法則に従います。つまり、ライトは光源に近づくと非常に明るくなり、光源への距離が長くなれば急速に薄暗くなります。このレベルの正確性があれば、ゲームシーンに広範囲に及ぶライトを備えることができるため、グローバル イルミネーションや反射といった他機能もまさに光り輝くようになります。

最初の画像は、左が逆二乗減衰で、右が指数関数減衰です。2 つ目の画像は、単一のスポットライトで照らされているシーンで、逆二乗減衰を使っています。ハイダイナミックレンジのライティングが反射とグローバル イルミネーションにどのように影響を与えているかが分かります。

.

マテリアルのシェーディング
現実のサーフェスには、なんらかの形態のスペキュラ反射が見られるため、UE4 ではあらゆるマテリアルにスペキュラ ハイライトとシーン反射を備えています。反射の量は、サーフェスとカメラの角度に影響を受けます。サーフェスが非金属であり、カメラと向かい合っている場合、ライトのおよそ 4% を鏡面的に反射します。サーフェスがカメラに対してグレージング角度にある場合は、ライトのほぼ 100% を鏡面的に反射します。

次の画像は、サーフェスがカメラと向き合った場合に、スペキュラ反射の量がどのように変化するかを示しています。

マテリアルをシェーディングする場合、UE4 は、エネルギー保存の法則に従います。このことは、マテリアルのラフネス (粗さ) を変更すると簡単に確認できます。ラフネスがとても低いマテリアルを作成すると、ごく小さいけれどもとても明るいハイライトができます。ラフネスを増やすと、ハイライトが大きくなり、とても暗くなります。この理由は、同じ量のライトがより広い領域で反射することで、明るさが低下するためです。

次の画像は、左から、ラフネスが 0.1、0.5、0.9 のマテリアルです。

.

マテリアルの input
マテリアルで最も大きく変更されたのが、おそらく、メタルネス (金属性) の導入でしょう。現実では、金属と非金属で陰影のつき方が異なります。非金属の場合、たいてい約 4% のスペキュラ反射をともなってディフューズ (拡散) で陰影がつきます。一方、金属の場合は、ディフューズによる反射はなく、100% スペキュラ反射です。したがって、UE4 では、メタルネスを 0 にセットすると、BaseColor の input がディフューズ シェーディング カラーのために使用されます。メタルネスを 1 にセットすると、BaseColor は、スペキュラ反射カラーのために使用され、ディフューズ カラーは黒にセットされます。

次の画像は、左がメタルネス 0 のマテリアルであり、右がメタルネス 1 の同じマテリアルです。

2 番目の変更では、理解しておくと役に立つことがあります。それは、現実で見かけるサーフェスを模倣するためにはどのようにラフネスを利用すべきか、ということです。ほとんどハイライトがないサーフェスを見かけると、スペキュラを低くしたくなるかもしれませんが、それは逆です。ラフネスを高くすべきです。ハイライトはラフネスが大きくなると暗くなるため、黒板などの光沢のないサーフェスを模倣するためには、このやり方のほうがより物理的には正確な方法となるのです。スペキュラの input は UE4 ではめったに使用されません。実践的には、スペキュラを取り除くことが有効となることが時々ありました。ジオメトリには存在しないけれども、法線マップには存在するディテールによって微細なオクルージョンが引き起こされるような領域からスペキュラを取り除く場合です。

次の画像では、左側のサーフェスがラフネス 0 で、右側のサーフェスがラフネス 1 です。左側が右側よりも格段にスペキュラ反射が強いことが分かります。

Roughness Comparison

物理ベースのマテリアルについてさらに学びたい場合は、エピックの公式のドキュメンテーションをご覧になってください。いつものように、質問がある場合は、気軽にフォーラムを訪れてください。また、Twitter では @Mutantspoon をフォローしてみてください。

最近の投稿

最新技術を先取りチェック:間もなく実現、アンリアルのリアルタイム レイトレーシング

「リアルタイム」と「レイトレーシング」はかつて相反する言葉でした。しかしNVIDIA RTX 技術の登場により、アンリアル エンジンでのリアルタイム ...

西部劇風ビジュアルの大乱闘 FPS、『Sky Noon』の制作背景

ニュージーランドを拠点とするインディー デベロッパー チームであり、Unreal Dev Grant を受賞した Lunar Rooster が、ユニ...

GitHub アカウントと Epic Games アカウントの紐付けの認証プロセスのアップデート

ユーザー エクスペリエンスとセキュリティの向上のために、GitHub アカウントと Epic Games アカウントの紐付けプロセスに OAuth 機...