Hi, I am making landscapes grounds etc with blender. I cant use unity built in tree brush so what is the best way how much performence difference will be happen if i put trees and grass one by one like game objects. I read some articles about it but i dont know if i should use my time on learning that. Let’s say i am placing about 1k tree.
Depends a lot on the complexity of your geometry (but in general trees are somewhat evil usually)
The 1000 Gameobjects are not ideal but probably manageable… 10000000 gras blades as game objects → hard no
When you export from blender the tree transforms are preserved, but each tree becomes unique geometry, your file is probably huge. Maybe blender might be smart enough to export the meshes only once if they have been made using duplicate linked but don’t quote me on this. If the mesh is reused over multiple transforms you are in a good position to use gpu instancing (checkbox on the material, but you need to make sure it actually works and not other prerequisites are blocking it). That would render very effeciently.
If you have unique meshes … it will suck. Be sure to look at static batching to make your life a bit better.
Maaaabye have a look for a script which replaces your tree transforms with prefab instances?
I have 1000 tree in my scene. They are low poly i tried gpu instancing and static batching and nothing changes. I looked frame debugger i think it works but i didn’t get any frame increases. I am using special shader graph i thought maybe this was because of this so i tried creating new default material. I tried it with 150 low poly unit which they move. I didnt get any frame increases either i think thats because they are low poly. In profiler rendering takes about 1 to 2 ms.
1-2ms for rendering is beyond great. Even if you target 120 fps you’d still have about 4 times that budget.
Sounds a bit like you aren’t even bottlenecked there (much faster is probably impossible in Unity). Soooo nothing to worry about.
“They are low poly i tried gpu instancing and static batching and nothing changes”
Well visually nothing should change. The frame debugger should say stuff like instanced draw or for gpu instancing and static batch for static batching (btw those two don’t mix, but static batches can be combined by the SRP batcher on top of it, so it might be hidden inside one of those too, which would be good too).