LIFULL Creators Blog

「株式会社LIFULL(ライフル)」の社員によるブログです。

UnrealEngine4でDynamic Global Illuminationを試す。

こんにちは、上津原です。

今回はタイトル通り、UE4にあるDynamic Global Illuminationを試してみたので、そのやり方とどんなふうに変わるかを書きたいと思います。

※この機能は開発段階のものなので、本番環境での利用準備はできていないものです。

Global Illuminationってなんじゃ?

グローバルイルミネーションとは

グローバル・イルミネーション(global illumination,大域照明)は、 拡散光を正確に扱うレンダリング技法のことで、 ローカル・イルミネーション(local illumination,局所照明)の対義語。 非常に写実的、つまり物理的に正しい表現が可能である。

レンダリング方程式が考え出された時点で、理論自体は存在していたともいえるが、 当時の貧弱な計算能力や複雑な確率計算に用いるアルゴリズムの不備により、 近年になるまで注目されなかった方法である。

Wikipediaより(グローバル・イルミネーション - Wikipedia

僕も詳しくは言えませんが、反射光や拡散光を現実に近い感じでレンダリングしてくれるんですね。

じゃあDynamic Global Illuminationってどういうこと?

グローバルイルミネーションに、ダイナミックが付きました。つまり、動的にそれらが計算されるという事です。

通常であれば、ライティングをビルドするときにライトマッピングされてそれぞれにベイクされる感じになるわけですが、これはその処理の必要なく、動的にその処理が行われるというわけです。

わー、なんかスゴそう。そして重そう。

やり方は?

① C:\Program Files\Unreal Engine\4.4\Engine\ConfigのConsoleVariables.iniを開きます。

f:id:nextdeveloper:20141002102637p:plain

② [Startup]の下に「r.LightPropagationVolume=1」を書き足し、保存

f:id:nextdeveloper:20141002102645p:plain

③ Unreal Edirotを開き、プロジェクトのワールド設定内の「Force No Precomputed Lighting」のチェックを外す

f:id:nextdeveloper:20141002102655p:plain

④ Directional LightをMovableにし、「Affect Dynamic Indirect Lighting」のチェックを入れる

f:id:nextdeveloper:20141002102712p:plain

⑤ おしまい!

動かすとどんな感じになる?

Before

f:id:nextdeveloper:20141002102926p:plain

After

f:id:nextdeveloper:20141002102936p:plain

かなり違いますね~。反射光があるから中の方まで明るくなってくれて、かなり自然な表現になっています。

右の方にあるCubeのそこには、床になっている芝生の緑色が反射しているのもわかりますね。

FPSはどんなもんか?

デフォルトのBP FPSプロジェクトに屋根を追加し、 エディターのビューポートでプレイした結果

  • Dynamic GI あり:110前後
  • Dynamic GI なし:115前後

という感じでした。5前後変わってきますね。

ムービーもいくつかあったので載せておきます。

・チュートリアルムービー

・動かしてみたムービー

開発中のものなので実用性云々を言えるものではありませんが、動かしてみるのは楽しいですね。