Version: 2023.1
言語: 日本語
Physics 2D Profiler module
UI プロファイラーと UI Details プロファイラー

Rendering プロファイラーモジュール

Rendering Profiler (レンダリングプロファイラー) は、シーンをレンダリングするために CPU と GPU が行う処理に関する統計や情報を表示します。これらの統計情報を利用して、シーンのさまざまな領域のリソース強度を測定し、最適化に役立てることができます。

チャートには、アプリケーションがレンダリングしたバッチ (Batches Count)、SetPass Calls、三角形の数 (Triangles Calls)、頂点数 (Vertices Counts) が表示されます。下のペインには、より多くのレンダリング統計 (ゲームビューの 統計ウィンドウ ウィンドウに表示されているものと同等) が表示されます。

レンダリングプロファイラーモジュール
レンダリングプロファイラーモジュール

Rendering プロファイラーモジュールのチャートは、以下の 4 つのカテゴリに分かれています。

チャート 説明
Batches Count The number of batches Unity processed during a frame.
SetPass Calls Count そのフレームでゲームオブジェクトのレンダリングに使用したシェーダーパスを Unity が切り替えた回数。1 つのシェーダーには複数のシェーダーパスが含まれている場合があり、それぞれのパスでシーンのゲームオブジェクトのレンダリングが異なります。
Triangles Count The number of triangles Unity processed during a frame.
Vertices Count The number of vertices Unity processed during a frame.

モジュールの詳細ペイン

When you click on the Rendering Profiler module, the details pane in the lower half of the window displays detailed rendering statistics. These statistics are similar to the statistics shown in the Rendering Statistics window.

詳細ペインの左上の Open Frame Debugger を選択すると、フレームデバッガー が開き、フレームをレンダリングした個々のドローコールの情報が表示されます。

これらの統計情報は、ProfilerRecorder APIProfiler Module Editor でも入手可能で、カスタム製のプロファイラーモジュールに追加することができます。

統計 説明 リリースプレイヤーでのアクセス
SetPass Calls Count そのフレームでゲームオブジェクトのレンダリングに使用したシェーダーパスを Unity が切り替えた回数。1 つのシェーダーには複数のシェーダーパスが含まれている場合があり、それぞれのパスでシーンのゲームオブジェクトのレンダリングが異なります。 あり
Draw Calls Count そのフレームで送信されたドローコールの総数。Unity はゲームオブジェクトを画面にレンダリングする際にドローコールを送信します。この数には、バッチ処理形式でないドローコールと、動的および静的なバッチ形式ドローコールが含まれます。 あり
Total Batches Count The total number of batches Unity processed during a frame. This number includes both static and dynamic batches. あり
Triangles Count The number of triangles Unity processed during a frame. あり
Vertices Count The number of vertices Unity processed during the frame. あり
(Dynamic Batching) This section contains statistics on dynamic batching. なし
Dynamic Batched Draw Calls Count 動的バッチ処理にまとめられられたドローコールの数。 なし
Dynamic Batches Count そのフレームで処理された動的なバッチ処理の数。 なし
Dynamic Batched Triangles Count 動的バッチ処理に含まれるゲームオブジェクトの三角形の数。 なし
Dynamic Batched Vertices Count 動的バッチ処理に含まれるゲームオブジェクトの頂点数。 なし
Dynamic Batching Time 動的バッチ処理構造の作成に Unity が費やした時間。 なし
(Static Batching) This section contains statistics on static batching. なし
Static Batched Draw Calls Count 静的バッチ処理にまとめられられたドローコールの数。 なし
Static Batches Count そのフレームで処理された静的なバッチ処理の数。 なし
Static Batched Triangles Count 静的バッチ処理に含まれるゲームオブジェクトの三角形の数。 なし
Static Batched Vertices Count 静的バッチ処理に含まれるゲームオブジェクトの頂点数。 なし
(Instancing) This section contains statistics on GPU instancing. なし
Instanced Batched Draw Calls Count インスタンスバッチ処理にまとめられられたドローコールの数。 なし
Instanced Batches Count The number of batches Unity processed to render instanced GameObjects during a frame. なし
Instanced Batched Triangles Count インスタンス化されたゲームオブジェクトの三角形の数。 なし
Instanced Batched Vertices Count インスタンス化されたゲームオブジェクトの頂点数。 なし
Used Textures Count

Used Textures Bytes
The number of textures Unity used during the frame and the amount of memory the textures used. なし
Render Textures Count

Render Textures Bytes
The number of RenderTextures Unity used during the frame and the amount of memory the RenderTextures used. あり
Render Textures Changes Count そのフレームで Unity が 1 つまたは複数のレンダーテクスチャをレンダーターゲットとして設定した回数。 あり
Used Buffers Count

Used Buffers Bytes
GPU バッファとそれに使われたメモリの総数。これには、頂点、インデックス、コンピュートバッファ、レンダリングに必要なすべての内部バッファが含まれます。 あり
Vertex Buffer Upload In Frame Count

Vertex Buffer Upload In Frame Bytes
そのフレームで CPU が GPU にアップロードしたジオメトリの量。これは、頂点/法線/TEXCOORD のデータを表します。すでに GPU にジオメトリがある場合もあります。この統計値には、Unity がフレーム内で転送したジオメトリのみが含まれます。 あり
Index Buffer Upload In Frame Count

Index Buffer Upload In Frame Bytes
そのフレームで CPU が GPU にアップロードしたジオメトリの量。これは、三角形のインデックスのデータを表します。すでに GPU にジオメトリがある場合もあります。この統計値には、Unity がフレーム内で転送したジオメトリのみが含まれます。 あり
Shadow Casters Count そのフレームで影を作るゲームオブジェクトの数。1 つのゲームオブジェクトが複数の影を作る場合 (複数のライトが照らしているため)、1 つの影につき 1 エントリーされます。 あり

プレイヤーの可用性

Rendering モジュールのプロファイラーカウンターは、プレイヤーでも利用可能です。プレイヤーで Rendering プロファイラーモジュールの情報にアクセスするには、ProfilerRecorder API を使用します。高レベルのカウンターは、Release Player でも利用できます。

以下の例は、“SetPass Calls Count”、 “Draw Calls Count”、 “Vertices Count” の指標を収集し、それらをテキストエリアとして表示する簡単なスクリプトです。

using System.Text;
using Unity.Profiling;
using UnityEngine;
 
public class RenderStatsScript : MonoBehaviour
{
    string statsText;
    ProfilerRecorder setPassCallsRecorder;
    ProfilerRecorder drawCallsRecorder;
    ProfilerRecorder verticesRecorder;

    void OnEnable()
    {
        setPassCallsRecorder = ProfilerRecorder.StartNew(ProfilerCategory.Render, "SetPass Calls Count");
        drawCallsRecorder = ProfilerRecorder.StartNew(ProfilerCategory.Render, "Draw Calls Count");
        verticesRecorder = ProfilerRecorder.StartNew(ProfilerCategory.Render, "Vertices Count");
    }
 
    void OnDisable()
    {
        setPassCallsRecorder.Dispose();
        drawCallsRecorder.Dispose();
        verticesRecorder.Dispose();
    }

    void Update()
    {
        var sb = new StringBuilder(500);
        if (setPassCallsRecorder.Valid)
            sb.AppendLine($"SetPass Calls: {setPassCallsRecorder.LastValue}");
        if (drawCallsRecorder.Valid)
            sb.AppendLine($"Draw Calls: {drawCallsRecorder.LastValue}");
        if (verticesRecorder.Valid)
            sb.AppendLine($"Vertices: {verticesRecorder.LastValue}");
        statsText = sb.ToString();
    }
 
    void OnGUI()
    {
        GUI.TextArea(new Rect(10, 30, 250, 50), statsText);
    }
}

Rendering プロファイラーモジュールの情報は、ProfilerCategory.Render Profiler のカテゴリに属しています。

カスタムモジュールで選択したレンダリングカウンターを強調表示したい場合は、Module Editor を使用して、チャートと詳細表示を設定します。

Physics 2D Profiler module
UI プロファイラーと UI Details プロファイラー
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961