![]() |
Attention | Topic was automatically imported from the old Question2Answer platform. |
![]() |
Asked By | Wallace99 |
I have a terrain model exported from blender(it was generated from a heightmap and has about 16k faces), in my scene there are also 1400 trees which are 140 faces each. So all up about 220k faces. When adding the trees and terrain to my scene, the framerate drops from 60 to 40ish which lead to my thinking I must either be doing something wrong or need to do some optimising. I have heard Godot is not well suited to this sort of thing currently but I’d like to try optimise where I can.
Should I be trying to reduce the faces in my terrain? Or using MultiMesh? I have clumps of tree models in forests so perhaps each forest should be in a MultiMesh? Then I have also read about whether I should be trying to load parts of the terrain in chunks.
16k faces per se is basically “nothing” even on mobile devices. But if you use some specific shader for the terrain (i.e. a splatmap shader) that could be part of the performance degradation.
The trees most certainly would profit from LOD. But you’d have to script it yourself. Make sure that the script won’t worsen the performance though (i.e. 1400 scripts with a _process handler each is a bad idea).
LOD would mean either just toggling the visibility of the trees or replacing them with lower detailed meshes, maybe even with a simple billboard texture (using alpha or alpha scissors transparency). Also using MultiMesh might simplify the LOD approach as you will have less nodes to process (transition might be more noticable though).
Anyway I’d evaluate each step one by one.
wombatstampede | 2020-03-30 10:09