イベント
[CEDEC 2015]「Far Cry 4」の緻密な世界を描き出した物理ベースレンダリング技術の秘密が明らかに
Far Cry 4における物理ベースレンダリングのマテリアルシステム
PBRとは何かを簡単に説明しておくと,さまざまな材質(マテリアル)を表現するために,入射光と材質面で反射された出射光,吸収された光などのエネルギー総和が等しくなるように,「エネルギー保存の法則」にもとづいたレンダリング手法のことだ。材質表現では,入射光がどの方向にどれくらい拡散しているかを示す「双方向反射率分布関数」(Bidirectional Reflectance Distribution Function,BRDF)を用いるレンダリングエンジンが多い。
一口にPBRといっても,その実装形態にはさまざまなものがある。とくに,最近ゲーム業界で教科書的に参考にされているのは,Walt Disney Animation StudiosのBrent Burley氏が発表した「Physically-Based Shading at
実のところ,物理ベースレンダリングそのものは,シリーズ前作の「Far Cry 3」でも採用されていたという。そこでFar Cry 4では,グラフィックスの品質をさらに高めるべく,金や銀のような鏡面反射ハイライトに色が乗った金属表現や,ざらついた金属面に出る異方性反射といった要素が新たに加えられたそうだ。
材質システムで採用されたパラメータは4種類ある。
「Glosiness」(面の滑らかさ),「Reflectance」(光沢反射率。Specularとも)の2種類は,材質の鏡面反射と拡散反射の具合を設定するもので,Far Cry 3から大きく変わったところはない。
Far Cry 4で新しく追加されたパラメータは,「Metalic」(金属度合い),「Ani
簡単にいうと,Metalicの度合いが高ければ高いほど,ベースカラー(Albedo)の色味が鏡面反射のハイライトに乗りやすくなり,金や銅のような材質がリアルに表現できる。
一方,Anisotropyは,ブラシで粗く磨かれたようなざらついたステンレスの表面や,刃物の上にでる光沢のように,ハイライトが線状に見える表現に有効だとされる。Far Cry 4では,さまざまな刃物や銃火器が登場することから,そうした材質表現にはこだわりたかったということだろう。
Far Cry 4におけるライティング
Far Cry 4におけるライティング方式は,全方位環境マップを使ったイメージベースライティング(Image Based Lighting,以下 IBL)になるが,McAuley氏は,ライティングシステムで採用した特徴的な要素として,「Sky occlusion」「En
Far Cry 4では,ゲーム世界の物体をライティングするときに,平行光源である太陽光だけではなく,天球全体の空模様からのライティングも行っている。そのときに,これからライティングしようとする場所が,周囲の背景物にどう遮蔽されているかの情報(Sky occlusion)にも配慮して,陰影表現を決定しているとMcAuley氏は述べた。
まず,ゲームシーンを64×64mのエリアに分け,1テクセルあたり25cmの解像度で,割り当てるテクスチャメモリを用意する。そして,シーンに存在する遮蔽物の高さをテクスチャに描画していき,Sky occlusionテクスチャを作り出す。このSky occlusionテクスチャは,最終的に64×64mの範囲にある遮蔽物の高さを25×25cmの分解能で記録した,ハイトマップテクスチャになる。簡単にいえば,ゲーム内に存在する背景物の高さを,粗く記録したテクスチャとイメージすればいい。
このSky occlusionテクスチャに対して,Screen Space Ambient
そのときに,描画される影が交差する面でなだらかな陰影になるように,ハイトマップから全方位遮蔽率情報へと変換する処理で,法線の向きを調整する「Be
なお,Bent Normalについて解説するのは本稿の趣旨から外れるので,説明は省略する。詳細を知りたい人は,こちらのWebページを参照してほしい。
2つめの「Environment maps」は,いわゆる環境マップのこと。Far Cry 4では,全方位の光分布として環境マップを光源に使うIBLを採用しているが,ゲーム中には昼夜が変化するので,環境マップもそれぞれの時間帯を用意しなければならない。夕暮れ時の風景を描くのに昼間の空をベースにした環境マップを適用したのでは,正しい照明結果に見えないからだ。
3つめとなる「Indirect lighting」(間接照明)の仕組みは,話を聞いた限りでは,「FINAL FANTASY XV」で使われているゲームエンジン「Luminous Studio」の実装形態と,よく似ているようだ。
Far Cry 4では,ゲームフィールドを64×64mのエリアに分けたうえで,8×8のプローブ(計測点)を設定。天球からの降り注ぐ光によるライティング効果を間接照明にも配慮させるための仕組みとして,「Radiance Transfer」(光の伝達,以下 RT)を採用している。
各計測点における光の伝達情報は,事前計算で取得しておく。具体的にいうと,Far Cry 4では,天球全方位からの光が,木々や家といった背景物からどんな影響を受けるのかという,光の伝達情報を事前計算しておくのだ。
たとえば,障害物のない更地の計測点なら,空模様がそのまま計測点に届く。一方,計測点が森の中にあるなら,空模様も木々の葉を透過してやってくることになるのだから,緑色に寄った光の伝達情報として得られる。あるいは,ある方角に山がそびえ立っているなら,その方角からは光がやってこないので,結果として「遮蔽されている」(=影になる)という情報が得られるわけだ。
一般的な事前計算により実装する間接照明システムの場合,「間接光そのもの」を計算で求めてしまうが,RTでは光の伝達情報を事前計算するだけなので,リアルタイムに変化する空模様に応じた間接照明の効果を表現することができる点も利点といえよう。RTならば,太陽が高い位置と低い位置にあるときで,それぞれつじつまの合った間接光が得られるのである。
ちなみに,このRTの仕組みを視点位置からはるか遠くの地点まで同じ計算粒度で行うのは,負荷が高すぎるわりに見た目の効果に乏しく,無駄が多い。そのため実際には,遠方になるほど粗い計算で済むような実装形態になっているということだった。
このほかにもMcAuley氏は,広大なゲームフィールドを彩るテクスチャ群を動的に読み込む「Virtual Texture」(仮想テクスチャ)システムの実装についても解説していたのだが,さすがに長くなりすぎるので今回は割愛した。仮想テクスチャシステムの詳細は,実装を担当したKa Chen氏のWebサイト(関連リンク)に資料が掲載されているので,興味のある人は,そちらも参照してみるといいだろう。
「ファークライ4」公式サイト
CEDEC 2015 公式Webサイト
キーワード
(C)2014 Ubisoft Entertainment. All Rights Reserved. Far Cry, Ubi.com, Uplay, the Uplay logo, Ubisoft, and the Ubisoft logo are trademarks of Ubisoft Entertainment in the US and/or other countries. Based on Crytek’s original Far Cry directed by Cevat Yerli. Powered by Crytek’s technology “CryEngine.”
(C)2014 Ubisoft Entertainment. All Rights Reserved. Far Cry, Ubi.com, Uplay, the Uplay logo, Ubisoft, and the Ubisoft logo are trademarks of Ubisoft Entertainment in the US and/or other countries. Based on Crytek’s original Far Cry directed by Cevat Yerli. Powered by Crytek’s technology “CryEngine.”
(C)2014 Ubisoft Entertainment. All Rights Reserved. Far Cry, Ubi.com, Uplay, the Uplay logo, Ubisoft, and the Ubisoft logo are trademarks of Ubisoft Entertainment in the US and/or other countries. Based on Crytek’s original Far Cry directed by Cevat Yerli. Powered by Crytek’s technology “CryEngine.”
(C)2014 Ubisoft Entertainment. All Rights Reserved. Far Cry, Ubi.com, Uplay, the Uplay logo, Ubisoft, and the Ubisoft logo are trademarks of Ubisoft Entertainment in the US and/or other countries. Based on Crytek’s original Far Cry directed by Cevat Yerli. Powered by Crytek’s technology “CryEngine.”
(C)2014 Ubisoft Entertainment. All Rights Reserved. Far Cry, Ubi.com, Uplay, the Uplay logo, Ubisoft, and the Ubisoft logo are trademarks of Ubisoft Entertainment in the US and/or other countries. Based on Crytek’s original Far Cry directed by Cevat Yerli. Powered by Crytek’s technology “CryEngine.”