Intel Open PGL を使用したパスガイドサンプリング

この記事はChaos.comのこちらの[ブログ記事]を日本語訳した物です

概要

V-Ray 6.1 には実験的な機能の1つとして、Intel社の Open Path Guiding Library を初期実装しています。このブログでは、パスガイドサンプリングの詳細と、この統合における Intel社とChaos社エンジニアのコラボレーション内容をお伝えします。このブログ投稿の一部は、Intel社のエキスパート・レイトレーシング ソフトウェアエンジニアである Sebastian Herholz氏によって寄稿されました。

パスガイドとは?

最新のレンダラーでフォトリアリスティックなイメージを生成するために最も広く使用されている手法の1つは、単方向のパストレースです。この方法を簡単に説明すると、レンダラーはカメラの位置から画像のピクセル単位にシーンに光(Ray)を打ち込んで追跡します。
これらの光線(Ray)の追跡計算は、最終的なピクセルの値/色を決定するシーンから光の伝わり方の解を推定する計算です。光線(Ray)とシーンジオメトリが交差するたびに、レンダラーはシーンの光源からの直接照明を計算し、それらの光線(Ray)を反射させて、グローバルイルミネーション、反射、屈折を計算します。

カメラから光源が見えない様な困難な照明条件と均一にサンプルするパス・トレースでは、極一部のパスのみが照明に到達します。これにより、非常にノイズの多い結果になります。

この場合結果として得られる画像は物理的に正確ですが、ノイズが非常に多いでしょう。このノイズを望ましいレベルに低減するには、ピクセルごとに十分なサンプルが必要です。ノイズを削減するには一般的に、レンダラーがシーン内の光の伝達をどの程度うまくサンプルできるか、つまり、ピクセルの値に大きく寄与するシーンの領域 (光源やオブジェクトなど) に光線(Ray)が届く様に方向付けることができるかどうかに依存します。またノイズ量は照明状況の「難しさ/複雑さ」も関係します。例えば、小さな窓だけある部屋の様な複雑な間接照明のあるシーンに比べて、屋外の様な均一な照明(空)のあるシーンでは、必要なノイズ レベルを達成するために必要なサンプルが少なくなります。パストレーサはシーンの照明からの直接照明の処理には優れていますが、明るく照らされた表面からの間接照明をクリーンアップするにはさらに多くのサンプルが必要になる場合があります。これは、レンダラーには間接照明に関する情報がなく、さらに間接照明は通常ローカル マテリアルの反射特性に依存する為です。

パスガイドを使用すると、より多くのパスがシーンの明るい領域に到達し、最終的なピクセルの明るさに寄与しノイズの少ない画像が得られます。

パスガイドは、シーンの間接照明に関する情報がまったく無いというレンダラーの制限を克服することで、レンダリング品質を向上させる方法です。パスガイドは、レンダリングのプリパスまたはプログレッシブレンダリングの反復中に、シーンの間接照明の近似値を学習します。レンダリング中、レンダラーが次の光線(Ray)をどの方向に発射するかを決定する必要がある場合、間接照明の近似値を使用して光線を重要な方向 (例えばシーンのより明るい領域) に導きます。この光線(Ray)の打ち込む方向を「ガイド」する事により、特に V-Ray のアダプティブドーム ライトサンプリング技術やChaos Coronaのワンクリックコースティクス技術などの他のレンダリング最適化ではカバーされない複雑な照明状況を持つシーンで、大幅なノイズ低減と画像のクリーンアップの高速化が実現します。

なぜV-RayはIntel社のOpenPGL を導入したのか

パスガイドは数十年にわたる研究の成果です。ただし、プロダクションレンダラーへの採用は最近始まったばかりです (参考: Path guiding in production | ACM SIGGRAPH 2019 course) [0]。
残念ながら、業界全体で広く採用されるほど堅牢かつ効率的な「唯一の」経路案内アプローチは存在していません。これがIntel社がオープンソースとしてIntel Open PGLプロジェクトを作成し、レンダリングコミュニティと協力して日常の制作で使用できるほど堅牢かつ効率的なパスガイド フレームワークを開発している理由です。Intel社は、Intel Embree (embree.org/) が業界標準的なレイ トレーシング/インターセクション カーネル用であるのと同様に、Intel Open PGL プロジェクトをレンダリング コミュニティにおけるパス ガイドの最高のソリューションにすることを目指しています。

Chaos が Open PGL を実装することを選択したのは、Open PGL が有望な結果を示し、Corona や V-Ray などのプロダクションレンダラーに比較的簡単に統合できる API を提供している為です。さらに、Embreeプロジェクトでの経験は、コミュニティ主導ソリューションの明らかな利点を実証しました。さまざまな業界の貢献者が参加する、堅牢でパフォーマンスの高いライブラリです。

Intel Open PGL の開発方法

Sebastian Herholz氏ともう 1 人の Intel レイトレーシング エンジニアである Addis Dittebrandt氏が主な開発作業を指揮しています。 Blenderコミュニティからの貢献が提供され、現在は Chaosコミュニティからも貢献が提供されています。

技術的な詳細とその仕組み

Intel Open PGL は、シーンの光の分布を近似して、Ray交差におけるサンプリングの決定を重要度の高い方向 (強い間接照明のある方向) に導きます。シーンの光分布の近似値は、レンダリング中に学習されるか、V-Rayの場合のようにレンダリングのプリパス(ライトキャッシュ)で学習されます。

シーン全体の高次元の光分布 (ライトフィールド) の近似を表すために、シーンの空間領域が最初に小さな領域に分割され、各領域には局所的な入射光分布の近似値が格納されます。これらの近似はライトプローブに似ており、対応する領域全体の近似値を格納するのに有効です。

レンダリング中、新しい方向がサンプリングされる毎に、現在の交点での光の分布が更新され、レンダリングされたイメージに大きく寄与する重要な方向へのパスをガイドするために使用されます ([3]、[4])。Intel Open PGL は、サーフェスやボリュームと相互作用するパスをガイドすることにより、マルチバウンス拡散照明、多重散乱ボリューメトリック照明、さらに単純な直接および間接コースティック効果などの複雑な間接照明シナリオでのサンプリング品質を向上させます。

V-Ray 6.1 での Intel Open PGL 実装

V-Ray 6.1 のCPUレンダラーには実験的に Intel Open PGL が実装されています。現在の所パスガイドのトレーニングはV-Rayのライトキャッシュの構築中に行われます。その為、ライトキャッシュの設定に 「path guiding」のオプションが見つかります。これにより、ライトキャッシュが計算されると、プログレッシブ・レンダリングモードとバケット・レンダリングモードの両方でパスガイドを使用できるようになります。拡散反射 (GI) と光沢反射、ボリューム内の間接照明等はパスガイドサンプリングによって、より早くノイズを収束できます。パスガイドの目的は、困難なシナリオでサンプルを効率化し、ノイズをより速く収束させる事です。パスガイドは、VRayMtl、VRayEnvironmentFog、VRay VolumeGridでサポートされています。

パスガイドのライブラリはライトキャッシュの計算フェーズ中にトレーニングされるため、ライト キャッシュのサンプル数(subdivs)を増やすと、ガイドエンジンが処理するデータが増えるため、最終的なレンダリング時間が短縮されます。

実際の効果

パスガイドの実装はまだ実験段階であり、発展中の技術です。その結果はシーンに大きく依存します。シーンによっては、レンダリング時間を大幅に短縮できる場合もありますが、あまり役に立たない場合もあります。これまでに確認した最良の結果は、シーンの大部分が間接照明で照らされているシーンです。(カメラからライトが直接見えないシーン)以下は、パスガイドによってレンダリング時間が大幅に改善されるシーンの例です。

例1

V-Ray アダプティブ・ドームライトと OpenPGL のパスガイドを使用してレンダリングしています。
(このシーンはTurbosquidで購入されたシーンです:http://www.turbosquid.com/3d-models/scenes-loft-3d-model/685003)

このシーンでは非アダプティブな場合比較して、パスガイドと V-Ray アダプティブ・ドームライトの両方の最適化により、レンダリング時間が大幅に短縮されています。それぞれがアダプティブドームとOpenPGLはそれぞれ単独で速度を大幅に向上させますが、うまく組み合わせると最速の結果を生み出す事もできます。以下の表では、VRaySampleRate レンダーエレメントと、設定のさまざまな組み合わせのレンダリング時間を示します。シーンは、ピクセルあたり最大 40 の AA サブディビジョン (つまり、ピクセルあたり 1600 サンプル) でレンダリングするように設定されています。ライトキャッシュは 3000 subdivs (つまり、900万の画像サンプル) に設定されました。左上隅の非アダプティブの結果では、画像の一部 (つまり、赤で着色された部分) は、目的の (分散ベースの) ノイズしきい値に到達していない事を意味します。

以下のレンダリングは、ライトキャッシュのサンプル数(subdivs)に応じたパスガイドの効率効果を示しています。ライトキャッシュのサンプル(subdivs)が増えると、パスガイドにより多くのトレーニング・サンプルが提供されるため、最終レンダリング中に光線(Ray)をより適切にガイドできるようになります。

例2

アダプティブ・ドームライトと Open PGL パス ガイドを使用してレンダリングしています。
(Radiosity Competitionより Sibenik cathedral シーン: (http://hdri.cgtechniques.com/~sibenik2/)

この例では、パスガイドとアダプティブ・ドームライトの両方がレンダリング時間の短縮に役立っていますが、この照明状況ではパスガイドの効果がはるかに大きくなります。これは、環境からの照明の大部分がジオメトリによってブロックされているためです。このシーンは、30 AA subdivs (ピクセルあたり最大 900 サンプル) と 0.03 のノイズしきい値でレンダリングするように設定されています。パスガイドは、同じノイズ レベルを達成するために必要なサンプルの数を大幅に減らすのに役立ちます。ライトキャッシュは 3000 subdivs (つまり、900 万の画像サンプル) を使用するように設定されました。

このシーンでは、デフォルトのライトキャッシュ サンプル値 1000 subdivsを使用した場合、パスガイドによるレンダリングの大幅な改善が発揮されません。より多くのサンプル値(subdivs)を使用すると、シーンに関するより多くの情報が利用できるため、パスガイドがより適切に影響する様になります。

今後の展開

この初期実装は一部の状況ではすでに役立つことが証明されていますが、近い将来、次の様なさらに多くの改良が行われる予定です:

  • 経路誘導の性能を向上させ、より幅の広いシーンで活用できる事を目指します。現時点では、パスガイドの使用にはオーバーヘッドがあるため、GI/反射が主なノイズ源ではないシーンではパスガイドが役に立ちません。
  • より多くのマテリアルタイプでパスガイドをサポートできる様に拡張します。VRayScannedMtlマテリアル、光沢のある屈折等は既に取り組んでいます。
  • プログレッシブ・レンダリング中に学習を続け、結果をより向上させます
  • 「adaptive prepass」オプションを使用してブルートフォースGI でもパスガイドを利用できる様にします。

Intel社の高度なレイトレーシング テクノロジーに関して

アカデミー賞を受賞したIntel Embree、Intel Open Image Denoise (アダムス・ファミリー2 で使用)、Intel Open Volume Kernel Libraryなど、Intel oneAPI レンダリング・ツールキットのその他の高度なレイ トレーシング ソフトウェアの詳細をご覧ください。すべてのライブラリはIntel社のオープンソース (GitHub) リトリポジで入手できます。

・ IntelR Open PGL は openpgl.org でより詳細をご覧いただけます。

ポッドキャスト

Intel社の「Code Together」ポッドキャストシリーズの 「Ray Tracing, Path Tracing and Path Guiding – Finding the Light (efficiently) with Chaos and Open PGL」という新しいポッドキャストで担当者から詳細を直接聞く事ができます。ポッドキャストは、Spotify や Apple Podcast など、ポッドキャストが存在する場所であればどこでも見つけることができます。また、次のリンクから直接聴くこともできます。

Ray Tracing, Path Tracing & Path Guiding – Finding the Light (efficiently) with Chaos and OpenPGL

V-Ray 6.1 には他にも多くの改良点が含まれています。詳細については、https://v-ray.jp/v-ray/3dsmax/ を参照してください。

参考文献

[0] Path Guiding in Production (https://dl.acm.org/doi/10.1145/3305366.3328091)

[1] Robust fitting of parallax-aware mixtures for path guiding (https://dl.acm.org/doi/10.1145/3386569.3392421)

[2] Practical Path Guiding for Efficient Light-Transport Simulation (https://dl.acm.org/doi/10.1111/cgf.13227)

[3] Volume Path Guiding Based on Zero-Variance Random Walk Theory (https://dl.acm.org/doi/abs/10.1145/3230635)

https://cgg.mff.cuni.cz/~jaroslav/papers/2019-volume-path-guiding/index.html

[4] Product Importance Sampling for Light Transport Path Guiding (https://dl.acm.org/doi/10.5555/3071773.3071781)

https://cgg.mff.cuni.cz/~jaroslav/papers/2016-productis/

The following two tabs change content below.
株式会社オークでV-Rayをサポートしています。