質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Q&A

1回答

2387閲覧

UnityのDrawCallについて

Aya_program

総合スコア30

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

0グッド

0クリップ

投稿2016/10/09 10:57

現在Unityを用いてモバイル向けに制作を行っているのですが
シーン上にプレハブを生成していくとDrawCallが増えていってしまいます

ネットで調べたところ同一マテリアルだとDrawCallは抑えられると書いてあるのですが
シーン上に生成しているオブジェクトは同一のプレハブから作成しているのに生成するたびに
DrawCallは増えています

何が原因なのでしょうか?
それともこれが普通なのでしょうか?

生成しているオブジェクトは3Dモデルでアニメーションがついていて常時動いています

また、他にもDrawCallを削減する方法などありましたら教えていただけると助かります

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

公式リファレンス:ドローコールバッチングをご覧ください。

現在は、メッシュレンダラー のみがバッチングされます。すなわち、スキンメッシュ、クロス、トレイルレンダラーおよびその他の種類のレンダリングコンポーネントはバッチング されません 。

アニメーション付きの3Dモデルならスキンメッシュ(Skinned Mesh Renderer)を使用しているかと思いますので、これが原因かと思います。

ドローコール削減方法は調べれば沢山情報が出ていますので、まずは自分で調査されることをオススメします。

投稿2016/10/10 09:55

sakura_hana

総合スコア11425

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Aya_program

2016/10/10 12:39

調べたところ1つのモデルの中にスキンメッシュコンポーネントのアタッチされたオブジェクト3つで構成されていて そのうち一つでも非アクティブにするとドローコールが一つ減るのが確認できました この3つのオブジェクト?スキンメッシュ?を一つにするやり方は アセットのMeshBaker使用であっているのでしょうか? MeshBakerで可能ならこれの購入を考えているのですが調べたところシェーダーごとにマテリアルは作成されるとあります 今回の3Dモデルは3つのシェーダーからなっているのですがこれをCombinedしたとしても変わらないのでしょうか? また、同様にAssetのDrawCallMiniamizerを使用してみたのですがへんかありませんでした 他にスキンメッシュを一つにする方法があれば教えていただけると嬉しいです
sakura_hana

2016/10/12 08:03

MeshBakerを使用したことが無いのでちょっと分かりません…… スキンメッシュとボーンは紐付いている筈なので、下手にメッシュを1つにするとアニメーションの方に影響が出る可能性があります。 通常はマテリアル1つ=ドローコール1つなので、マテリアルもまとめないと意味は無いかと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問