twaki’s blog

ゲーム開発に関する事を書くと思います。

PBRについて #2

引き続き、Frostbiteの資料を見ながら進めていきます。
関連する記事は PBRについて #0 にまとめています。

今回は Moving Frostbite to Physically Based Rendering 3.0 の 「2 Reference」を見てみます。

※メモみたいなものなので、言葉遣いは雑です。
※個人的な解釈なので間違ってる可能性はあります。
※間違っている箇所がありましたら、ご指摘頂けると助かります。


モデルと仮設の検証

フォトリアリズムは、フォトリアリスティックなイメージを作成するために使用されたデータと方法については何も言及していない。
実際の動作や特性をシミュレートしようとする物理的なレンダリングとは異なり、結果は定量的に判断される。
これにより、"ground truth"データに対する追加要件が課せられる。
適切なモデルと正しい仮説、つまり良い参考文献を慎重に選択することが重要。
実際の世界を観察して比較することは、適切な選択肢を作り、技術や方法がどれほど適切であるかを判断する最良の方法。
実際の世界を観察する粗いレベルでは、ハイライトの形状、濡れた表面の挙動、光の強さの違い、その他多くの視覚的特徴を素早く把握できる。 各スケールで示される異なる照明動作をキャプチャするには、複数のスケールで写真を撮ることが重要。(図1参照)

f:id:twaki:20180723230700j:plain
図1:実世界の照明(左)とエンジン内の照明(右)の比較

しかし、実際のデータを正確に測定するには、しばしばかなり複雑で時間がかかる。 MERL のような特定のデータベースは、そのようなデータへのアクセスを提供し、モデルを迅速に評価することができる。
Frostbiteのアプローチでは、光の強さや減衰、空の明るさ、カメラの効果など、実際のデータを測定し、検証しようとした。
しかし、これらすべてのステップは時間がかかり、セットアップが必ずしも容易ではない。

エンジン内での近似の検証

Mitsuba のような現代のPBRパストレーサは最先端のレンダリング技術を実装しており、信じられないほどリアルなイメージを作り出すことができる。
このようなソフトウェアを使用することは、モデルの精度を評価するためのより簡単な方法。
Frostbiteでは、Mitsubaのシンプルなエクスポーターを書いている。
これにより、近似の有効性を迅速に評価することができる。
エクスポータは、ジオメトリおよびコンスタントなマテリアル情報(つまり、テクスチャなし)およびすべての光源をエクスポートすることができる。
この設定により、マテリアルモデル、ライトの統合、ライトの強度を簡単に確認できる。
さらに、このエクスポーターにより、グローバルイルミネーション、アンビエントオクルージョン、リフレクションなどのより複雑な現象の精度を検証することができる。
図2は、エクスポート後に自動的にトリガーされるウィジェットを示している。
エンジン内の結果とオフラインリファレンスの間でピクセル値をすばやくスワイプして比較することができる。
レンダラによる輝度出力のレンジが広いため、
このレンジを保つために、両方のレンダラは最終的なイメージを線形HDRフォーマット(OpenEXR)にエクスポートする。(この点は重要)

f:id:twaki:20180723231935j:plain:w500
図2:エンジン内の結果とオフラインのパストレース結果を比較し、実装の妥当性を評価するツール

エンジン内のリファレンスモードの検証

エクスポータは便利だが、シーンをエクスポートしてレンダリングするには、数秒から数分の間の時間が必要。
さまざまな近似を素早く繰り返し、適切なものを選択するために、GPU上のbrute-force sampling(イメージベースドライティングとエリアライト)によるライトの統合のためのエンジン内リファレンスモードを追加した。
高速ではないが、反復時間は単純なエクスポーターよりも一桁速い。
付録Aには、リファレンスモードでのいくつかのタイプのライトを評価するためのリストが含まれている。

f:id:twaki:20180723230313j:plain
図3:左:エンジン内のいくつかのタイプのエリアライトで構成されるシーンのレンダリング。中:GPU上でエリアライトをインポータンスサンプリングする事によって、同じシーンがエンジンでレンダリングされた。右:検証のためにパストレーサの内部でレンダリングされるシーン。

Note:
正しいリファレンスを使用することが重要。
リファレンスがよくない場合、近似はあまり良くならない。
もし、ヘアシェーディングモデルを近似する場合は、現実世界に最も近いモデルをリファレンスとして使用する。
数式を近似するときは、オリジナルの方程式を使用する。
Oren-NayarやSchlickのフレネル方程式近似などの近似式は、誤差が生じる可能性があるので使用しない。
完全に信頼できる唯一の参考資料は、常に現実の世界。


参考資料

Moving Frostbite to Physically Based Rendering 3.0

Moving Frostbite to Physically Based Rendering

 超雑訳 Moving Frostbite to Physically Based Rendering 2.0