Optimization

Particle Count.

Your particle number is what will mostly cripple your viewport refreshrate.

You will not be able to work with a particle system efficiently if you are not able to control your particle count. There's multiple solutions at your disposal.

one of the most obvious, is hiding the particles you are not working with by pressing on the ''computer screen'' icon. This button will hide your particle system only in the viewport, not in the final render. This button is located per particles row inside your main particle selection area in the tweaking panel, or in the creation panel where a statistic feature is available to quickly control what's displayed and what's not.

If you desire to hide all your terrain particles at once (if the computer is freezing because of massive particle-count for example) search for the "hide all target particles" operator.

The second solution is the "Hide Percentage" property. This property will hide n amount of particles depending on the percentage value, only in your 3D viewport.

You can have a clear indication of the particle-count showing up on viewport or on render just under this property.

Note that this technique is not as effective, 1% of 1 million particles may still hurt your performance a bit more compared to having 100% of 100k particles.

Next to the property there's a rendered icon button, if toggled to True, all percentages will be automatically on 100% on rendered view, then reset back to original values when the viewport render is back to solid.


When creating your particle system by using the preset or the biome workflow, the created system may be either hidden by default, as you have the ability to hide particles or reduce particles percentage on creation (see creation>creation behavior>universal options).

Or they may be hidden automatically by automatic security actions, Scatter will try to protect you from crashes when you create a particle system with too many particles (see creation>security actions). More about security actions in Scattering behaviors.



Instances Polycount.

The more your instance mesh have polys, the more your computer will stutter.

Ideally, we'd need to choose assets with details adapted to our scenes perspectives, but we all know mosts assets available on the market for ray traced sofwares are way too high poly, so will be our job to deal with the consequent slowdowns.

Natively, blender only solution to optimize an asset in the viewport is the bounding box display option. You can reach it natively in blender "Properties " > "Object" > "Viewport Display " > "Display as" or quickly toggle it in Scatter "Tweaking " > "Instances " > "bounding box Button".


LOD's and Proxies.

Lodify is a free in-house solution for displaying high-poly assets smoothly in the viewport.

A 'Proxy' in the digital world means a lot of things, in the archviz/environmental art industry it mainly refer to a simple concept: replace a high-poly mesh by a custom low-poly mesh, only in the viewport, and use the full resolution asset in the final render.

Most 3D packages disposes of such system but not Blender, so we decided to created "Proxify" that quickly evolved into "Lodify", a free universal Level of detail addon, already adopted by addons such as Graswald or shipped directly with products such as Terrascape.

Note that blender kinda dispose of a 'proxy' system already, newly renamed 'library override', but it's a specific system meant to be used for teams in animation workflow for rigging and animating a character. Not quite the tool environmental and archviz artists are expecting.

Get the level of detail you need.

Use _high in the viewport and _low inside the viewport automatically.

operator that generate and set up proxy automatically, Introduced in Lodify 0.2

Lodify principle is quite simple and really easy to use:

  • it's a mesh data exchanger, it will exchange mesh-data while in viewport/rendered view/final render according to an ui-list and boolean values in properties>meshdata>level of detail.

  • To create level of details, first enable the level of detail boolean, then create multiple LOD slots, assign each slots pointer to an object-mesh then choose if the mesh should be displayed in viewport/ rendered view/ final render. Note that you may want to use the same naming system for the mesh-data as we use with scatter assets (_low/_high/_proxy as suffix for each LODs).

  • As Lodify is a mesh-data exchanger, don't rely on modifiers other than for animation.

  • Feel free to ship lodify with your commercial models if you'd like support multiple LOD's for your customers. Additional explanations are available in the lodify dev thread.

  • Scatter disposes of an interface dedicated to batch enable/disable or batch change active LOD status by name ending in "Scatter" >"Tweaking">"Level of Detail". You can also quickly individually change your LOD's in the "Scatter">"Tweaking">"Instance" panel. Please keep in mind this information, you might be tempted to directly start using Lodify within Scatter interface but don't forget that this is an interface only designed to batch change properties of Lodify. I strongly recommend to learn lodify by itself before playing with the builtin Scatter lodify interface.

  • Important precision: render.lock_interface will be enabled when using Lodify.


Point Cloud Rendering.

An experimental solution to ease your 3D viewport performance.

Thanks to Jakub uhlik, an experimental point cloud generation display option is available in the tweaking panel.

This point-cloud visualization technique is extremely customizable and will for sure optimize your viewport if you are working with meshes composed from millions of polygons.

if you are interested in this technology, check out Point Cloud Visualizer on the blender market.



Visualization

Point Cloud main panel, here you can 'Start' / 'Stop' viewport point cloud visualization for all Targets or selected systems on current Target, choose drawing mode 'Full' or 'Origins' (single point per instance) and point size.

'Stats' provides quick info about how many instances is currently visualized.

Instances

In this panel, you can change how each instance is drawn to viewport. First click 'Refresh List' and based on 'Influence' list of instances will be populated.

Then you can select instance object from list and set its options like size of points, whether points are generated from polygons or vertices, maximum number of points per instance and how are points colorized.

With 'Apply To Checked Instances' you can apply settings from currently selected instance to other in the instance list. Settings are applied only to checked instances (checkbox on right of instance object name).

Global

Global settings for point cloud visualization.

'Quality': Basic - Basic pixel point based shader with flat colors, simple and fast shader,Rich - Rich billboard shader with phong shading, better, but slightly slower. 'Update Method': Change point cloud update method. MSGBUS method updates only when settings are changed, DEPSGRAPH updates on any change in scene, this is more computer demanding, but more accurate, and MANUAL where point cloud is updated only when hitting 'Update' button in 'Visualization' panel.

Exit Display Settings: you can choose how instances are drawn to viewport when Point Cloud is disabled or when blend file is saved. 'Auto Switch TO Origins Only', when 'Threshold' number of instances per system is reached, it will switch to 'Origins' drawing mode to keep performance.