taken from the main forums by TBerg
Regarding DIP (Draw Indexed Primitives)/draw calls and batch size, imagine a DIP as a single color on a painting. The more color a painting have, the more DIP there is. If the painting have 1000 color, that means there are 1000 DIPs in that painting.
The batch size is how many pixels each color have in that painting. Let's say there are 200 pixels of red color, then it is counted as 1 DIP with a batch size of 200. If there are 100 yellow pixels, then the result is the painting will have 2 DIP with average batch size of 150
as for how the DIP is counted in 3D models;
- 1 object with 1 material (standard) is counted as 1 DIP
- 1 object with a multi material (4 sub-materials) is counted as 4 DIP
- 2 objects with 1 material is counted as 2 DIP
- 2 objects with the exact same multi-material (4 sub-materials) is counted as 8 DIP
now this is why we need to be careful when we use multi/sub-object materials
20 separate objects with 10 polygons each, having the same multi-materials (with 10 sub-materials) is counted as 200 DIP with average batch size of 10.
If we attach all those objects together, the result will be 10 DIP with average batch size of 200
If we detach and break down the objects based on matID, separate the multi-material into 10 standard materials, and apply them individually, the result will be 10 DIP with average batch size of 20.
This last method gives the best result, with the lowest number of DIP and batch size.