超雑訳 Separable Subsurface Scattering: Expanded Technical Report

Share

こんにちわ、Pocolです。
今日は…

  • [Jimenez 2020] Jorge Jimenez, Karoly Zsolnai, Adrian Jarabo, Christian Freude, Thomas Auzinger, Xian-Chun Wu, Javier von der Pahlen, Michael Wimmer, Diego Gutierrez, “Separable Subsurface Scattering: Expanded Technical Report”, Activision Research Techical Report, Mar 09, 2020, https://research.activision.com/tech-reports/2020-03/separable-subsurface-scattering-expanded-technical-report.

を読んでみようと思います。
いつもながら誤字・誤訳があるかと思いますので,指摘していただける場合は正しい翻訳例とともに指摘していただけるとありがたいです。

Abstract

本論文では、(典型的な肖像画の場面について)1フレーム当たり0.4ミリ秒以下の実行を必要とする様々な半透明マテリアルの表面下散乱をシミュレーションするための2つのリアルタイムモデルを提案します。これにより、リアルタイムの制作状況のための実用的な選択肢となります。現在の最先端のリアルタイムアプローチでは、放射状に対称な非分離可能な拡散カーネルを分離可能なガウシアンの和で近似することで、表面下散乱の光輸送をシミュレーションしていますが、これには複数の(最大12個の)1次元畳み込みが必要です。本研究では、半径方向対称性の要件を緩和し、単一の分離可能なカーネルで2次元拡散反射率プロファイルを近似します。

我々はまず、行列因数分解に基づく低ランク近似が以前のアプローチよりも優れていることを示しますが、良い結果を得るためにはまだ数回のパスが必要となります。これを解決するために、我々は2つの異なる分離可能モデルを提示します: a) カーネル積分は高品質の拡散シミュレーションを実現します。そして, b) アーティストに優しいモデルで,物理的な正確さとアーティスティックなコントロールの間の魅力的なトレードオフを提供します。どちらも、表面下散乱の描画をわずか2つの1次元畳み込みに削減し、より高いコストを持つ技術と同等の結果を提供します。重要度サンプリングとカーネルの一部を回転させる我々の確率的サンプリング戦略を使用すると、分離可能なカーネルがアーティファクトをもたらす可能性がある高解像度イメージングやクローズアップの場合でも、ピクセルあたりわずか7つのサンプルしか必要としません。さらに、2つの1次元ガウシアンのみで構築された分離可能なプロファイルが、モンテカルロシミュレーションとマルチポール拡散のリファレンスと知覚的に一致することを示します。我々の手法は、既存のレンダリングパイプラインを変更することなく、簡単な後処理ステップとして実装することができます。

1. Introduction

半透明のマテリアルを正確に描写することは、映画やゲーム業界では重要な課題ですが、挑戦的なテーマとなっています。現実的な表面下散乱(SSS)をレンダリングするには、半透明な媒質の内部で光がどのように移動して散乱するかをシミュレートする必要がありますが、これにはコストがかかります。オフラインのレンダリングシナリオでは計算時間が長くなりますが、ビデオゲームなどのリアルタイムアプリケーションでは、時間的な制約が厳しく、表面下散乱や半透明効果が排除されてしまうことがよくあります。これは、実現可能なリアリズムのレベルを妨げることになります。

表面下散乱を効率的に計算するための最も一般的なアプローチの1つは、高周波のディテールやライティングをぼかすという事実を利用しています。これは、表面下散乱のシミュレーションが、与えられた半透明な媒体の拡散反射率プロファイルを模倣する拡散カーネルを用いた畳み込みとして近似できることを意味します。正確な再構成には通常高価な2次元畳み込みが必要ですが、d’Eonら[dLE07]は、放射状に対称なガウシアンの和で近似できることを示しました。このように、ガウシアンの分離可能性により、2次元畳み込みは、より安価な1次元パスのセットを使用して計算することができ、リアルタイムで高品質のスキンレンダリングを可能にします。このアプローチは後にスクリーン空間にも拡張され、ピクセルごとの深度情報に応じてカーネルの幅を変調します[JSG09]。

しかし、十分な結果を得るためには、拡散反射率プロファイルをモデル化するためにいくつかのガウシアンが必要です。これは、1フレームあたり複数の1次元畳み込みになり、やはりコストがかかります。この論文では、一般的に数学的に分離不可能な厳密なシミュレーション拡散カーネルが、広い範囲のマテリアルに対して低ランク因数分解によって密接に再構成できるという重要な観察を行いました(図2を参照)。これに基づいて、我々は2つの異なる分離可能なモデルを提示し、2つの1次元畳み込みで表面下散乱のシミュレーションを可能にしました:最初のものは、カーネル事前積分で、放射照度量が加算的に分離可能に近いという観測に基づいて高品質の拡散プロファイルを再構成することを可能にし、一方、2番目のものは、アーティストフレンドリーなモデルで,前の観察に続いて、散乱プロファイルのアーティスティックな編集のために物理的な正確さと使いやすさの間の魅力的なトレードオフを提供します(表1)。重要度サンプリングと我々の確率的サンプリング戦略との組み合わせにより、我々の方法は、1ピクセルあたり7つのサンプルを必要とするだけです(図1と15を参照してください)。

※図は,[Jimenez 2020]より引用

※表は,[Jimenez 2020]より引用

※図は,[Jimenez 2020]より引用

※図は,[Jimenez 2020]より引用

 我々の手法は、単純な後処理ステップとして実装でき、複雑なアルファブレンディングパイプラインやガウスレベルの詳細度[JG10]に依存せず、追加コストなしで動的オブジェクトを扱うことができます。さらに、我々のすべてのrank-1近似は、通常、現代の便利なハードウェア上でフレームあたり0.4ms未満で実行され、散乱を可視できないシーンの領域は、ステンシルバッファリングを使用して迅速にカリングすることができるので、無視できるほどの固定コストを示しています。我々の分離可能な表面下散乱の近似は、物理ベースの表面下散乱レンダリングとゲームのような時間的制約の多い環境との間のギャップを埋め、現在、ゲームエンジンやプロダクションパイプラインで使用されています。
本論文の主な貢献は以下の通りです:

  • 事前積分されたrank-1モデルは加法的に分離可能な信号に適用した場合に、2次元畳み込みカーネルを最適に近似することができます。このタイプの信号には、表面下散乱の最も重要な手がかりである影の境界が含まれます。
  • 表面下散乱パラメータを直感的に編集できるアーティストフレンドリーなモデル。このモデルは、この現象を示す最も困難なマテリアルの一つである多層皮膚を含む、2つのガウシアンのみでモンテカルロシミュレーションを忠実に表現(そして編集)することができることを示します。
  • 確率的サンプリング技術により、顔の毛穴の細部のような無添加分離可能な高周波信号を適切にフィルタリングすることができます。
  • 全体的に、水も漏らさないプロダクションシナリオに役立つ実用的なリアルタイム技術です。

2. Previous Work

オフライン技術
半透明マテリアル内部の散乱のシミュレーションは、従来のパスサンプリング法で解くことができる放射伝達方程式[Cha60]に遡ります。この積分の解法は計算時間の面で非常に厳しいプロセスであり、特に多数のバウンスに対して解かれた場合には非常に厳しいものとなります。計算時間を短縮するための最適化手法として、ダイポールモデルの使用[JMLH01, JB02]や多重散乱を拡散過程としてモデル化する[Sta95]などがあります。Donner と Jensen [DJ05]は、ダイポールをマルチポールモデルに拡張し、皮膚のような多層半透明マテリアルのモデリングを可能にしました。その後、同じ著者はフォトントレースと拡散近似を組み合わせたフォトン拡散法を導入しました[DJ07]。これらの研究は、画像1枚あたりの計算時間が数秒という驚異的な結果をもたらしました。さらに最近の手法では、拡散理論に内在する不正確さを改善するために、より洗練された拡散モデルを使用して単一と複数の散乱項を分離し、拡散方程式のグリーン関数を量子化することで、現実的な全周波数の結果を得ることができます[DI11]。さらなる改良は、より良い重点サンプリング[KF12]を中心としたものであり、最近の手法では、多重重点サンプリング[HCJ13]を用いたモンテカルロ積分によってサーチライト問題を解くことに依存しています。

リアルタイム技術
Borshukov と Lewis [BL03]は、ガウスフィルタを用いて2次元拡散照度テクスチャをぼかすことにより、表面下散乱を近似しました。この手法は効率的であり,GPUへのマッピングは良好ですが,表面下散乱のより繊細なディテールをおざなりにしています。このアイデアは後にd’Eonら[dLE07, dL07]によって拡張され,高品質のリアルタイムスキンシェーダが開発されました。彼らはマルチポールモデルをガウシアンの和で近似し、テクスチャ空間の放射照度信号をぼかすためにそれらを使用しています。ガウシアンは分離可能なので、これにより、高価な2D畳み込みをより安価な1D畳み込みの集合に変換することができます。この手法は、オフラインシミュレーションと同等の結果を与えながら、リアルタイムのフレームレートを可能にします。その後の研究では、13個のジッターサンプルポイントで1つの2次元畳み込みを計算することに基づいた追加の最適化が導入されています[HBH09]。しかし、残念ながら、2D畳み込みには13個のサンプルでは十分ではなく、結果が悪くなります。

これらの手法はリアルタイムのフレームレートを提供しますが、表面下散乱シミュレーションはオブジェクトごとに実行する必要があるため、シーン内の半透明オブジェクトの数に応じた拡張性が低くなります。これを克服するために、Jimenezら[JSG09, JG10]は、シミュレーションをテクスチャからスクリーン空間に変換することを提案しました。半透明物体の拡散反射は、ガウスの総和定式化を採用した後処理ステップとしてブラー化され、それにより、表面下散乱計算を物体の可視部分に限定しています。スクリーン空間で動作する他の技術としては、BSSRDFの重点サンプリングを使用するMertensら[MKB*05]、ギャザリングステップの代わりに積分にスプラッティングプロセスを使用するShahら[SKP09]、ガウシアンとの畳み込みがクロスバイラテラルフィルタとして表現できることを示すMikkelsen[Mik10]などがあります。Penner と Borshukrov [PB11]は,曲率とシャドウイングによる表面下散乱の照明効果をテクスチャに事前積分し,サーフェイス法線を事前にぼかすことができ,ソフトシャドウが使用されることを前提としています。最近のリアルタイム技術では、光学的に厚いマテリアルをレンダリングするために拡散近似を使用しています[WZT*08]。これには、任意の非局所的に平坦なジオメトリ[WWH*10, LSR*13]をサポートするために有限要素と有限差分を使用することも含まれます。これらの研究とは対照的に、我々の技術はシェーディングが計算されるまでぼかしを延期し、その結果、すべての幾何学的な詳細を保持します。さらに、実装がより簡単で、非常に高いフレームレートが得られるため、最も困難なリアルタイムシナリオに適しています。

3. Separable Subsurface Scattering

均質な半透明マテリアルの表面下光散乱による拡散反射率は、無限の半空間の表面の原点で通常入射するペンシルビームの周囲で反射した光を記述した2次元拡散反射率プロファイル\(R_d(x, y)\)で特徴づけられます[JMLH01]。均質なマテリアルの場合、\(R_d\)は放射状に対称であり、\(R_d(x, y) = R_d(|| (x, y)||)\)のような1次元拡散反射率プロファイル\(R_d(r)\)によって特徴付けられます。これは、任意の表面点\((x, y)\)での放射発散度\(M_e(x, y)\)を計算するのに使用することができます:

\begin{eqnarray}
M_e (x, y) = \int_{{\mathbb R}^2} E(x’, y’) R_d(x – x’, y – y’) dx’ dy’ \tag{1}
\end{eqnarray}

ここで,\(E(x, y)\)は点\((x, y)\)における放射照度で,\(M_e(x, y)\)と\(E(x, y)\)の双方は\(Wm^{-2}\)で測られます。注意してほしいのは式(1)は2次元のリフレクタンスプロファイル\(M_e(x, y) = (E \ast R_d)(x, y)\)を持つ2次元の畳み込みの形式を持つということです。

2次元拡散プロファイルの近似
リアルタイムアプリケーションでは、式(1)の2次元畳み込みを行うには、法外なコストがかかります。しかし、プロファイル\(R_d\)を分離可能な関数の和からなる近似\(A\)として表現することができれば、\(2N\)個の1次元畳み込みのシーケンスでこの操作を近似することが可能となり、計算量が大幅に減少します:

\begin{eqnarray}
(E \ast R_d)(x, y) \approx (E \ast A)(x, y) = \sum_{i=1}^N ((E \ast a_i) \ast a_i)(x, y) \\
{\rm with} \quad A(x, y) = \sum_{i=1}^N a_i(x) a_i(y) \tag{2}
\end{eqnarray}

ここで,近似\(A\)は1次元の関数\(a_i\)によって定義されます。\(R_d\)の半径方向の対称性から、同じ関数\(a_i\)は両座標方向でs使用できることになります。d’Eonら[dLE07]は、ゼロ平均ガウシアン\(G\)が近似に適した関数であることを観測しました:

\begin{eqnarray}
R_d(x, y) \approx A_g(x, y) = \sum_{i=1}^N w_i G(x, y; \sigma_i) \tag{3}
\end{eqnarray}

ここで,\(\sigma_i\)は各ガウシアンの標準偏差を示します。ガウスカーネルの分離性により、\(A_g\)との畳み込みは\(2N\)の1次元畳み込みとして実現できます。残念ながら、最も要求の厳しいリアルタイムのシナリオでは、これらの\(2N\)畳み込みはまだ高価です。

しかし、実際には、離散化された拡散カーネルのみを使用しており、これは2次元行列として解釈・解析することができます。これにより、典型的な拡散カーネルのエネルギーの大部分は、最初のいくつかの特異値、特に最初のものに保存されているという観察をすることができます(図2を参照)。これは、拡散プロファイルが低ランクの分離可能な近似で近似できることを意味し、適切に選択された場合には、単一の分離可能なカーネルがカーネルの知覚品質の大部分を再現できることを意味します。このような分離可能カーネルのレンダリングへの応用を図3に示します。

※図は,[Jimenez 2020]より引用

離散化された分離可能カーネルのための明白な選択は、特異値分解(SVD)の第一成分だけを使用することで、Eckhart-Youngの定理[EY36]により、フロベニウスノルムに関して最高の低ランク近似を与えます。これは、純粋なカーネル空間分解では、画像空間ではカーネルの一部が他の部分よりも重要であることを考慮に入れていないことに起因します(すなわち、知覚的には、SSSでは、カーネルのフォールオフはカーネルの中心よりも重要であり、特に、より長い視野距離で重要です)。より高いランクのSVDベースの近似(すなわち、\(N \approx 2 – 6\))は、元のカーネルに非常に速く収束します(図4と7)。しかし、計算時間が長くなるため、リアルタイムアプリケーションにはあまり魅力的ではありません。

※図は,[Jimenez 2020]より引用

※図は,[Jimenez 2020]より引用

以下では、ある仮定の下では、rank-1近似でも拡散カーネルを高精度に再構成できることを示し(セクション4)、半透明マテリアルの外観を直感的に編集できるアーティストフレンドリーな分離可能モデルを提案します(セクション5)。

4. Pre-integrated Separable Kernel

ガウシアン総和近似と我々のSVDベースの手法のどちらも、単一の和が\(N=1\)の場合には満足のいく結果が得られません。現実的な拡散プロファイルの離散化された表現の非分離性のために、単一の分離可能なカーネルによって2次元信号との畳み込みの効果を完全に再構成することはできません。さらに、分離可能な近似カーネルは、図5の例で示されるように、一般的に半径方向に対称ではありません。しかし、特殊なクラスの信号でプロファイルの挙動を完全に再現することは可能です:放射照度が相加的に分離可能であると仮定すると、すなわち、\(E(x, y) = E_1(x) + E_2(y)\)、または、等価的には、\(\frac{\partial E}{\partial x \partial y} = \frac{\partial E}{\partial x \partial y} = 0\)、出射放射輝度\(M_e\)は以下のように与えられます:

\begin{eqnarray}
M_e(x, y) &=& \int\int E(x’, y’) R_d (x – x’, y – y’) dx’dy’ \\
&=& \int \int (E_1(x’) + E_2(y’)) R_d(x – x’, y – y’) dx’dy’ \\
&=& \int E_1(x’) \underbrace{\int R_d(x – x’, y – y’)dy’ dx’}_{a_p(x – x’)} + \int E_2(y’) \underbrace{\int R_d(x – x’, y – y’) dx’ dy’}_{a_p(y – y’)} \tag{4} \\
&=& \int E_1(x’) a_p(x – x’) \underbrace{ \frac{1}{|| a_p ||_1} \int a_P (y – y’) dy’ dx’}_{ = 1} + \int E_2(y’) a_P(y – y’) \underbrace{ \frac{1}{|| a_P ||_1} \int a_p(x – x’) dx’ dy’}_{=1} \\
&=& \int \int E(x’, y’) \frac{1}{|| a_p ||_1} a_p (x – x’) a_p (y – y’) dx’ dy’
\end{eqnarray}

ここで、\(a_p\)は座標軸に沿って\(R_d\)の事前積分された1次元カーネルを示します。\(R_d\)の半径方向対称性により、定義により\(||a_p||_1 = || R_d ||_1\)であり,\(a_p(x) = a_p(y)\)となります。したがって、拡散プロファイルの事前積分カーネル\(A_p\)を次のように定義します:

\begin{eqnarray}
A_p(x, y) = \frac{1}{|| R_d ||_1} a_p(x) a_p(y) \tag{5}
\end{eqnarray}

\(A_p\)は、任意の配向の直線シャドウ境界や一般的な軸に沿った1D関数(垂直シャドウ境界の例については図7を参照)のような、付加的に分離可能な照射信号の存在下で、\(R_d\)との正確な2D畳み込みを再現することに注意してください。したがって、事前積分カーネルを適用することは、\(A_p(x, y)\)が1に正規化されたときに、1Dカーネル\(a_p(x)\)を使用して、照度を垂直方向に畳み込み、次に水平方向に畳み込むことからなります。

※図は,[Jimenez 2020]より引用

一般的な(すなわち、非加法的に分離可能な)信号であっても、この近似は広い範囲のマテリアルとシナリオに対して良好な結果をもたらします(図6と15を参照してください)。しかし、この定式化はアーティストの制御に限界があり、実用的なアプリケーションで使用するためには離散化する必要があります(これはセクション7で示すように欠点となり得ます)。以下のセクションでは、これら2つの制限を克服した分離可能でアーティストに優しいモデルを記述し(セクション5)、次に、非加法的に分離可能な放射照度信号の存在下で品質を向上させるための我々の解決策を記述します(セクション6)。

※図は,[Jimenez 2020]より引用

※図は,[Jimenez 2020]より引用

5. An Artist-Friendly Separable Model

私たちの事前積分カーネル(セクション4)は、実測データ[JMLH01, MES*11]やシミュレーションから得られる拡散カーネルが与えられた場合に、広範囲のマテリアルを再構成することができます。典型的な拡散カーネルのエネルギーが最初の数個の特異値に保存されていることと、相加的に分離可能な入力(実際にはよくあることですが)が正確に分離可能なカーネルで表現できることは、数学的に一般的な場合のグランドトゥルースに非常に近い分離可能なカーネルを見つけることができることを証明しています。しかし、制作環境では、これらのプロファイルは最適なものではないかもしれません。なぜなら、異なるタイプのスキンに対してキャプチャされたり計算されたりするアセット(例えば、アルベドマップの色)にマッチしないかもしれないからです。この問題を解決するために、物理的に意味のあるパラメータに基づいて、表面下散乱のアーティスティックな編集に適したアプローチを提案します。

分離可能なカーネルを加えた一般的な近似(式2参照)は、一般的な関数\(a_i\)が使用されている場合、膨大な自由度を示します。\(N\)個のガウシアンの和(式3参照)であっても、アーティストが波長ごとに\(2N\)個のパラメータを操作する必要があります。また、多くのガウシアンが存在する中で、あるガウシアンのパラメータを変更すると、予想外の結果が得られます。Jimenezら[JJG12]は、この制限を克服するために、分離可能な近似におけるベースプロファイルへのアドホックな変換を提案しました。しかし、このモデルは拡散の基礎となる物理学への直感的なマッピングを欠いていました。代わりに、単純な低次元関数を用いたサブサーフェイスプロファイルのモデリングと編集を可能にする以前の研究[KKCF13]に触発されて、我々のアプローチは、表面下散乱を近距離散乱と遠距離散乱に分割し、2つのガウシアンで符号化するという、より直感的な概念に基づいています。これらは、我々の分離可能なカーネル\(a_m\)の基礎を形成しています:

\begin{eqnarray}
a_m(x) = w G(x, \sigma_n) + (1 – w)G(x, \sigma_f) \\
A_m(x, y) = a_m(x) a_m(y) \tag{6} \\
G(x, \sigma) = \frac{1}{2 \pi \sigma} e^{-r^2 / 2 \sigma^2}
\end{eqnarray}

ここで、\(\sigma_n\) と \(\sigma_f\) はそれぞれ近傍散乱ガウシアンと遠方散乱ガウシアンの標準偏差を表し、\(w\) は重み付け係数です。使用を簡単にするために、\(\sigma_n = {\sigma’}_n s\) と \(\sigma_f = {\sigma’}_f s\) をそれぞれモデル化します。ここで、\(\sigma_n\)と\(\sigma_f\)は範囲[0, 1]であり、\(s\)はワールド空間単位(例えばインチやミリメートル)で指定された透光度のグローバルなスケーリングパラメータです。\(a_m\) は 2 つの 1 次元ガウシアン \(G(x, \sigma)\) の混合物を表し、分離可能な (rank-1) カーネルになることに注意してください。これは、2つのガウシアンが分離可能な(rank-1)カーネルではなく、ランク2の解をもたらすというd’Eonら[dLE07]の2次元ガウシアン混合法とは異なります. 上記のガウシアンの正規化係数は2次元のもの\(1/2 \pi {\sigma_n}^2\)の代わりに\(1/2\pi \sigma_n\)であることに注意してください。

我々のモデルは、セクション3で説明した分離可能な近似の利点を利用しており、異なる光構成の下でグランドトゥルースに一致させることができる(セクション4)と同時に、この外観制御が通常必要とされる制作パイプラインへの容易な統合を含む、半透明マテリアルの外観を直感的に編集できる豊富な設計空間を提供しています(図8と10)。我々の近似は、もう一つの重要な特性を持っています。 それはガウシアンに基づいているので、プロファイルの連続的なパラメトリック表現です。 この表現は、セクション7で示されるように、ランタイムで拡散プロファイルを解析的に計算することを可能にします。さらに、付録では、ある種の半透明効果を強調した実行可能なランク-1近似を生成するために、実際の拡散カーネルからの代替的なガイド付き偏差を紹介しています。

※図は,[Jimenez 2020]より引用

※図は,[Jimenez 2020]より引用

6. Stochasstic Kernel Rotation

我々の分離可能な近似は、自然照明下では高品質な結果をもたらしますが、高周波照明下では、信号の空間フットプリントがカーネルの帯域幅よりも小さくなると、いくつかのアーティファクトを引き起こす可能性があります(図11を参照してください)。これは、高解像度のクローズアップショット(例えば、皮膚の毛穴)でもよく見られ、非対称なスタートのようなパターンを生成します(図9aを参照)。

※図は,[Jimenez 2020]より引用

※図は,[Jimenez 2020]より引用

この問題を緩和するために、Huangら[HBR*11]と同様に、フィルタリング軸のピクセルごとのランダムな回転を適用します。サンプリング軸に沿ったカーネルジッタリングのような他の選択肢とは対照的に、ランダム化された回転を使用することには、2つの重要な利点があります:(i)目に見えるクロスパターンを壊します; そして,(ii)拡散カーネルの半径方向対称性により、距離が保存されているので、カーネルを再積分する必要はありません。GPU キャッシュのスラッシングを避けるために、また、高周波信号にのみ回転を適用したいことを考えると、評価を開始するピクセルに近いサンプルにのみこれを適用します(我々の実装ではカーネルサイズの10%に近いですが、これはズームと使用されるカーネルに依存しています)。これにより、図11の光の点のような高スケールの特徴については、まだ目に見えるアーティファクトがあるかもしれませんが、皮膚の毛穴のような小スケールの特徴におけるアーティファクトが解決されます(ただし、これは病理学的なケースであり、実世界のアプリケーションでは一般的ではありません)。図9は、フィルタリング軸を回転させてサンプル位置をランダム化した場合の効果を示しています。アーティファクトをマスキングするだけでなく、アンダーサンプリングによるバンディングの問題も軽減されることに注意してください(図13を参照)。

※図は,[Jimenez 2020]より引用

7. Rendering

分離可能なカーネルとして表現された拡散プロファイルの近似は、テクスチャとスクリーン空間の両方に適用することができます。効率化のために、Jimenezら[JSG09]のスクリーン空間アプローチを使用し、半透明度[JWSG10]を含み、アルベド、拡散、スペキュラ成分を異なるバッファに分離し、拡散層のみで表面下輸送をシミュレートし、最終レンダリングのために合成します。以下では,レンダリングパイプラインのさらなる改善点を紹介し,その結果として,サンプルあたりわずか16命令の最適化されたコードが得られました。

カーネルフットプリントと評価
我々の技術はスクリーン空間で動作するので、カーネルのサイズは、ピクセル内の投影された表面積の関数であり、これは深さと表面の向きに依存します。この面積は通常、ピクセルではなくワールドスペースの単位で指定されるため、アーティストにとってカーネルサイズの定義がより直感的になります。

離散化カーネルを使用する場合は、アドホック補正係数を使用することで、サーフェイスの向きの影響を考慮することができます[JSG09]。対照的に、単純化された2-ガウスのアーティストフレンドリーモデル\(A_m\)を用いることで、実世界の距離を扱うことができます:評価されるピクセルの深度と各サンプルの深度をワールド空間に変換し、それらの間の距離\(d\)を計算します。この距離はプロファイルをオンザフライで適用するために使用され,導関数やその場しのぎの補正係数を使用するよりも正確な結果が得られます.しかし、この方法には2つの問題点があります:(1)各サンプルがカバーする領域を評価してカーネルの重みを正確にベイクできない(サンプルの位置でしかカーネルを評価できない)こと、(2)GPUが使用するサンプルあたりの命令数(DirectX11 fxcで生成される)が単純なアドホック補正手法では16から28に増加し、性能がほぼ半減してしまうため、本番シーンでは役に立たないことです。後者の問題の原因は以下の通りです。 a)深度とピクセル位置からワールドスペースへの変換には、いくつかの追加ALU命令が必要です。b) 2-ガウスRGBプロファイルの評価には6つのExp命令が必要で、最新のGPUでも実行するにはコストがかかります。

我々は、Mikkelsen [Mik10]によって提案されたものと同様のアプローチに従うことによってこれらの問題を解決し、3D距離\(d\)上の1Dプロファイルアプリケーションを正確な深度\(d_z\)補正係数を持つ2D距離\(d_{xy}\)に分割します。これはカーネルの評価を次のように変換します:

\begin{eqnarray}
a_m (r) &=& w G(r, \sigma_n) + (1 – w) G(r, \sigma_f) \\
&=& w e^{\frac{-{d_z}^2}{2 \sigma_n}} G(d_{xy}, \sigma_n) + (1 – w) e^{\frac{-{d_z}^2}{2 \sigma_f}} G(d_{xy}, \sigma_f) \\
& \approx & e^{\frac{-{d_z}^2}{2\sigma_{\rm max}}} \left( w G(d_{xy}, \sigma_n) + (1 – w)G(d_{xy}, \sigma_f) \right) \\
&=& e^{\frac{-{d_z}^2}{2 \sigma_{\rm max}}} {a_m}’ (d_{xy}) \tag{7}
\end{eqnarray}

ここで,\(\sigma_{\rm max} = \max(\sigma_n, \sigma_f) = \sigma_f\)で,\(r = \sqrt{ {d_{xy}}^2 + {d_z}^2 }\)です。我々は、例えば[JSG09]で使用されているアドホック補正に対して、正確な深度補正へのプロファイルの適用を単純化するガウシアンの最大分散を取るという近似を行っていることに注意してください。これにより、面積積分を用いて\(a_m'(d_{xy})\)の正確な重みを事前に計算することができ、命令数を16個に減らすことができます:a) expの数を6から1に減らします; b)深度で直接動作することによってワールド空間への変換を回避します; c) 典型的な低レベル最適化[Per14]を適用します。

重点サンプリング
レンダリング中に事前積分カーネル近似(式5の\(a_p\))の1次元関数との畳み込みを計算するためには、それらを離散化する必要があります。一般的に、これらの関数は非常に不均一なエネルギー分布を示すため、一様な離散化を行うには、許容できる品質を得るために高い解像度が必要となり、パフォーマンスに大きな影響を与えるか、低い解像度を使用するとエイリアシングが発生します。この問題を解決するために、我々は1次元関数に重要度サンプリングを使用しています。これにより、信号のエネルギーの大部分を占める中心付近のサンプルポイントをより多く割り当てることができます。

アーティストフレンドリーなモデルの場合、以前に説明したように、\(xy\)平面のみが離散化され(式7の\({a_m}’\) )、\(z\)次元はまだ解析的に解決されています。したがって、このモデルでは、重要度サンプリングはカーネルのベイクされた2次元平面(\({a_m}’)\)にのみ適用されます。

実行時間とメモリアクセス数を最小化するために、ドメインチャンネル(皮膚の赤いチャンネル)で決定された同じ位置ですべてのチャンネルをサンプリングします。非支配的なチャンネルについては、サンプルによってカバーされる領域のプロファイルを積分することによってサンプル重みを計算します。図12では、グランドトゥルースおよび一様サンプリングと比較した重要度サンプリングによる画質の違いを示しています。自然光の下で撮影されたこの特定のポートレートでは、重要度サンプリングで7つのサンプルを使用することで、皮膚の表面下散乱を忠実に表現することができます。この重要度サンプリングは、ガウシアン和アプローチ[dLE07, JSG09]のような以前の手法の品質を向上させるためにも使用することができます。図13に示すように、過酷な照明のシナリオでは、追加のサンプルを使用する必要があります。

※図は,[Jimenez 2020]より引用

8. Results

我々の提案した技術を、様々な半透明マテリアルを用いて検証しました。図1(左)、6、14は人間の皮膚を示しています。図7は、皮膚の拡散プロファイルを使用して、異なる手法間の比較を行っています。図14は石鹸と大理石の結果を特徴とし、図1(右)はケチャップを示しています。追加の結果は補足資料に記載されています。

※図は,[Jimenez 2020]より引用

この原稿に記載されているすべての手法の実行時間は畳み込み計算に支配されているので、それらのタイミングは必要とする畳み込みの数にほぼ比例することに注意してください(すなわち、6つのガウシアンは、我々の分離可能な近似よりも約6倍遅い)。図6は、我々の分離可能近似と、現在の最新技術[dLE07, JSG09]と、グランドトゥルースの2次元畳み込みとを比較したものです。

事前に積分されたカーネルは、視覚的に説得力のある結果を与え、任意のプロファイルから解析的に計算することができます。これにより、時間的制約の厳しいリアルタイムアプリケーションでも表面下散乱を利用できるようになりました。図7のような1次元の放射照度信号の場合には、事前積分技法は解析的なグランドトゥルースをもたらすことに注意してください。

アーティスト制御近似は、拡散を任意に設計することができますが、手動で特定のプロファイルにマッチさせるために使用することもできます。加法的に分離可能な信号のための事前積分技法(図7)ほど正確ではありませんが、アーティストに優しいモデルです: a) 影のある領域への色のブリードなど、視覚的に説得力のある方法で重要な特徴を捉えています。b) バンプの詳細を正確に保持します(図6)。c) プロダクションシナリオでシームレスに使用することができます。人間の皮膚のためのクローズフィットカーネル(図6および7)は、2ガウスのアーティスティックなモデルがどのようにしてグランドトゥルースを近似するために使用できるかを示しています。我々は、この2ガウスアプローチがd’Eonらによって提案されたガウスの和とは異なることを再度強調します。 我々のアーティストフレンドリーなモデルの編集能力を実証するために、我々は、我々の特定のアセットでの結果を改善するためにアーティストによって実際に開発されたもの(我々のプロダクションの表面下散乱パラメータ化)を含む、異なるタイプのスキンを使用した結果を示します。図10は、我々の制作パラメータ化を使用して、我々のアーティストフレンドリーモデルがどのように半透明度の外観を目標とするアセットに適合させるかを示しています。これらのカーネルのパラメータは、表2に含まれています。

※表は,[Jimenez 2020]より引用

我々の一般的な畳み込みスキームは、テクスチャ空間とスクリーン空間の両方で実装することができます。後者では、可視ピクセルのみが処理され、最終的なスクリーンピクセルに必要とされる密度よりも高い密度でオブジェクトの照度が計算されることはありません[JSG09]。これは、リアルタイムアプリケーションで求められる好ましい固定コスト特性につながるので、これらの技術は、このようなシナリオのための望ましい選択を提供すると信じています。我々の手法は、動的なオブジェクトや移動する光源に対する追加の考慮を必要とせず、面積に応じたスケーリングが可能です(図14参照)。シミュレーションの品質は、カーネル内のサンプル数を設定することで調整することができ、品質とコストの間のトレードオフが得られます。

制限と将来の展望
前述したように、分離性のために半径方向の対称性をトレードオフにすると、高周波照明の極端なクローズアップビューでカーネルの固有の形状を明らかにするいくつかのアーティファクトが作成される可能性があります。セクション7で提案された確率的サンプリングアプローチは、一般的に非常に小さなスケールの詳細(例えば、皮膚の毛穴)のためにこの問題を解決しますが、いくつかの状況ではまだいくつかのアーティファクトが残っている可能性があります(図11)。しかし、我々は実用的なケースではこの現象を経験していません。

セクション3では、我々の再構成の誤差が高次の特異値の二乗和によってどのように決定されるかを示しています。我々の方法は、拡散プロファイルが中程度の高ランクであるにもかかわらず、そこに含まれる情報が高度に構造化されているという事実を利用することに依存しています。

分離可能なモデルを使用することで、RMS誤差の点でターゲットプロファイルとよく一致することができました。

事前積分された近似は、1つの分離可能な畳み込みのみで拡散プロファイルを忠実に再構成することができるので、事前積分されたカーネルと実際の拡散プロファイルとの差を近似することで、低ランクの近似を見つけることができます。これは、より良い低ランク近似をもたらす可能性があります。我々の使用例では、低ランクのSVDベースの再構成は、すでに3ランク以上のランクに対して十分な品質を提供していました(結果については補足資料を参照)。このことは、拡散カーネルのSVDベースの再構成が、オフラインまたはインタラクティブな環境での効率的で高品質な表面下散乱のシミュレーションに非常に有用であることを示唆しています。

9. Conclusion

拡散反射率プロファイルの分離可能な近似値を生成し、2つの1次元の畳み込みを用いて様々なマテリアルの表面下散乱をシミュレートする技術を発表しました。この分離可能なモデルは、1フレームあたり0.4ミリ秒以下(一般的なショットでは)で最先端の結果を得ることができ、ゲームのような最も困難なリアルタイムコンテキストでも、高品質の表面下散乱を手頃なバジェットで実現します。

軸を揃えた事前積分を用いて、高品質の分離可能な近似法を提示しました。これは相加的に分離可能な照射信号に対して最適であると考えられます。また、わずか3つのパラメータに基づいて表面下散乱の外観を直感的にアーティスティックに制御することができ、我々の分離可能なフレームワークにシームレスに統合することができる、アーティストフレンドリーなモデルを提案しました。さらに、行列因数分解に基づく低ランク近似がガウスの和よりも高い性能を発揮することを示し、効率的な表面下散乱シミュレーションのための将来の研究の興味深い道筋を示唆しました。

我々のアルゴリズムは後処理ステップとして動作するため、既存のレンダリングパイプラインに統合するのに非常に効率的でシンプルなものとなり、複雑な表面下光輸送[JMLH01]を素の状態(1サンプルあたり16のアセンブリ命令を持つ7サンプルのブラーフィルタ)にまで減らすことができます。さらに、重要度サンプリングと確率的サンプリングを組み合わせることで、実用的な関心の高い多くのケースで、1ピクセルあたり7サンプルのみで使用できることを示しました。

Acknowledgments

和訳省略。

Appendix A: Guided optimization

実際の拡散カーネルからの誘導された逸脱に対して、特定の特徴の半透明効果を強調した実行可能なランク-1近似を生成するための実用的な最適化フレームワークをさらに提示します。我々は、最小化問題の解で定義された拡散プロファイル\(R_d(x, y)\)に対する分離可能な近似\(A_s(x, y) = a_s(x) a_s(y)\)を見つけることを目的としています:

\begin{eqnarray}
a_s = {\rm argmin}_{a} \int_{\mathbb {R}^2} \Gamma (x, y) (R_d(x, y) – a(x)a(y))^2 dx dy \tag{8} \\
{\rm subject} \, {\rm to} \quad ||R_d||_1 = {||a||_1}^2
\end{eqnarray}

1ノルム制約によるエネルギー保存を維持しつつ、\({\mathcal L}_2\)距離を最小にするように最適化します(セクション3参照)。ガイド関数\(\Gamma(x, y)\)は、意図されたアーティスティックな効果の適切な長さのスケールを選択する手段を提供し、次の形式を持ちます:

\begin{eqnarray}
\Gamma(x, y; k) = \left(x^2 + y^2 \right)^{k/2} (1 – e^{-bx^2})(1 – e^{-by^2}) \tag{9}
\end{eqnarray}

ここで、\(k\)はガイドパラメータ、\(b\)は中心クロス領域の抑制項を与える(ここでは\(b=50\)とします)。この関数の説明は補足資料を参照のこと. \(k\)を\(0\)から\(4\)の間で変化させることで、近似\(A_s\)の知覚される鋭さを制御することができます。\(k \approx 2\)は実際の拡散カーネルの近似をもたらしますが、\(k=0\)は視覚的にシャープな変化を提供し、\(k=4\)は拡散プロファイルの遠距離散乱をより忠実にモデル化するより滑らかな近似を提供します。この最適化ベースのアプローチは拡散カーネルを近似する一方で、単一のパラメータの助けを借りて近距離または遠距離散乱を強調することができます。このようにして、ユーザーは、事前積分スキームの単一の固定解を使用することでは不可能な、与えられたシーンとその特定の特性にカーネルを適応させることができます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください