How can I prevent texture stretching while scaling a mesh?

The only solution that I can do right now is to split the material into three. First one to handle x-y plane, second one to handle x-z plane and the last to handle y-z plane.

This works well for box shape which has 6 faces. Each material to be assigned to two corresponding faces.
It works perfectly for scaling and rotating.

There must be a more elegant implementation than this. :slight_smile: