オススメ機能
Twitter
お気に入り
記事履歴
ランキング
パッケージ
ファークライ4公式サイトへ
読者の評価
85
投稿数:3
レビューを投稿する
準備中
お気に入りタイトル/ワード

タイトル/ワード名(記事数)

最近記事を読んだタイトル/ワード

タイトル/ワード名(記事数)

LINEで4Gamerアカウントを登録
[CEDEC 2015]「Far Cry 4」の緻密な世界を描き出した物理ベースレンダリング技術の秘密が明らかに
特集記事一覧
注目のレビュー
注目のムービー

メディアパートナー

印刷2015/08/27 21:17

イベント

[CEDEC 2015]「Far Cry 4」の緻密な世界を描き出した物理ベースレンダリング技術の秘密が明らかに

Stephen McAuley氏(3D Technical Lead,Ubisoft Montreal)
 CEDEC 2015では,ゲームグラフィックスの詳細を解説する実践的なセッションがいくつも開催されている。本稿では,イベント初日の2015年8月26日に行われた,「Far Cry 4」(PC/PS4/PS3/Xbox One/Xbox 360)のグラフィックスを解説したセッション「『ファークライ 4』のレンダリング・マテリアル The Rendering Materials of Far Cry 4」をレポートしたい。セッションを担当したのは,Ubisoft MontrealのStephen McAuley氏である。


Far Cry 4における物理ベースレンダリングのマテリアルシステム


ファークライ4
 PlayStation 4/Xbox One世代のゲームでは珍しくもないが,Far Cry 4でも,レンダリングエンジンに物理ベースレンダリング(Physically Based Rendering,以下 PBR)を採用している。
 PBRとは何かを簡単に説明しておくと,さまざまな材質(マテリアル)を表現するために,入射光と材質面で反射された出射光,吸収された光などのエネルギー総和が等しくなるように,「エネルギー保存の法則」にもとづいたレンダリング手法のことだ。材質表現では,入射光がどの方向にどれくらい拡散しているかを示す「双方向反射率分布関数」(Bidirectional Reflectance Distribution Function,BRDF)を用いるレンダリングエンジンが多い。

 一口にPBRといっても,その実装形態にはさまざまなものがある。とくに,最近ゲーム業界で教科書的に参考にされているのは,Walt Disney Animation StudiosのBrent Burley氏が発表した「Physically-Based Shading at Disney関連PDF)の手法だ。Unreal Engine 4のPBRも,これを参考にした実装である。

Far Cry 4のPBRは,Brent Burley氏の論文「Physically-Based Shading at Disney」をもとにしている
ファークライ4

 実のところ,物理ベースレンダリングそのものは,シリーズ前作の「Far Cry 3」でも採用されていたという。そこでFar Cry 4では,グラフィックスの品質をさらに高めるべく,金や銀のような鏡面反射ハイライトに色が乗った金属表現や,ざらついた金属面に出る異方性反射といった要素が新たに加えられたそうだ。

 材質システムで採用されたパラメータは4種類ある。
 「Glosiness」(面の滑らかさ),「Reflectance」(光沢反射率。Specularとも)の2種類は,材質の鏡面反射と拡散反射の具合を設定するもので,Far Cry 3から大きく変わったところはない。

Far Cry 4では,鏡面反射項は「Anisotropic GGX」,拡散反射項はランバート法で計算される
ファークライ4

 Far Cry 4で新しく追加されたパラメータは,「Metalic」(金属度合い),「Anisotropy」(異方性度合い)の2種類だ。
 簡単にいうと,Metalicの度合いが高ければ高いほど,ベースカラー(Albedo)の色味が鏡面反射のハイライトに乗りやすくなり,金や銅のような材質がリアルに表現できる。

Far Cry 4では,Metalic度が高いほど,スペキュラ部分に色が乗る。前作Far Cry 3では,スペキュラはモノクロ濃淡しかサポートしていなかったそうだ
ファークライ4

Metalic度合いと見映えの違い。右に行くほどMetalic度が高い表現となる
ファークライ4

 一方,Anisotropyは,ブラシで粗く磨かれたようなざらついたステンレスの表面や,刃物の上にでる光沢のように,ハイライトが線状に見える表現に有効だとされる。Far Cry 4では,さまざまな刃物や銃火器が登場することから,そうした材質表現にはこだわりたかったということだろう。

右に行くほどAnisotropic度が高くなるレンダリング例
ファークライ4

ハイライト成分の分散方向を,四元数(クォータニオン)で表現する実装例
ファークライ4

異方性反射を四元数で表現すると,それなりのクオリティが得られる
ファークライ4

左から完全鏡面反射,光沢のみ異方性反射,光沢と鏡面が異方性反射の例。この異方性反射は特定の布表現にも役に立ったと,McAuley氏は振り返っていた
ファークライ4


Far Cry 4におけるライティング


 Far Cry 4におけるライティング方式は,全方位環境マップを使ったイメージベースライティング(Image Based Lighting,以下 IBL)になるが,McAuley氏は,ライティングシステムで採用した特徴的な要素として,「Sky occlusion」「Environment maps」「Indirect lighting」の3つを挙げていた。その特徴を順に説明していこう。

Far Cry 4のライティングシステムにおいて語るべき3つの要素
ファークライ4

 Far Cry 4では,ゲーム世界の物体をライティングするときに,平行光源である太陽光だけではなく,天球全体の空模様からのライティングも行っている。そのときに,これからライティングしようとする場所が,周囲の背景物にどう遮蔽されているかの情報(Sky occlusion)にも配慮して,陰影表現を決定しているとMcAuley氏は述べた。

Sky occlusionは,いわば,ゲーム世界に存在する背景物の高さ情報を粗く記録したテクスチャである
ファークライ4
 Sky occlusionの求め方を具体的に説明しよう。
 まず,ゲームシーンを64×64mのエリアに分け,1テクセルあたり25cmの解像度で,割り当てるテクスチャメモリを用意する。そして,シーンに存在する遮蔽物の高さをテクスチャに描画していき,Sky occlusionテクスチャを作り出す。このSky occlusionテクスチャは,最終的に64×64mの範囲にある遮蔽物の高さを25×25cmの分解能で記録した,ハイトマップテクスチャになる。簡単にいえば,ゲーム内に存在する背景物の高さを,粗く記録したテクスチャとイメージすればいい。

 このSky occlusionテクスチャに対して,Screen Space Ambient Occlusion(SSAO)の要領で隣接する凹凸情報を調べ,その地点がどれくらい遮蔽されているのかを計算し,その結果を球面調和関数で示される「全方位遮蔽率情報」へと変換しておく。そして実際のライティング時に,この全方位遮蔽率情報を参照して,建物や木々のような大きなオブジェクトが,ほかのオブジェクトに及ぼす影の影響を描画していくわけだ。

ハイトマップ的なSky occlusionテクスチャを,球面調和関数による全方位遮蔽率情報へと変換する
ファークライ4

 そのときに,描画される影が交差する面でなだらかな陰影になるように,ハイトマップから全方位遮蔽率情報へと変換する処理で,法線の向きを調整する「Bent Normal」テクニックも適用していると,McAuley氏は説明していた。
 なお,Bent Normalについて解説するのは本稿の趣旨から外れるので,説明は省略する。詳細を知りたい人は,こちらのWebページを参照してほしい。

上から,Sky occlusionなし状態,Sky occlusionあり状態,Sky occlusionにBent Normalを組み合わせた状態でのレンダリング結果。一番下は陰影の自然な表現を実現できている
ファークライ4
ファークライ4
ファークライ4

 2つめの「Environment maps」は,いわゆる環境マップのこと。Far Cry 4では,全方位の光分布として環境マップを光源に使うIBLを採用しているが,ゲーム中には昼夜が変化するので,環境マップもそれぞれの時間帯を用意しなければならない。夕暮れ時の風景を描くのに昼間の空をベースにした環境マップを適用したのでは,正しい照明結果に見えないからだ。

複雑な計算をしているわりに,処理にかかる時間は意外に短くて済み,実用レベルと判断された
ファークライ4
 ちなみに,METAL GEAR SOLID Vシリーズ(以下,MGSV)では,昼夜各時間帯分の環境マップを事前生成しておく実装を採用していた。それに対して,Far Cry 4では,環境マップを画像として生成しておくのではなく,法線情報やアルベド情報の中間パラメータの状態で持っておき,各時間帯の太陽や空模様でライティングして,その都度生成するというユニークな実装形態を採用しているそうだ。この方式は,物理的な正確性はMGSVの方式に劣るものの,全時間分の環境マップを用意しなくて済むうえ,動的な環境マップを得られるという利点がある。

環境マップを利用する前に,環境マップ自体を太陽や空模様でライティングする
ファークライ4

生成された各時間帯の環境マップ
ファークライ4

 3つめとなる「Indirect lighting」(間接照明)の仕組みは,話を聞いた限りでは,「FINAL FANTASY XV」で使われているゲームエンジン「Luminous Studio」の実装形態と,よく似ているようだ。
 Far Cry 4では,ゲームフィールドを64×64mのエリアに分けたうえで,8×8のプローブ(計測点)を設定。天球からの降り注ぐ光によるライティング効果を間接照明にも配慮させるための仕組みとして,「Radiance Transfer」(光の伝達,以下 RT)を採用している。

 各計測点における光の伝達情報は,事前計算で取得しておく。具体的にいうと,Far Cry 4では,天球全方位からの光が,木々や家といった背景物からどんな影響を受けるのかという,光の伝達情報を事前計算しておくのだ。

64×64mのエリア単位で8×8の計測点(Probe)を設定し,光の伝達情報を取得。負荷が高い処理なので事前計算で行っておく
ファークライ4

 たとえば,障害物のない更地の計測点なら,空模様がそのまま計測点に届く。一方,計測点が森の中にあるなら,空模様も木々の葉を透過してやってくることになるのだから,緑色に寄った光の伝達情報として得られる。あるいは,ある方角に山がそびえ立っているなら,その方角からは光がやってこないので,結果として「遮蔽されている」(=影になる)という情報が得られるわけだ。
 一般的な事前計算により実装する間接照明システムの場合,「間接光そのもの」を計算で求めてしまうが,RTでは光の伝達情報を事前計算するだけなので,リアルタイムに変化する空模様に応じた間接照明の効果を表現することができる点も利点といえよう。RTならば,太陽が高い位置と低い位置にあるときで,それぞれつじつまの合った間接光が得られるのである。

実際の間接光照明処理は,太陽光や空模様をRTに反映させたうえで,各計測点での全方位間接光を求める。なお,間接光は,全方位からくる光の分布として球面調和関数の形で得る
ファークライ4

 ちなみに,このRTの仕組みを視点位置からはるか遠くの地点まで同じ計算粒度で行うのは,負荷が高すぎるわりに見た目の効果に乏しく,無駄が多い。そのため実際には,遠方になるほど粗い計算で済むような実装形態になっているということだった。

 このほかにもMcAuley氏は,広大なゲームフィールドを彩るテクスチャ群を動的に読み込む「Virtual Texture」(仮想テクスチャ)システムの実装についても解説していたのだが,さすがに長くなりすぎるので今回は割愛した。仮想テクスチャシステムの詳細は,実装を担当したKa Chen氏のWebサイト(関連リンク)に資料が掲載されているので,興味のある人は,そちらも参照してみるといいだろう。

「ファークライ4」公式サイト

CEDEC 2015 公式Webサイト


  • 関連タイトル:

    ファークライ4

  • 関連タイトル:

    ファークライ4

  • 関連タイトル:

    ファークライ4

  • 関連タイトル:

    ファークライ4

  • 関連タイトル:

    Far Cry 4

  • この記事のURL:
4Gamer.net最新情報
プラットフォーム別新着記事
総合新着記事
企画記事
トピックス
スペシャルコンテンツ