در پست قبلی گفتیم که draw call دستوری برای رسم Mesh است که توسط CPU فراخوانی و توسط GPU دریافت می شود.

درسته GPU به صورت موازی کار می کنه اما چه ارتباطی بین CPU و GPU وجود داره؟ آیا CPU باید منتظر بمونه تا GPU کار هاشو تموم کنه تا بتونه دستورات جدید رو دریافت کنه؟

خوشبختانه نه! به خاطر اینکه که چنین ارتباطی bottlenecks ایجاد می کنه (مثلاً وقتی CPU نمی تونه دستورات کافی رو سریع تحویل بده) و کار موازی را غیرممکن می کنه.

راه حل لیستیه که توش دستورات توسط CPU اضافه و توسط GPU خوانده بشه - اینطوری مستقل از یکدیگرند! به این لیست Command Buffer میگن.


نکته: draw call ربطی به تعداد vertex نداره!

نکته: draw call ربطی به اندازه تکسچر نداره!


به ازای هر متریال 1 Batch داریم

پس حواستون باشه که موقع Export گرفتن مدل از نرم افزار مدلسازی متریال هاش کم باشه
چون تو مثال پایین 6 تا متریال داره در نتیجه 6 تا Batch حساب میشه!

تعداد Batch به تعداد تکه های Mesh هم ربط داره!
پس تا می تونید مدلی Export بگیرید که تعداد تکه های کمی داشته باشه!

این Pass مربوط به Shader ، Texture و Blending هست





منبع:Batch! Let's take a look at Batching! - Unite Seoul 2016