- Home /
Why does scaling affect dynamic batching?
For dynamic batching does any one know the technical reason why scaling an object breaks batching but not translate or rotation.
I'm assuming Unity uses matrix's to position/rotate/scale game objects behind the scenes but I can't think of any reason why scaling would affect dynamic batching unless it's a technical reason relating to how the hardware or graphics api instances objects.
I'm coming from a DirectX/XNA background but never really used the api for batching draw calls via hardware instancing etc.
Just curious ...
Great question. I'll subscribe to see if someone comes with a clever answer, cause for me it doesn't make much sense neither.
Answer by papaboo · Jan 03, 2013 at 10:20 AM
As far as I know Unity's transforms contain position/rotation/uniform-scaling to reduce memory consumption of transforms and gameobjects by 2 floats. This means that for Unity to allow non-uniform scaling, e.g scale(1,2,PI), it needs to create a copy of the mesh behind the scenes and apply the non-uniform scaling to each attribute of the mesh. So while it may seem that you are only using one mesh, Unity may infact be juggling several meshes behind the scenes.
I doubt that this is the entire/only reason why your meshes are not batched, but I hope it helps on your curiosity ;)