読者です 読者をやめる 読者になる 読者になる

Let's Enjoy Unreal Engine

Unreal Engineを使って遊んでみましょう

UE4 OpenGL ES2プレビューを使って大幅な負荷軽減

UE4.6から追加された機能で、OpenGL ES2での描画をエミュレートしたプレビューモードが使用できるようになりました。これは主にiOSAndroidでのモバイルレンダリングをPC上で再現したものになります。

当然モバイル用に最適化されており、使用できなくなる機能も多いです。メリットとしては実機に転送する必要がなく、モバイルレンダリングを確認することができるということです。

が、これは表向きの理由かもしれません。この機能である意味一番ありがたいかもしれないのは大幅に描画負荷を落としてくれるということです。個人的に試してみた限りでは今までやってきた負荷軽減で最も効果が高かったです。

f:id:alwei:20150120225725j:plain

プレビュー効果のオンとオフ

プレビューモードを使用するためには設定が必要です。UE4.6とUE4.7では微妙に違います。4.7はまだ正式版ではないので、今回はあくまでもPreview版の場合です。正式版では微妙に変わるかもしれません。

4.6を使っている場合はメニューから"編集"→"エディタの環境設定"→"一般"→"実験的"→"Feature Level Preview"というチェックボックスをオンにしておきます。ここから次はレベルエディターのビューポート上部の"設定"ボタンを押して、"主要レベルのプレビュー"→"ES2"を選択するとOpenGL ES2モードに切り替わります。

4.7の場合はいきなり"設定"ボタンから、"描画レベルをプレビュー"→"モバイル / HTML5"を選択するとOpenGL ES2モードになります。

この後すぐにシェーダーコンパイルが走り、結構な時間がかかるので、じっと待ちます。シェーダーコンパイルが終わるとレンダリングが完全に切り替わっているはずです。

描画負荷とレンダリングの違い

触っているとすぐに気づくと思いますが、OpenGL ES2モードは本当に軽いです。今回はSurface Pro2を使用して、サードパーソンテンプレートを実行してみました。

まずは通常のシェーダーモデル5での描画です。

f:id:alwei:20150120230656j:plain

FPSを表示していますが、"18.02 FPS"と相当負荷がかかっているのがわかります。次はOpenGL ES2での描画。

f:id:alwei:20150120230736j:plain

なんと一気に"60.06 FPS"まで跳ね上がりました。これは60FPS上限だったので、実際はまだ上をいくようです。本当にビックリするくらい軽くなりました。Surface Pro2のようなビデオカードがないマシンだけでなく、デスクトップマシンの方でも倍近く数字が変わったので、本当に凄い効果です。

ただし軽くなっただけではなく、描画の仕組みまで変わってしまっていることに注意する必要があります。このレンダリングはモバイル向けゲームを作っている時にはいいのですが、PCやコンソールゲームマシンでの開発だと完全別物の描画になっているので、ダイナミックシャドウがなかったり、多くのシェーダーが機能しません。

グラフィックのクオリティも落ちますが、見た目を気にしない場合にはとても良い負荷軽減です。そこに注意して使ってみてください。