i think that blender don’t have enough features for optimizing viewport display (for too complex objects)
here’s a first concept:
Display as X object
In the object display Viewport display properties, let user choose his display object.
for example: user choose 'display as “low_poly_tree.001” and the low poly object is going to used only in viewport. in rendered view and final render the high poly tree is going to be rendered. (exactly like display as bounding boxes)
here’s another concept:
"display as decimated"
it just remove 60% of all vertex of designed object in the viewport only. a high poly tree could be really more optimized. here’s a test with my addon and a automated mask modifier set up.
the framerate is much better after this optimisation.
here’s a third concept.
display as point cloud.
the autor of the point cloud visualizer addon is helping me on that. unfortunately he is forced to analyse the depsgraph on any particles system parameters change in order to redraw the point cloud each time !
Converting a mesh to a point cloud can easely be done in python (go check PCV addon). the only missing part is to have this option in the object viewport display setting.
If we could display an object as a point cloud things could get really easy for everyone out there that have too demanding assets.
Those kind of viewport optimisation features are really important. right now our only options are bounding boxes which aren’t handy at all…
With the Scatter addon we are actively trying to find addon tricks to get thoses features for our users but well, if thoses options could be integrated by default in the object properties-> Viewport display it could be really handy for a lot of environnement and archviz artists out there…
Tricks are great but an official proper support could be amazing.