Hello, theres a bit of confusion around our small office as to the best way to get visual variety with our environmental assets. It basically comes down to two schools of thought.
Approach A:
-Avoid scaling as much as possible because the performance hit is notable.
-Non-uniform scale in an absolute no-no as it is an even bigger hit on performance.
IE: In order to get a tall, fat, and standard variation of one mesh, i’m best off bring in 3 separate FBX files and only modify rotation and location vaules when placing.
Approach B:
-Only bring in one FBX and scale, rotate, and locate to suit your visual needs.
-Non-uniform scale should be used sparingly
IE: Make prefabs off your single mesh to account for your tall, fat and standard types. Place those prefabs.
What it really comes down to is: just how big a hit is the scale anyway? big enough that i should be scaling the same mesh in my 3D software and bring in multiple types as their own FBX? This suckers gotta run on mobile so every bit of performance helps
Aren’t those things easily testable on your target device? Even if the difference in computational power is indeed “notable”, we don’t know how many objects you have or anything else about your scene to have any kind of informed idea about whether it’s relevant in this case.
If the bottleneck is elsewhere and your workflow is improved by using scale then go ahead and use scale. If the bottleneck is with scaling then you need to measure how it’s effecting you in your use case, estimate the cost of change, and then decide if it’s worth it.
Profiling or benchmarking a stress test on a target device is always a good idea. No point making up some crazy art flow to fix a problem that might not effect your game.
Non uniform scale can be an issue only for UV unwarping, to get correct density.
For 3D rendering have ZERO impact. Before rendering, the transform matrix is uploaded, and does not matter what contains, will be taken in account always.
If you really need huge meshes, is good to split them down, not because of transforming, but for optimization, like culling or lightmaping.
That’s not the stage of the pipeline where it (potentially) matters. At earlier stages of the pipeline it can break things like batching. It’s not about a few extra multiplications.
How can break things? If I remember correctly, the whole point of batching is to upload only once the mesh, then reuse it for different transforms as much as possible.
There’s different types of batching, and for some types it makes it too hard/costly to confirm when the underlying geometry is the same. Do a search for people who can’t figure out why their batching isn’t working, you’ll find plenty of details.