I've watched several tutorials and very often they applied the location, rotation or scale to the object when they transformed it in Object Mode. They always said it is important, but why?
For a rigid body physics simulation extreme unapplied scale transforms can cause very noticeable strange results, such as unnaturally fast or slow rotations depending on if the object is scaled up or down:
From the wiki:
If dynamic scaling is not needed, rigid body objects should have the scale applied by using the "Apply Scale" operator.
Unapplied rotation tends to make the simulation more unstable:
Short answer: it depends.
Applying transformation can be important but it mostly comes down to what you do intend to do with the objects.
Looking at this from a simplistic viewpoint, ideally it wouldn't matter and everything would work just fine even when scaled/rotated.
A good rule of thumb is:
Apply rotation and scale to your models unless you have a reason not to.
Transformation is split up into translation/rotation/scale, generalizing on Blender's support:
- rotated objects (well supported)
- translated objects (well supported)
- scaled objects (well supported)
- non-uniform scaled objects
- negative scaled objects
The last 2 can cause issues with modifiers, constraints and some tools. Even though for basic operations it works fine, there's rarely a good reason to have negative scale.
- Most modifiers are applied before scale. So the effect of a bevel or solidify could be squashed with non-uniform scale. Armature and hook modifiers are an exception to this rule.
- Negative scale will flip the object's normals (when an odd number of axes is flipped).
- Most edit mode tools such as smooth-subdivide won't take non-uniform scale into account.
- Rotation and scale can cause problems with armatures, especially when exporting to different formats.
- Rigid body physics doesn't support scaled objects well (this could be seen as a bug, nevertheless as it stands it's not working well).
- Scale applied after parenting will be applied to children, if you have complex parent/child setups - it's less trouble if you only scale objects when necessary.
- Extreme scale values
<0.0001(a large object scaled down or a small object scaled up) can cause floating point math precision issues when in edit mode, also for other calculations.
Areas scaled/transformed objects are fine:
- Static scenery (maybe you want to have different sized rocks). Objects which don't move or interact with other objects via modifiers, constraints etc.
- When it's intentional - an object stretches (animate scale with a bouncing ball).
I guess, my issue about the Array modifier of a rotated object is a helpful example. Here are the pictures of what I had, what I needed to get by adding an Array modifier and what I actually got:
Duane Dibbley provided a nice explanation: if the scaling/rotating is not applied, the Array doesn't only applies rotation with respect to the pivot (Empty), but also applies previous non-applied scaling and rotating!
I also found that if you are far into your project and don't want everything to go crazy when you apply your transforms, applying transforms to delta works well.
I was nearly done my character and forgot to apply transforms, but every time I applied them something broke, my shader, my eyelids rotations, etc. Applying to delta applied the transforms, but kept most things from breaking.
You can do so by pressing Ctrl + A > All Transforms to Deltas
Applying transforms to delta is also an alternative solution and keeps things from breaking!