超雑訳 Moving Frostbite to Physically Based Rendering 2.0 (8)

Share

さて,前回まででライティング関係の和訳が一通り終了しました。
今回は画像処理に関する部分を訳していきます。
毎度ながら,誤訳・誤字が多々あると思いますので,予めご了承ください。
誤訳をご指摘頂ける場合は,正しい翻訳例と共にご指摘頂けると幸いです。


5 Image

5.1 A Physically Based Camera

前のパートすべては物理ベースの方法においてシーン内でどのようにライトが作用するかに焦点を当てました。別のリアリティのあるの結果に到達するための重要な考慮は最終的なピクセル値になるまでの間,シーンの輝度からの全体的なつながりの変換を考えることです。

5.1.1 Camera settings

Frostbiteにおけるレンダリングパイプラインを通じてずっと測光単位を取り扱うので,光のエネルギーは輝度で表現されカメラに到達します。入射照明は通常暗いシーンについて数\(cd.m^{-2}\)から,太陽を見るときの数10億の\(cd.m^{-2}\)まで広域の値をカバーします。図71を参照。これらの値はディスプレイ上で視認可能な最終的な画像を生成するために正規化されたピクセル値へと再マップすることが必要です。デジタルカメラ上で,このプロセスはある時間デジタルセンターを”露出すること”によってなされ,ポストプロセスを適用します。この露出の目的はセンサーの寛容度を現在のライト範囲を白と黒の中間(ミドルグレー)にセンタリングすること,そして画像範囲の中心に関心のあるオブジェクトをセットアップすることによって最大限にすることです。入射照明から最終的なピクセル値への変換のパイプラインすべては図70によって説明されます。

Frostbite_Fig_70

※図は,Sebastien Lagarde and Charles de Rousiers, “Moving Frostbite to Physically Based Rendering 2.0”,
SIGGRAPH 2014 Course: Physically Based Shading in Theory and Practice, p.82 より引用

Frostbite_Fig_71

※図は,Sebastien Lagarde and Charles de Rousiers, “Moving Frostbite to Physically Based Rendering 2.0”,
SIGGRAPH 2014 Course: Physically Based Shading in Theory and Practice, p.82 より引用

3つの主なパラメータが露出を設定するためにアーティストによって制御可能です:
Relative aperture (\(N\),視野絞り単位):開口部がどのぐらいの幅開いているかを制御する。被写界深度に影響を与える。
Shutter time(\(t\),秒単位):どのぐらい長く開口部が開いているかを制御する。モーションブラーに影響を与える。
Sensor sensitivity / gain(\(S\),ISO単位):どのぐらい光子がカウントされたか/デジタルセンター上に量子化されたかを制御します。

与えられたこれらのパラメータの組み合わせは露出値(\(EV\))によって要約されることが可能です。\(EV\)はISO 100に対して定義される慣習につき,\(EV_{100}\)と表記し,以下の関係になります:
\[
EV_{100} = \log_2 \left( \frac{N^2}{t} \right) + \log_2 \left( \frac{S}{100} \right) \tag{67}
\]
異なるセッティングの組み合わせは同じ\(EV\)を与える可能性があり,アーティストに図72に示すようにモーションブラー,被写界深度,そしてノイズまたはグレイン間の異なるトレードオフを作るのを可能とします。

Frostbite_Fig_72

※図は,Sebastien Lagarde and Charles de Rousiers, “Moving Frostbite to Physically Based Rendering 2.0”,
SIGGRAPH 2014 Course: Physically Based Shading in Theory and Practice, p.83 より引用

また,\(EV_{100}\)はセクション4.3で説明したように光の強度を説明または計測するためにアーティストによって使用されます。開口部,シャッタースピード,そして感度に加えて,アーティストは露出過度(つまり,明るい)あるいは露出不足(つまり暗い)画像のため露出補正(\(EC\),視野絞り単位)を適用するのを可能とします。この\(EC\)は単に露出値へのオフセットです:
\[
EV’_{100} = EV_{100} \, – \, EC \tag{68}
\]
負符号は\(EC\)が視野絞り単位であるという事実に由来し,値が増えると開口サイズが増加するということを意味しています。これが\(EV\)の逆方向に進むと,値が増えることは開口サイズが減ることを意味します。手動露出設定はアーティストによって求められた正確な見た目を得るために便利ですが,セットアップは退屈になる可能性があります。デジタルカメラは簡単に操作するために自動露出モードを提供しています。与えれたシーンに対して正確なカメラ設定(すなわち\(EV\))を求めることはシーンの輝度についての多少の理解を必要とします。スポットメーターに類似したカメラは平均入射輝度の計測と\(EV\)へのコンバートが可能です。これはセクション4.3,式11で詳述しましたが,ここでは可読性のため,反射光メータのキャリブレーション定数\(K\)(12.5に等しい)で再現します:
\[
EV_{100} = {\rm log}_2 \left( \frac{L_{\rm avg} \, S}{K} \right) \tag{69}
\]
ゲームでは,\(L_{\rm avg}\)を得るための通常の方法は画像ピクセルのすべての平均対数輝度を取ることです。これは高い強度のちらつく照明あるいはハイライトで少し不安定になること判明しています。より良い方法は時間経過で平滑化すること,または極端な値を取り除くために輝度値のヒストグラムを使用することです[Vla08]。しかしながら,これらの方法はアルベドによって乗算されたピクセルの輝度値に基づいた露出からの影響を受ける手法です。これはもしシーンが全体に10%グレーあるいは全体に90%グレーである場合に,同じ色の結果となることを意味しています。代替え手法はアルベドで乗算する前に輝度に基づき露出することです[Koj+13]。しかしながら,実際には白のみの輝度を持つ分離されたライティングバッファを保持することはコストが高いです。Frostbiteでは,ヒストグラム手法を適用しました。

Frostbite_Fig_73

※図は,Sebastien Lagarde and Charles de Rousiers, “Moving Frostbite to Physically Based Rendering 2.0”,
SIGGRAPH 2014 Course: Physically Based Shading in Theory and Practice, p.84 より引用

 

5.1.2 Exposure

\(EV\)量は露光量あるいはセンサーに到達するシーンの輝度を説明する測光露出\(H\)(ルクス単位)と混同してはなりません。\(H\)は次によって定義されます:
\begin{eqnarray}
H &=& \frac{q \, t}{N^2} \, L \tag{70} \\
&=& t \, E \tag{71}
\end{eqnarray}
\(L\)は入射輝度で,\(q\)はレンズとヴィネッティング減衰(典型的な値は \(q = 0.65\)[Wikc])です。実際の値は感度/ゲインに依存するセンサーによって記録されます。ISO標準は測光露出と感度に関して3つの異なる方法を定義しています[Wikc]:
SOS: 標準出力感度
SBS: サチュレーション基準感度
NBS: ノイズ基準感度

SBSは理解するのが最も簡単な1つで,クリップあるいはブルームされたカメラ出力を招かない最大許容露出として定義され,双方は次の関係になります:
\[
H_{\rm sbs} = \frac{78}{S_{\rm sbs}} \tag{72}
\]
因数\(78\)は標準光メータに基づいた露出設定のため選択され,18%の屈折面はグレーレベルの\(18 \% \sqrt{2} = 12.7 \%\)のサチュレーションを持つ画像の結果となります。因数\(\sqrt{2}\)はスペキュラー反射を処理するためのヘッドルームの絞りの半分は\(100 \%\)反射する白いサーフェイスよりも明る見えるということを示しています。式72と式71を組みわせることにより,サチュレーティングセンサーに対する最大輝度値\(L_{\rm max}\)を決定することが可能です:
\begin{eqnarray}
H_{\rm sbs} &=& \frac{78}{S} \tag{73} \\
\frac{q \, t}{N^2} \, L_{\rm max} &=& \frac{78}{S} \tag{74} \\
L_{\rm max} &=& \frac{78}{S} \, \frac{N^2}{q \, t} \tag{75}
\end{eqnarray}
最終的なピクセル値\(p\) はこのときリスト28によって示されるように最大輝度値\(L_{\rm max}\)で正規化した入射照明によって計算することができます:
Frostbite_List_28

※リストは,Sebastien Lagarde and Charles de Rousiers, “Moving Frostbite to Physically Based Rendering 2.0”,
SIGGRAPH 2014 Course: Physically Based Shading in Theory and Practice, pp.85-86 より引用

この値はこのときセンサーとアナログ―デジタル変換器によってデジタル値に変換されます。センサーの物理的性質(CCDテクノロジー,ビット解像度,など)はどのぐらい光が量子化されたかと格納されているかに影響を与えます。この段階は線形な値を出力し,デジタルカメラ上のRAWファイル内に直接保存されます[Wikh]。このとき,人間に対して望ましい”見た目”へと線形データをコンバートするためにいくつかの変換が適用されます:
● ホワイトバランス
● カラーグレーディング
● トーンマッピング
● ガンマ補正
これらの変換すべては露光(\(H\))を入力としてとり,最終的なピクセル値を出力するルックアップテーブルへとベイクすることが可能です。このルックアップテーブルは,各カメラ製造元に特有であり,時々フィルムストックと呼ばれ,カメラからJPEG画像を出力する際に各画像上に自動的に適用されます,つまりRAWに出力されません。このため,露光はまだ広範囲をカバーすることができ,”寛容度”と呼ばれ,露出後ですら,ルックアップテーブルは高精度を必要とし,[0, 1]の正規化された範囲外の値,すなわち”HDR”値をサポートします。またこのシングル変換はアーティストにより制御を提供するための異なるステップへと分かれる可能性があります。

Remark:完全なライト変換とセンサーサイズを考慮するために,開口形について\(L\)を積分することによって画像平面照度を計算することが可能です。\(H\)は露出時間全体の間に受光した光の密度を記述することを覚えておいてください。したがって,測光露出\(H\)が与えられると,センサーセルによって記録されたエネルギー\(Q\)(ルクス単位)の実際の量を計算することが可能です:
\[
Q = H \, A \tag{76}
\]
\(A\)は全体のセンサーサイズ(例えば 36mm × 24mm)とセンサー解像度(例えば,5760 × 3240)に依存するセンサーセルサイズ(\(m^2\)単位)です。

5.1.3 Emissive and bloom effects

ゲームエンジンが低減しようと試みる種々のカメラアーティファクトの中で(被写界深度,モーションブラー,ノイズグレイン,そしてレンズフレアを含む),ブルームは興味深いものの1つです。ブルームは人間の目とデジタルカメラが伝える高い明度情報の両方を通じて観測可能な重要な効果です。このアーティファクトの理由は多種多様です:

Hight intensity values センサーセルをサチュレートし,隣接センサーセルにリークします。
Inter-reflections レンズバレル内
Imperfections そして,レンズ上/レンズ内のごみ

ピクセルの最終的な明るさはカメラ設定に依存します。露出値に依存し,エミッシブ値はブルームするピクセルを生成また生成しません。すなわち,入射照明\(L\)がセンサーの最大輝度\(L_{\rm max}\)超えることになります。特に昼間あるいは夜間のどちらか一方についてVFXアーティストがブルームの強さを一定にしたい時刻でこれは問題なります[Vai14]。エミッシブサーフェイスについて,エミッシブサーフェイスがブルームである,またはそうでないときにアーティストに制御するのを可能とするツールを提供することは役に立ちます。そのようにするため,エミッシブサーフェイスは現在の強さを調整するために露出補正の項で表現することが可能であり,上述の強度サチュレーション点を保証し,従ってピクセルをブルームさせます。

Frostbite_List_29

※リストは,Sebastien Lagarde and Charles de Rousiers, “Moving Frostbite to Physically Based Rendering 2.0”,
SIGGRAPH 2014 Course: Physically Based Shading in Theory and Practice, p.87 より引用

 

5.1.4 Sunny 16

我々の補正を有効化するために,”Sunny 16″ルールを使用しました。Sunny 16ルールはライティング状態に対して適切なカメラ設定を素早く求めるために写真家によって良く使われます。このルールは次を述べています:”晴天において,\(f/16\)に絞りを設定し,直射日光の対象物に対するシャッタースピードはISO設定スピードにする”。これが意味するのは,晴天において,そしてISO 100の設定で,絞りをf/16へ設定し,シャッタスピードは\(\frac{1}{100}\)あるいは\(\frac{1}{125}\)に設定するということです。このルールは表13によって示されたようにその他のライティング環境へと拡張されます[Wikj]。Sunny 16ルールに関して,ISOとシャッター時間は同じ値を持ちます。図74は晴天ライティング状態に対するそのようなルールの例を示しています。

Frostbite_Fig_74

※図は,Sebastien Lagarde and Charles de Rousiers, “Moving Frostbite to Physically Based Rendering 2.0”,
SIGGRAPH 2014 Course: Physically Based Shading in Theory and Practice, p.87 より引用

Frostbite_Table_13

※表は,Sebastien Lagarde and Charles de Rousiers, “Moving Frostbite to Physically Based Rendering 2.0”,
SIGGRAPH 2014 Course: Physically Based Shading in Theory and Practice, p.88 より引用

 

5.1.5 Color space

我々のパイプラインはsRGB空間,Rec709空間,あるいはその他の任意の空間のいずれかで最終結果を出力することが可能です。セクション5.1を参照。

ゲームエンジンに共通する落とし穴はガンマ2.2の曲線としてsRGB変換を近似することです(多くの場合,パフォーマンスによる理由のため)。このガンマ2.2は避けるべきであり,リスト30で掲載した適切なsRGB変換公式へと置換するべきです。これら2つの関数をグラフ化(図75)は暗い値に対する近似の不正確性を目立たせ,目は低いレンジにおいて変動に非常に敏感であるので致命的になります。例として図76はsRGBの近似が真黒を生成することができないことを示しています。

Frostbite_List_30

※リストは,Sebastien Lagarde and Charles de Rousiers, “Moving Frostbite to Physically Based Rendering 2.0”,
SIGGRAPH 2014 Course: Physically Based Shading in Theory and Practice, p.88 より引用

Frostbite_Fig_75

※図は,Sebastien Lagarde and Charles de Rousiers, “Moving Frostbite to Physically Based Rendering 2.0”,
SIGGRAPH 2014 Course: Physically Based Shading in Theory and Practice, p.89 より引用

Frostbite_Fig_76

※図は,Sebastien Lagarde and Charles de Rousiers, “Moving Frostbite to Physically Based Rendering 2.0”,
SIGGRAPH 2014 Course: Physically Based Shading in Theory and Practice, p.89 より引用

 

5.2 Manipulation of high values

セクション5.1で見たように,実世界の輝度のダイナミックレンジは大規模です。シンプルなシーンに対して共通なのは,100000:1のダイナミックレンジを持つということです。スクリーン上に出力される値ついてそのような高い値をどのように扱うかを見ましたが,どのよう操作するのか,そしてこれらの値が保存される前はどのようにすればよいのでしょうか?特有の精度問題を注意しないことはバンディング,無限大,そしてNaNを引き起こすことがあります。

ライティングバッファストレージについて,いくつかMDRをHDR浮動小数フォーマットへにするものが存在します。最も一般的なのはFloat32, Float16, R11F_G11F_10_F,そしてRGB9_E5です。後者2つのフォーマットは符号ビットを持たず,RGB9_E5フォーマットはRGBコンポーネントについて個別の仮数ビットを持ちますが,それらはすべて単一指数(14ビット浮動小数)で共有されます。これらのフォーマットの数値的な精度と制限は表14で与えられます。

Frostbite_Table_14

※図は,Sebastien Lagarde and Charles de Rousiers, “Moving Frostbite to Physically Based Rendering 2.0”,
SIGGRAPH 2014 Course: Physically Based Shading in Theory and Practice, p.89 より引用

Float formats: は非線形として保存しているライティング情報について適切であり,受けた光の明るさに類似しています。それゆえ,高い値が低精度で保持されることは期待しているものよりも低くくなる問題になります。少数の浮動小数フォーマットのすべてのダイナミックレンジは30段階程度で,人間の目の20段階の範囲をカバーします(しかし,6.5段階は同時に利用可能になります[Wike])。10ビット浮動少数は11ビット浮動小数よりも精度が低く,丸め誤差の恐れがありR11F_G11F_10Fフォーマットではわずかな色相シフトが発生する可能性があるということに注意してください。

Integer formats: もまた利用可能であり,例えばRGBM, RGBD, RGBE, LogLUV, LUV[Gue14b]または10_10_10_2ですが,それらはバンディングからの影響をより受けやすいです。またカスタムフォーマットはALU拡張を必要とし,ハードウェアフィルタリングを防止するのに良いです。

Frostbiteでは,ライティングストレージについて以下のフォーマットを使用します:
Lightmap
RGB9_E5。多種多様な品質オプションを提供しますが,RGB9_E5は間接照明のみを格納するライトマップに関して十分良いということが分かりました。
HDRI
Float16。HDRフォーマット(OpenEXR(Float16かFloat32)またはHDR(RGBE)のどちらか)をインポートし,エンジン内でFloat16へ変換します。Float16への変換としてそのようなフォーマットをインポートする際に気を付けなければいけないのは,65504よりも大きな値に関して無限大の結果となるということです。
Light buffer
Float16。露出は事前適用済みです。

ライティングバッファはいくつかより多くの注意が必要です。Float16の大きなダイナミックレンジにもかかわらず,極端な値がたまに見受けられます。最大値はあまりにも低く(65504),最小値はあまりにも小さすぎます(\(6.10 × 10^{-5}\))。さらに,数パスで蓄積するライティングは簡単にバッファをいっぱいにし,無限値を生成します。この範囲からの本当の利益を受けるために,フィルム利用を最大限にすることを試みるカメラに類似した方法で露出を使用します。シーンに対して利用される望まれる露出はフォーカス内のオブジェクト黒と白の中間(ミドルグレー18%)についての値を持つ結果になります。ここではライティングパイプラインの最後の代わりに最初に概念を適用するのを除外します。結果はフォーカス内のオブジェクトのライティングを中和に同様となり,従って,多かれ少なかれ,読み出すディフューズアルベドに一致し,これゆえ,数値的な問題を制限します。

我々は,格納する前にすべての照明を事前露出するためにセクション5.1で説明した露出情報を使用します。固定露出あるいは前フレームの自動露出によって計算された露出のどちらかを使用します。高速または大きなカメラ移動(テレポートを含む),そして同様に最初にフレームを描画した場合に前フレームの露出使用は共通の落とし穴があります。しかし,目の順応時間として受け取られることが可能であり,従って許容可能です。事前露出はすべてのライティングシェーダで表現される最終部分で実行されます。リスト31を参照。

Frostbite_List_31

※リストは,Sebastien Lagarde and Charles de Rousiers, “Moving Frostbite to Physically Based Rendering 2.0”,
SIGGRAPH 2014 Course: Physically Based Shading in Theory and Practice, pp.90-91 より引用

事前露出を持つと,パイプラインの最後において露出を適用する必要がなくなります。必要であれば,事前露出は絶対輝度値を読み戻すために実行しないことが可能です。事前露出に加えて,我々はシェーダ内でFlot32からの利益を得るために1つのパスですべてのライトを処理するのを選択し,従って低精度バッファからの読み込み/書き込みのためにいかなる情報の欠損を回避します。

5.3 Antialiasing

アンチエイリアシングはリアルタイムレンダリングにおいて共通で既知問題です。新しいものとはいえ,PBRは正規化されたNDF(低いラフネスに関して高い値を生成する)の利用のためエイリアシングの量が増える可能性があり,入射照明に対する大きな強度で,すべてのものに”反射”を持ちます(つまり,周囲入射照明)。このセクションでは,これらの問題の原因とれらを解決するための主な解決策を読み手に簡潔に再認識させます。

エイリアシングの観測の大多数は式77の推定のためにピクセルのサーフェイスについてのサンプル不足に由来します。大抵ゲームは主にパフォーマンスの理由のため,与えられたピクセルに到達する入射照明を推定するためにピクセルごとに単一サンプルを取ります。
\[
I({\bf v}) = \int_{\rm pixel} L({\bf v}) \, {\rm d}A \tag{77}
\]
この離散的サンプリングはカメラ位置とサーフェイス向きに依存した重いライティング評価を行います。近いスペキュラーサーフェイスについて,法線は入射照明とハイライトを生み出すための視線ベクトルに完全に一致させることが可能です。視点位置のわずかな変化は,この調整を妨げ,突如としてハイライトを取り除きます。このフリッカリングは自然界において観測される一方で(太陽光が水面を動く),大半の時間は非現実的であり,間違いなく目立ち,ユーザーに対して気を散らせます。これを解決するために,文献は主に2つのカテゴリのテクニックを提示しています:

Supersampling: MSAA(マルチサンプルアンチエリアシング),SSAA(スーパーサンプルアンチエイリアシング),そしてTAA(テンポラルアンチエイリアシング)のようなテクニックはあるピクセルについて複数の点における入射照明を評価し,したがって小さな変換を補足し,視認可能なエイリアシングを低減します。これらのテクニックの違いはこれらのサンプルがどのように生成されるかと蓄積されるかに依存しています。MSAAは可視性サンプルの数が増加し,一方シェーディングするサンプルは1つのままです。これはジオメトリックな不連続性を支援しますが,シェーディング問題の役に立ちません。SSAAはピクセルについて空間的なサンプルの数を増加し,積分式77の推定をより良くするのを可能とします。一方理論上の理想は,実際に使用されるSSAAはそのコストを防ぎます。代わりに,TAA技法は時間についてピクセルあたりのサンプルの数を増加させます。これは複数フレームにまたがってコストが広がりますが,ピクセルごとのサンプルの高い数を保持したままです。TAA技法のテンポラル性質のため,カメラあるいはオブジェクトが移動する際に前のフレームから現在のフレームへ以前のサンプルを再プロジェクションする必要があります。普通ライティングの変化含むサンプルを棄却するのと再プロジェクトすることができない半透明サーフェイスについていくつかの経験則が使用されます。TAAについての詳細は,[Sol13;Kar14]を参照してください。

Pre-Filtering: Toksvig[Tok05;Han+07],LEAN[OB10],そしてLEADR[Dup+13]のようなテクニックはマクロジオメトリック(曲率)とメソジオメトリック(法線マップ,凹凸マップ)によってサンプルの数を低くく保つのを試みようとし(理想的には1ピクセルについて1サンプル),マテリアルプロパティ(つまり,統計上のマイクロジオメトリックな変化)へのピクセルフットプリントによって引き起こされます。この転移はピクセルのフットプリント内で発生する相互作用のすべての評価を容易にし,高速にするのを可能とします。ToksvigとLEANのようなテクニックは法線マップのフィルタリングに着目しますが[BN12],LEADRは凹凸マップのフィルタリングを解決します。その他の研究は曲率をマテリアルプロパティへと伝達することによってマクロジオメトリックのファイルタリングを近似します。ディファードレンダリングを使用するとき,このマクロジオメトリックファイルタリングはG-Bufferパスの間でBakerとHill[HB12]によって提案されたように,またはMittring[Mit12]とSchulz[Sch14]によって提案されたようにポストプロセスとして起こる可能性があります。

これらカテゴリのテクニックの両方は良い解決策と合成するのにいくつかの制限を持ちます。例えば,事前フィルタリングテクニックはシルエットのようなマクロジオメトリックの不連続性を考慮しません。スーパーサンプリングテクニックはこのタイプの問題を解決することができます。技術的に,スーパーサンプリングテクニックは独立型ですが,安定したピクセル値へと収束させるために多くのサンプルを必要とします。両方のアプローチを組み合わせることは多くの場合に効率的に扱うことを可能とします。さらに,多数のポストプロセステクニックが存在し[Jim+11],それらはエイリアスのエッジを減らすことによって画像をさらに良くしようと試みます。それらは綺麗にされた画像を提供することが可能ですが,実際の問題を解決するのではなく,最小化しようとするだけです。

Frostbiteでは,様々なタイプのアンチエイリアシング技法を提供します:FXAA, SMAAT1x, SMAAT2x[Jim+12],そしてMSAA。法線マップの事前フィルタリングについて,[NP13]のNeubeltとPettineoによって述べられたアプローチを適用します。テクセルごとの法線に基づいてNDFを計算し,このとき現在のラフネスを新しい”効果的な”ラフネスを生成するために合成します。NeubeltとPettineoに加えて,ラフネスマップの様々なレベル内に新しいラフネスを格納し,任意のライティングを行う前に(ディファードマテリアルにモデルについてこれはGBufferレイアウト上にラフネスが格納される前に適用されます)シェーダ内でオンザフライでこのプロセスの適用実現性を提供することも決めました。我々のモチベーションはシェーダ内で発生する法線のコンポジション(例えば,法線マップ,ディテールマップ,あるいはプロシージャル法線を持つもの)のフィルタリングを適切に処理するのを可能とすることです。リスト32参照。さらに,これは法線マップを分断するのを可能とし,ラフネスマップは異なる解像度とテクスチャの再利用性を可能とします。このプロセスを手助けするために,我々はテクスチャをオフラインで処理する際に法線マップと一緒に追加の平均法線長を保存します。NDF操作と計算はアーティストに対して透過的に処理されます。

Frostbite_List_32

※リストは,Sebastien Lagarde and Charles de Rousiers, “Moving Frostbite to Physically Based Rendering 2.0”,
SIGGRAPH 2014 Course: Physically Based Shading in Theory and Practice, p.92 より引用

Remark: スペキュラーハイライトを取り除くのに加えて,これらのアンチエイリアシングテクニックのすべてはピクセルフットプリントの基礎的なジオメトリのマイクロ/メソ/マクロ変化のため正しいハイライト形状をリカバーするのに役立ちます。事前フィルタされたテクニックはこれを行う際に実際に効率的です。しかしながら,多くの法線マップフィルタリングテクニックはピクセルフットプリントの基礎をなす(異方性の)法線のガウス分布と仮定しています。同時にこれらのテクニックはガウシアンNDFを持つマテリアルと想定され,(2つの球面ガウシアンの畳み込みは球面ガウシアンであるので)解析的な手法で両方の法線分布を合成することが可能です。しかしながら,GGX NDFを持つマテリアルに対して,仮定はもはや有効ではありません。GGX分布と球面ガウシアン間の畳み込みは解析的ではないですが,結果は事前計算済みテーブルを持つGGX分布によって合理的に近似をすることが可能です。

 

6 Transition to PBR

PBRにエンジンを移行する際は,技術面とアーティスト面の双方を考慮に入れる必要があります。初めから,技術部門にパラレルないくつかのゲームチームからのテクニカルアーティストを訓練しました。

複数のタイトルで製品にすでに使用されるエンジンをPBRに移行することは単純なタスクではありません。多くのアセットが既にオーサされており,アーティストの知識は時代遅れのやり方を利用しています。PBRエンジンの初期バージョンは製品から分離されたブランチ上で開発されました。この最初のステップはテクニカルアーティストに訓練するのを可能とするためにツールを開発することでした。このため,我々は単一のディスタントライトプローブを持つオブジェクトをライティングすることができるシンプルなエンジン内のオブジェクトビューアーを作成しました。ディスタントライトプローブに加えて,このビューアーはディフューズアルベドを返却する太陽によってオブジェクトをライティングするので太陽を\(\pi\)へとキャリブレートさせるサンライトを含めました。このツールの助けで,トレーニングを開始し,アセットを作成する一方で,その他のPBR機能を開発することができました。2つ目のステップはPBRを維持しつつ,セクション3.2で説明したマテリアルシステムの助けを持つ同一エンジン内で非PBRバージョンのレンダラーを動作させることです。これは製品ブランチへとPBRに移動するのを可能とするために重要です。ローンチするのを可能とするために既に我々が開発した自動変換で適切なビジュアルを持ったレベルを生成しました:
For material parameters: 幸いなことに,非PBRのFrostbiteエンジンは既にスムースネスを使用中で,指定されたmaterialIdでメタリックサーフェイスを既に分離していました。近似したPBRテクスチャを得るためにオンザフライでシェーダ内でパラメータを変換することが可能でした。アーティストもまた変換品質を向上するために手動でテクスチャをコンバートしようと試みました。これらの変換手法を持つ我々の経験はアーティストガ良い結果を得ることができるものでしたが,各テクスチャは特別な扱いが必要です。不運なことに,良い品質を持つテクスチャすべてを自動的に変換するための方法は存在しません。
For lights: 我々は任意の単位から物理ベースの単位にライトを変換することが極めて困難であることがわかりました。非PBRライトの多くは指定されたライティング状態に対して調整されており,相対的な比率を持ちます。したがって,既に存在するレベルのいくつかの部分は正確にライティングされませんでした。

3つ目のステップはゲームチームに伝道することでした。様々なゲームチームから訓練されたテクニカルアーティストはこの受け入れのキーとなりました。Frostbiteレンダリングチームのすべては革新的にPBRバージョンへと切り替えし,非PBRレンダラーのサポート外にしました。また我々は移行を容易にするためにMari,SubstanceそしてMarmosetのようなゲームチームによって使用される外部ツール内の基本マテリアルモデルをサポートしました。
最終的に,移行期間の間アーティストを助けるために,我々はマテリアルテクスチャあるいはライティング照度範囲をチェックするための検証ビューモードを開発しました。図77を参照。

Frostbite_Fig_77

※リストは,Sebastien Lagarde and Charles de Rousiers, “Moving Frostbite to Physically Based Rendering 2.0”,
SIGGRAPH 2014 Course: Physically Based Shading in Theory and Practice, p.92 より引用


Acknowledgements,および Appendix の和訳は省略いたしますので,各自で原文を当たってください。

コメントを残す

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

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