23
青木そらす(@sorasu2113)

Gear vrの最適化方法を調べてみた

Embed Size (px)

Citation preview

Page 1: Gear vrの最適化方法を調べてみた

青木そらす(@sorasu2113)

Page 2: Gear vrの最適化方法を調べてみた

自己紹介 青木そらす(@sorasu2113)と申します

VR / ARのアプリケーションを趣味で作ってます

VR空間で究極の幸せを獲得したいと目論む人です

Page 3: Gear vrの最適化方法を調べてみた

何がしたいか

Page 4: Gear vrの最適化方法を調べてみた

何がしたいか60FPSを維持した状態で

Page 5: Gear vrの最適化方法を調べてみた

何がしたいか60FPSを維持した状態で

制服Unityちゃんに

Page 6: Gear vrの最適化方法を調べてみた

何がしたいか60FPSを維持した状態で

制服Unityちゃんに

保健室で膝枕してもらいたい

Page 7: Gear vrの最適化方法を調べてみた

検証環境

Unity 5.0.2 f1

Oculus Mobile SDK 0.5.1

Galaxy S6 edge / ファーム最新(2015年5月30日現在)

Page 8: Gear vrの最適化方法を調べてみた

前提条件①

出すもの … 制服Unityちゃん、男性キャラ、保健室

保健室はStaticにチェックを入れる

固定視点で移動は無し

ShadowはBake以外使わない

Page 9: Gear vrの最適化方法を調べてみた

前提条件②

Light Mapを作成する Lightingは極力Bake設定

Light Probeを設置、Reflection ProbeはBoxとBake指定

Static Batching、Dynamic Batching、GPU Skinning

Multi Thread Renderingは有効。

Page 10: Gear vrの最適化方法を調べてみた

前提条件③ Unity Gear VR Gameのパフォーマンスを搾り出せ(抜粋)

フレーム当たりのドローコール数 : 50~100

フレーム当たりのポリゴン : 5万~10万

テクスチャはできるだけ少なめに(ただし大きくても可)

Page 11: Gear vrの最適化方法を調べてみた

数字の出し方

SetPassCall – UnityEditor上で確認

FPS – 実機で計測した値

Page 12: Gear vrの最適化方法を調べてみた

SetPassって何者?

【Unity】Unity Performance Casual Talk

「ドローコール伝説の終わり」 レポート

http://qiita.com/baba_s/items/5260807ced7fc3c02ca6

Page 13: Gear vrの最適化方法を調べてみた

SetPassって何者?

ざっくり言うと

Unity→OpenGLドライバに命令を投げる回数

オブジェクトを大量に出しても、共通マテリアルなら

1Mesh * 1Material * 1PassのShader = SetPassCall 1

Materialの個数やShaderのPassが多いと増える

Shaderのプロパティを動的に変更すると、別物になるので

インスタンス毎にSetPassが呼ばれる → 良くない

Page 14: Gear vrの最適化方法を調べてみた

普通に出してみる SetPassCall – 90

FPS – 50

Page 15: Gear vrの最適化方法を調べてみた

そこそこのFPSが出てしまった…

Page 16: Gear vrの最適化方法を調べてみた

もっと快適にできる マテリアルとメッシュが複数あるため、個々に描画している

シェーダーの中でPassを複数呼んでいる

ここを減らす

Page 17: Gear vrの最適化方法を調べてみた

施策 モデルデータをMeshBakerで結合する($50)

シェーダーを可能な限りMobileに変える

Page 18: Gear vrの最適化方法を調べてみた

出してみる SetPassCall – 16 ~30

FPS – 60

Page 19: Gear vrの最適化方法を調べてみた

出してみる SetPassCall – 16 ~ 30

FPS – 60

Page 20: Gear vrの最適化方法を調べてみた

どれだけ減ったのか

背景 Set Pass Call - 72→ 2

男性キャラ Set Pass Call – 8 → 4

Unityちゃん Set Pass Call – 30 → 22

Page 21: Gear vrの最適化方法を調べてみた

それでもSetPassCallが減らせなかった場合

固定視点に限り背景をSkyBox化することで

SetPassCallを6まで抑えられます。

※両眼で12 Set PasCallです

※今回、背景が2Passで描画出来てしまったので紹介だけです

Page 22: Gear vrの最適化方法を調べてみた

まとめ

オブジェクトは極力、MeshBakerを使って1つにまとめる。

Materialが細かく分かれてしまった場合は

SkyBoxでごまかす。

Page 23: Gear vrの最適化方法を調べてみた

このコンテンツは、『ユニティちゃんライセンス』で提供されています。