Is there any difference in performance if i use unity primitives, set some textures on them, and scale them to desired size instead of using primitives imported from some 3d modeling software?
AFAIK There shouldn’t be. Why don’t you test it and let us know ?
Don’t use the default plane though, it has tons of faces.
You generally want to avoid scaling where possible. Using imported models where the scale is (1, 1, 1) can have performance benefits.
–Eric
tnx for responses.
i had bad feeling about scaling game object itself, but i am not sure why :). i know that right way is to import models, set their size in fbx importer, and leave game object scale at (1, 1, 1).
i do have script that display my fps in my android game, and i dont see any performance difference between imported models and scaled unity primitives, both with textures. so i wonder what is unity doing if i change game object scale that can cost performance.
maybe that performance drop only happens when changing scale of game object that contains some imported models, not when changing scale of unity primitives. why else would there be primitives in unity whose size can be changed only with gameobject scale?
the performance drops often comes on other things as side effect:
-
using mesh collision does not work well with rotation if the collision is not convex - you get seriously burnt whenever the rotation or position gets touched
-
Animation and modification on the hierarchies transform cause extra work if scales are not 1 on childs (even more so if they are non uniform ie if you scaled differently on each axis)
-
scaling negatively might depending on the version also have a rather negative impact
as for primitives: they are there so you have anything for dummy purpose. There aren’t many cases where you would want to use them for anything but that (and as primitives for mesh colliders that are hidden)
thank you very much for that explanation dreamora