アプリつくってみっか!趣味でiPhone/Androidアプリを開発し、日々勉強した事を書いています。オープンワールド系レースゲームをUnityで開発中です。この広告は、90日以上更新していないブログに表示しています。オープンワールドレーシングゲーム最初にモデリングしたAE86は車体各部を色毎にマテリアルを分けることで着色していました。この方法は色艶の調整が楽なのですが、「ドローコールが増えて処理が重くなる」という情報を得ました。テクスチャで表現する方法に変えてみました。今回は、実際にその効果があったのかどうかを検証したいと思います。Calls数などがあります。Calls数に気を配るべきだとのことらしいです。Blog比較のため、まずはAE86の各指標の数値がどうなっているか調べてみます。画面が真っ暗なのは純粋にモデルの部分だけの数値がみたかったからで、ライトやスカイボックスなどあらゆるものをOFFにしています。地面がないと車が奈落の底へ落ちてしまうのでQuadを1枚敷いています。1枚分の数値がこちらです。これを引いた値が純粋な車だけの数値となります。Calls数が9となっています。AE86は車体と4本のタイヤ・ホイールの計5つのオブジェクトから構成されています。車体は白、黒、窓の色、窓枠などのつや消し黒、テールランプの赤、オレンジの6つのマテリアル、タイヤ・ホイールは艶の違う2種類の黒の2種類のマテリアルを使用しています。Callsの9と一致しています。Batches数は各オブジェクトが持つマテリアル数の合計となるようです。次に、これがCR-Xではどのような結果になったのか、見てみたいと思います。Calls数が3です。減りました!CR-Xは車体、4本のタイヤ・ホイール、ナンバープレート、パワーバルジ(ボンネット上の出っ張り)の7個のオブジェクとからなっています。車体の大部分と他の全てのオブジェクトは1つのマテリアルを共有しています。唯一マテリアル分けたのは透明な材質にする必要があったヘッドライトカバーだけで、計2種類のマテリアルで構成されています。Callsの3と一致します。Batchingに1が計上され、Batches数は8となっています。Calls数がAE86の1/3に減ったのでマテリアルを共有し、テクスチャで色分け、材質分けをした効果は大いにあったという結論となりました。ひとつ気になったことがあります。3角形ポリゴンの数を示すTris数なのですが、実際のモデルのポリゴン数と一致しています。AE86のモデルのポリゴン数(Tris数)は4832で、Unity上のTris数は4.8k、CR-Xのモデルのポリゴン数は7198でUnity上の表示は7.2kとなっています。私は今までUnity上のTris数は描画処理されているポリゴンの数だと思っていました。Cullingで描画されていないポリゴンの数が差し引かれ、モデルのポリゴン数の半分くらいの数が計上されているものだと勝手に考えていました。Cullingされているかどうかに関わらず、表示領域内のオブジェクトの全てのポリゴン数がカウントされているようです。Cullingは正常にされていて、向こうを向いている前のプレートは表示されず、カメラの方を向いている後ろのプレートだけが見えています。Cullingされたオブジェクトのポリゴン数は計上されません。最後に、CR-Xがアキバの街を走る動画です。アプリこの商品を含むブログを見るプロフィールid:takujidev個人でiPhone/Androidゲームを開発しています。ミツバチ軍団vs昆虫軍団の縦スクロールシューティング。