LoginSignup
5
5

More than 5 years have passed since last update.

DrawCalls削減

Last updated at Posted at 2015-02-24

UnityのDrawCallについて調べてみました。

DrawCallって何??

スクリーンにオブジェクトを描画するために,描画エンジンはOpenGLやDirect3DのグラフィックAPIにドローコール(draw call)を発行しなければいけません。どんな一回のドローコールでも多くのグラフィックAPIの集まりが必要になります。つまりこれはCPUパフォーマンスのオーバーヘッドに重大な影響をもたらします。

(公式ドキュメントから抜粋  http://docs.unity3d.com/ja/current/Manual/DrawCallBatching.html)

何やら難しそうなことが書かれていますがUnityが何かしら描画する回数でこれが大きいと処理が重くなる、という風に解釈します。

確認方法

今作成している画面でどのくらいDrawCallが発行されているかを確認するには「Stats」を使います。

スクリーンショット 2015-02-24 8.40.32.png

Unityゲームビューの右上にある「Stats」ボタンを押すとグラフィックに関するパフォーマンス状況を確認できます。今はシーンを作ったばかりで何もオブジェクトがないのでDrawCallsは0となっています。

画像を置いてみる

画面に適当な画像を置いてみます。
スクリーンショット 2015-02-24 8.46.03.png

画像1つ追加したのでStats内のDrawCalls数が1となりました。

もうひとつ追加します。

スクリーンショット 2015-02-24 8.47.46.png

2つ画像を表示していますが、DrawCallsは1のままです。同じ画像の場合は増えないみたいです。

では別の画像を使ってみます。スクリーンショット 2015-02-24 8.50.19.png

別画像を追加するとDrawCallsが2に増えました。
この画面ではDrawCallsは2ですが実際に画面を作るとなると様々な画像を使い要件を満たしていくことになり、その度にDrawCallsは増えていきます。そこで工夫が必要となっていきます。

この記事ではAtlasを使ってDrawCallsを削減する方法を紹介します。

Atlasとは??

Atlasとは複数の画像をひとつにまとめたものです。

Atlasの作り方

ここではNGUIを使ったAtlasの作成方法を紹介します。

スクリーンショット 2015-02-24 9.00.06.png

Project内に適当なフォルダを作成し、その中に適当な画像ファイルを格納します。
格納した画像ファイルを選択し、右クリック > NGUI > Open Atlas Makerを順にクリックすると、Atlas Makerウィンドウが開きます。

スクリーンショット 2015-02-24 9.02.50.png

「create」を押下すると保存場所と名前の入力を求められ、Atlasが作成されます。(ここではTestという名前をつけました)

スクリーンショット 2015-02-24 9.06.06.png

次にメインメニューのNGUI > Create > Sprite でSpriteを作成し、Inspectorで使用するAtlasを指定して、使用するSpriteを指定します。

スクリーンショット 2015-02-24 9.10.50.png

先ほどと同じように2つの画像を表示させました。ですが今回はAtlasで一つの画像にまとめているのでDrawCallsは1のままです。

このようにしてDrawCallsを削減することができます。ほかにも方法はありますがまた別の機会にまとめようと思います。

Atlas化は便利ですが、まとめる画像に気をつけないとAtlas自体の容量が大きくなるので注意が必要です。

以上、簡単ではありますが、DrawCallsとAtlasを使ったDrawCallsの削減方法のまとめでした。最後までお読みいただきありがとうございました。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5