Less draw calls = better performance?

Hello!
I have made a procedurally generated world and im filling it with alot of low poly trees. Each tree consists of 3-5 materials (different colors for wood leaves etc). I can see, that in the frame debuger it “renders” (?) or “calls” each mesh seperatly. So it renders the leaves and wood seperatly for example because they have different materials.

Lets say i have 1000 trees on my screen. Each one needs 3 draw calls. (Because of the 3+ materials). Now comes my question. If i made a UV map and added it to a material. It would mean, that every tree would only require one draw call right? so the final drawcalls would be 1000 instead of 3000.

Would this improve the performance alot? Would it improve it at all?

Thank you for your help in advance and have a great week!

Generally, yes. Each drawcall has to be issued from the CPU to the GPU. This is often the bottleneck, especially on mobile devices. However it’s important to actually setup your meshes the right way. Make sure you assign the materials to the “sharedMaterial” / “sharedMaterials” property and not “material” or “materials”. If you assign it to “material”, each object will have its own material instance and therefore need to be rendered seperately. If multiple objects use the same material (when the same material is assigned to sharedMaterial) Unity can actually batch those objects into just one drawcall.

Also you should read about batching in general. Dynamic batching is quite limited. For static geometry you want to use static batching. For procedural generated contant you want to have a look at the StaticBatchingUtility which allows you to statically batch objects that have been created at runtime. Keep in mind that statically batched objects can’t be moved individually once batched. However for scenery and environment this usually doesn’t matter.

And yes, it’s generally adviced to use one material per object if possible. Sometimes that’s not possible if you need different material properties (like transparency).