Callについて調べると、どうやらこれらがパフォーマンスに影響することがわかります。実際に回数を減らすためのノウハウも色々と解説されています。Callってそもそも何なの?どう違うの?って話がイマイチわからなかったので調べました。レンダリング処理の流れレンダリングする際には、まずCPUが全てのレンダリング対象オブジェクトの情報を集めます。次にこれらのうち、マテリアルが同じだったりといったバッチング条件に合うものを一つのメッシュにまとめます。してまとめたメッシュごとに、Batchという処理単位を作ります。Callの順に処理をしていきます。Callとは、マテリアルの設定値をCPUがGPUに教える処理です。Callは不要なのでスキップされます。Callが呼ばれます。Callで設定された値を用いてメッシュを描画することを命令することです。Callの意味がわかったところで、いくつか検証をしてみます。マテリアルを同一にしてメッシュを変えた二つのオブジェクトをレンダリングしてみます。片方はCube、片方はCylinderにしています。Calls共に1となりました。同一マテリアル、大きいメッシュでレンダリングしてみる次に、頂点数の多いメッシュはバッチングされないということなので、同じマテリアルを使ってSphereを2つレンダリングしてみます。確かにバッチングはされずBatchesは2となっています。Callsは1で済みました。マルチパスシェーダを使ってみる次にシンプルな2パスのシェーダを適用したマテリアルを作り、二つのCubeにアサインします。Callsは2となりました。2パスのシェーダはバッチングの条件を満たさないためバッチはされません。Callsについては、今回のケースではまず両オブジェクトの1パス目がレンダリングされ、それから両オブジェクトの2パス目がレンダリングされるという順序であったため、2回に節約されました。Call削減につながるということはありませんでした。マテリアルの値が完全に同一であればバッチングされはしますが、これはMaterialPropertyBlockを使わなくても同じことです。MaterialPropertyBlockは、ただマテリアルのインスタンスを複製することなしにプロパティを変更できるという機能であるようです。参考にしたサイトこの記事を書く上で、下の記事を参考にしました。パフォーマンスの最適化に関する記事ですが、レンダリングの仕組みについても詳しく書かれています。renderingあたりに色々と書いてあります。»プロフィールUnityエンジニア。グラフィックスへの興味が強めです。Blur(渦巻ブラー)のポストエフェクトを実装する月別アーカイブはてなブログをはじめよう!halya_11さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。