QunC

Unity|Log|Unite_DAY2_Unity GUI 開発テクニック指南

time 2015/04/16

Unity|Log|Unite_DAY2_Unity GUI 開発テクニック指南

そもそもどうやって描画されているのか

UnityはMeshで描画される 
Material Textureなど
筆がないと絵がかけないようなもの

筆を持ち替える行為→動作が遅くなる原因
ドローコールなどに影響してくる
この極力筆を持ち替えないように描画をまとめることをBatching(バッチング)するという

同じMesh内にはいっていれば1batchだけど途中で違う要素が挟まると3batchに分割される
これをbatchが壊れる 破れるという

ステートの変更

テクスチャが違ってマテリアルが同じ→そんなに描画は遅くならない
テクスチャが違ってマテリアルが違う→かなり遅くなる

シェーダーを変えないといけないためかなり描画が遅くなる

このイケてない状態をSetPassコール(遅い描画のこと)という
Staticsの中にStateとSetpassは表示される
SetPassはできるだけ少ないことが望ましい

BatchingをUIに応用するとどうなるか?

見た目はまったく同じでドローコールが変わるやりかた(=すべてBatchingされている状態)を目指す

Unity5 Flame Debbuger
Window>FlameDebbuger
ドローコールごとに何がレンダリングされているかわかるようになる

(´-`).。oO(これヤバい!
1ドローコールごとになにが描画されているのかわかるようになっている。
イケてないUIの配置方法だと一撃でバレる仕組みだ…!)

RULE#1
同じマテリアルテクスチャの場合
色をColorContで変える>OK
重なっていてもOK

RULE#2
バッチが切れるタイミングはマテリアルやテクスチャを変更した時
重複している場合間に挟まっている画像のマテリアルが違う場合バッチが切れることがある(=3ドローコール)
この切れる箇所を減らしたい

Unityが5.1からBatchingを自動で綺麗にするようにした
5.2から同じCanvas上のものはバッチングされるようになる

(´-`).。oO(uGUIから搭載のCanvas要素を
Add Conpornentすると同じドローコールとみなされる仕様に。ええやん。
これはもうuGUI一択では)

・マテリアルを変えるときにはバッチが壊れる
・テクスチャを変えるときにはバッチが切れる
・エレメントがキャンバスから離れる場合はソーティングが切られる

ドローコールを少なくするコツ
・マテリアル変更は最小限に
・5.2からUIとLabelが同じマテリアルとして扱えるようになった
・テクスチャ単品の変更を避けるAtlasにまとめよう

ここからデモ
初期に25ドローコール使っている画面をバッチングしていく

1.ヒエラルキーでCanvasと同一平面に入れるようにする
要素はネストする
   コンポーネントからCanvas要素にネストする
これで25>13に
さらにその子要素にもCanvasにネストする

2.シングルテクスチャからスプライトアトラスにする

最終的にドローコールを25→4に減らすことができた

CanvasRedeller

UIはすべてCanvasRedellerをもっている
Texture Mesh Colorを情報としてもっている

プロパティを変更する(画像を途中で差し替えたら)とどうなるのか?
>Rebatchingが起こる
遅くはないが速くもないのでこれは避けた方がいい
階層の順番がかわってしまうことがある
ネストがかわることがある

PIXCEL PERFEXTモード
ピクセルにスナップされるモード
親要素がスナップされると子要素もスナップされる

→頂点設定がかかわっているので遅くなる
移動するオブジェクトに使うには避けた方がいい
あまり使わない方がいい

——このへんからエンジニア向け

CUSTOM UI CONPORNENT
UIコンポーネントをカスタマイズできる
見た目もガンガン変えられる

CANVAS ELEMENT
スクリプトに書く キャンバスの描画の順番を指定できる
特殊な普段通りの描画以外の場合に指定する

まとめ
最適化することでよりはやくUIをレンダリングできるようになるよ

(´-`).。oO(英語だし内容が難しかったけど
この講演が一番この情報はやく知れてよかったな〜感ある
Canvas超重要要素になるわこれ…)

sponsored link

down

コメントする




CAPTCHA


Profile

845

845

多摩美卒/デザイナー/Sketch/湘南住/子育て中/ハンドメイド

ものづくりをする人を応援するサービスのスタッフをやっています☺️

Categoly

Archive

sponsored link