Haven’t really optimized environments before so I’m wondering if I should make my own system where trees despawn and spawn depending on the distance or should I not bother with that since streaming seems like the exact same thing pretty much. Not sure if it’s worth it to make my own system for the sake of making a LOD system where stuff just turns into a billboard when I’m far enough.
The only thing I’m sure about is that I should start making my trees out of cubes instead of cylinders and spheres as they are made out of less tris.
One idea I have is if tree is on a distance you can change it to an image of a tree made out of plane. Image with realistic textures similar to the trees you already have in game would work pretty well. I am not completely sure if it would make performance much better, but sounds like it should.
First of all, we can do it simple or complex way, i prefer simple
Simple:
We disable collisions on parts that are too high to be touched like leaves and branches, we also turn collision fidelty to box and set CanTouch & CanQuerry to false depending on our in-game systems
We use optical illusion by using larger trees sometimes to replace a lot of normal trees soo it will look forest is denser
We enable streaming and LoD on trees
Complex:
We do Simple solutions, apart of streaming
We divide forest into chunks and set chunk’s X,Y coordinates
We create chunk loading system that loads & unloads chunks at certain distances
We set fog to be a little bit shorter than actual render distance soo it will look nicer
Additionally we can loop through chunks that were made visible last change and make details visible, see many objects are invisible from far away
Thanks for these ideas. I’ll try to stick to the simple stuff for now and work on the chunk system once the game is done or if the performance starts to get really bad.