ニュース
[SIGGRAPH 2010]これからの3Dグラフィックスは物理ベースのレンダリングへ。ところで,物理ベースのレンダリングとは何か
3Dゲームグラフィックスは物理ベースのレンダリングへ
Naty Hoffman氏(Technical Director, Activision) |
株式会社トライエース代表取締役社長,五反田義治氏 |
初日午後のセッションの目玉は2009年末公開されて大ヒットとなったSF映画「Avatar」のメイキング関連セッションで,14時のセッション開始時刻付近では立ち見が出るほどの盛況ぶり。
4Gamerはゲームメディアなので,「Avatar」ではなく,「Physically Based Shading Models in Film and Game」というセッションを拝聴することにした。
こちらはActivisionでテクニカルディレクターを務めるNaty Hoffman氏がオーガナイズしたコースセッションで,「3Dゲームグラフィックスを物理ベースに近づけていこう」というコンセプトを掲げるものであった。ちなみに,Hoffman氏は,ゲーム開発者のバイブル的な書である「Realtime Rendering Third Edition」の著者の一人であり,この世界ではかなりの著名人物だ。
このセッションでは,日本のゲームスタジオであるトライエースの代表取締役で,自らがR&Dのトップを務める五反田義治氏が登壇し,トライエースが推し進める「物理ベースレンダリング」を紹介した。本稿では,この五反田氏の講演を基軸に物理ベースレンダリングとは何かを紹介していく。
3Dゲームグラフィックスも物理ベースへ進化する時代?
トライエースは材質表現にBRDF法を本格導入
3Dゲームグラフィックスは,“ゲームを成り立たせる一要素”という側面で進化してきたことから,例外を除けば,リアルタイム性が最優先されて進化してきた経緯がある。
なので,「それっぽく見えれば正義であり,リアルタイム性と見栄えがトレードオフの関係にあれば,物理的な正確性は問われない」とされてきた。
こうした,よく言えば「職人芸」,悪く言えば「チート」ともいえるようなテクニックの積み重ねで,現在の3Dグラフィックスの「リアル」は構築されている。
こうしたアプローチをHoffman氏は「Ad-hoc」(アドホック)アプローチと呼称する。Ad-hocとは「その場限りの適当な」という意が込められており,これの対義語的に定義されるのがこのセッションコースのタイトルにもなった「Physically Based」(物理ベース)のアプローチということになる。
「Ad-hocアプローチでもよいじゃないか」という声もあるにはあるが,実は強健性(Robustness)に乏しい。
Ad-hocアプローチは簡単に言えば拡散反射要素,鏡面反射要素,フレネル反射要素,その物体の形状に依存した見え方などに配慮して調整を行うものになる。この手法で,ある材質を表現しようとすると,特定のライティング条件下ではそれなりに正しい結果が得られる(=リアルに見えるようになる)が,条件が変わると破綻してとたんに変に見えてしまうのだ。
トライエースでは,Ad-hocアプローチにおける各種シェーダ係数の調整をアーティスト(デザイナー)に委ねていたが,HDRレンダリングのパイプラインに組み込んで様々な条件下でレンダリングしてみると,破綻するケースがままあることが確認されたという。このままだと,シーンの条件を変えるたびに係数調整が必要になり,作業効率に響く。そこでAd-hocアプローチに変わる手段を模索し始めたのだ。
そこでトライエースが社内の独自エンジン(独自開発フレームワーク)として開発したASKAエンジンでは,材質表現にはブリンフォン・シェーディングベースのBRDF法の実装を行った。
トライエースが誇るASKAエンジンでは材質表現にBRDF法を導入。トライエースのアーティストは,シェーディングパラメータをいじるのではなく,表現したい材質をまずは選び,その材質パラメータをいじって行いたい表現をチューニングしていくように,その制作スタイルに革新がもたらされた |
実際には,視線,光源,法線などのパラメータを引数にして,事前にデータテーブル化(=テクスチャとして格納)しておいた材質表現パラメータ群を参照する仕組みで実装されることが多い。ちなみに,このデータテーブル自体は,測定器から取得して生成する場合が多いが,このデータテーブル自体をハンドメイドする場合もある。
さて,トライエースのASKAエンジンでは,このBRDF法を,独自の近似手法と高速化アプローチを施し,これをASKAエンジン内で規格化し,さらに様々な材質のBRDFデータを蓄積していくことで,多様な材質表現の首尾一貫性を獲得した。
たとえば,金属ならばチタン,アルミニウム,銅といったマテリアルを選べば,その材質でそのキャラクタの衣装を表現できるし,場合によっては特定のベースとなる材質を選択してパラメータを調整して,何か特殊な見え方をする新しい材質表現を作り出すこともできる。
これまで「そのシーンでその材質をいかにリアルに見えるようにするか」として行っていたライティングパラメータとの格闘から,アーティストは解放されることとなったというわけだ。
「例えば,コカコーラの缶の赤と白の色ですが,現実世界の缶は赤と白で塗料の材質が異なるんです。今までだと赤と白のテクセルのテクスチャを貼り付けて終わりでした。だからライティングを行っても見た目として現実世界とは少し違っていました。今の例で行けば,赤の塗料には酸化鉄が含まれていて,我々のシステムだとちゃんとこの顔料の特性を再現します。この特性を持った赤の塗料で缶をペイントすると,ライティングが変化すると,本当に現実世界のコカコーラの缶のような赤の陰影の微妙な変化が再現されるんです」(五反田氏)
環境光ライティングに対してもBRDF法を対応させる
この仕組みの導入でトライエースのASKAエンジンの最新版は材質表現の強健性を獲得したとするが,実際のシーンレンダリングの結果に対しては,もう一つ不満点が残った,と五反田氏はいう。
それは環境光にまつわる問題だ。
環境光というものは,厳密には現実世界には存在しない。実際の光源からの光の拡散光や,光源からの光に照らされた物体の反射光などの総体こそが環境光といわれるものの正体になる。しかし,3Dゲームグラフィックスでは,その総体をリアルタイムに求めるのが不可能であるため,事前計算して求めた適当な固定データを環境光として扱い,これを二次ライティング要素として与えることが一般的だった。
「ああした事前計算の疑似GI手法では,環境光によって得られた拡散反射の結果だけを得ていることになるんです。次のステップとして,我々は,環境光によるライティングで得られる鏡面反射の結果についても求めていこう,と新しいテクニックに開発に取り組んだのです」(五反田氏)
そこで,トライエースでは,前出のBRDFベースのライティングを環境光にも配慮して行う手法を開発した。具体的にはその材質のBRDFを,事前計算で全方位分(半球分)積分してしまい,これを環境光専用のBRDFデータとして別のボリュームテクスチャの形で持つようにする。このボリュームテクスチャには環境光によるBRDFベースのライティング結果の鏡面反射の強さを格納しているので,実際のライティング演算はこのテクスチャを参照して読み出すだけで行える。
「本来は環境光によるBRDFの拡散反射の結果もボリュームテクスチャとして持つべきなのですが,我々の実装では,鏡面反射で得られたエネルギー以外は全て拡散反射の結果となったという大胆な近似で拡散反射の結果は計算で一意的に求めてしまっています。でも,これは十分許される近似だと思います」(五反田氏)
ちょっと難しいかもしれないが,まとめると「直接光と環境光の両方によるBRDFベースの材質表現を実装することにより,材質表現のリアリティが高まった」ということだ。ひいては,疑似GI手法において,拡散反射だけでなく,鏡面反射の結果も得られることになったということでもある。
環境光によって淡いハイライトや淡いフレネル効果が出る感じは,「地味」と言ってしまえばそれまでだが,説得力は確実に向上しており,オフラインレンダリングのクオリティに少し近づいたようにも見える。
この技術はトライエースのASKAエンジンの最新版には組み込み済みなので,トライエースが手がける次期タイトルには確実に反映されるはずだ。トライエースの次期タイトル発表に期待しよう。
なお,本稿で解説した技術について,より詳細な情報は発表資料をまとめたページより入手してほしい。
- この記事のURL: