
Reducing Draw Calls in Large Mobile Scenes
Optimizing draw calls is crucial for maintaining performance in mobile games, especially when dealing with large, complex scenes. In this article, we explore practical techniques our team uses to reduce draw calls while preserving visual fidelity.
Understanding Draw Calls
A draw call is a command from the CPU to the GPU to render a batch of geometry. Each draw call has overhead, and on mobile devices with limited CPU and GPU resources, excessive draw calls can quickly become a bottleneck.
Key Techniques
Static and Dynamic Batching
Unity provides two batching mechanisms that can significantly reduce draw calls. Static batching combines multiple objects that don't move into a single draw call, while dynamic batching handles small moving objects efficiently.
GPU Instancing
For repeated objects like trees, rocks, or enemies, GPU instancing is highly effective. It allows rendering thousands of objects with a single draw call.
Texture Atlasing
Combine multiple textures into a single atlas to reduce material swaps. This technique can dramatically reduce the number of textures the GPU needs to switch between.
Results
After implementing these techniques in our mobile projects, we typically see a 40-60% reduction in draw calls and 20-30% improvement in frame rate.