LODTransitionStrategy Enumeration

public enum LODTransitionStrategy

This stategy determines what is prioritized when performing LOD transitions on a given World Grouping. The field is found on the World component under Default World Settings, however you can override that general setting for a specific World Grouping under the World Grouping's World Grouping Overrides section. Please consider that for any LOD transition, there is an LOD From World Cell (the LOD being transitioned from) and an LOD To World Cell (the LOD being transitioned to). Keep this in mind when reading about the different strategies.

SAM makes every attempt to reuse Asset Chunks when a World Cell to be deactivated and a World Cell to be activated have the same Streamable Grid index (meaning the two cells use the same Asset Chunks). This is what is meant by reusing chunks when reading the below paragraphs.

Fields

Name Value Description
PrioritizeMemory 0 Prioritize reducing the memory footprint as much as possible when performing LOD transitions.

With this strategy, transitions FROM LOD 1 TO LODs GREATER THAN 1 will be performed first, and then transitions FROM LODs GREATER THAN 1 TO LOD 1 will be performed after. This strategy gives the cells being transitioned TO LOD 1 a greater chance of reusing Asset Chunks, reducing the chance of new chunks having to be loaded.

In addition, after the FROM LODs GREATER THAN 1 TO LOD 1 transitions are processed (resulting in the LOD 1 chunks being visible), we know that there will be no more transition to World Cells on LOD 1, therefore we can pass along any remaining chunks from LOD 1 deactivated cells (either from transition TO LOD 1 cells or non transitioned deactivated World Cells) to non transitioned LOD 1 World Cells that have yet to be activated. Then, if there are any remaining chunks, we can pass them along to the Chunk Manager, which should either pool the chunks or pass them to the Chunk Streamer for unloading from the scene. This process results in uneeded LOD 1 chunks (which generally take up the most memory) being unloaded from the scene faster than in any other strategy.

After processing FROM LOD 1 TO LODs GREATER THAN 1 transitions and FROM LODs GREATER THAN 1 TO LOD 1, the World Grouping looks for LOD 2 to LODs GREATER THAN 2 transitions and processes them, then FROM LODs GREATER THAN 2 TO LOD 2 transitions, and the process repeats until all transitions are processed and all unused chunks are pooled or unloaded from the scene.

The drawback with this strategy is that Asset Chunks further away from the player may be transitioned before Asset Chunks closer to the player. If this is not a concern for you, then you should choose this strategy.
PrioritizeProximity 1 Prioritize changing higher quality LODs first, which under normal circumstances, should be closer to your player (thus the Proximity keyword).

With this strategy, all transitions FROM LODs GREATER THAN 1 TO LOD 1 are processed first, followed by all transitions from LODs NOT EQUAL TO 2 to LOD 2, then FROM LODs NOT EQUAL TO 3 TO LOD 3, and so on. As you can hopefully see, this strategy introduces a 0% chance of transitioned FROM LOD 1 World Cell chunks being resused by other transitions. The chance of reuse increases for each LOD processed (for example, after processing LODs GREATER THAN 1 TO LOD 1 transitions, there may be transition FROM LOD 2 World Cell chunks that can be used during the LOD NOT EQUAL TO 2 TO LOD 2 transitions). Even so, keep in mind that transitions can still make use of non transitioned, already deactivated cells, and non transitioned LOD cells yet to be activated can still make use of the chunks of transition FROM World Cells.

With this strategy, all transitions are processed before passing along unused World Cell chunks to non transitioned World Cells yet to be activated, and then after that, unused chunks are passed along to the Chunk Manager for pooling or unloading. As such, this is the least memory efficient stategy of the three.

The advantage is that Asset Chunks closer to the player should theoretically be transitioned more quickly, which reduces the possibility of the player noticing the transition (if they are transitioned later, the player may get closer to the objects where they can notice the transition more easily).
PrioritizeUpgrades 2 Prioritize processing LOD upgrades (a transition from a larger number LOD to a smaller value LOD, like LODs 2->1, 3->1, etc.) before downgrades (LODs 1->2, 1->3, 1->4, 2->3, etc.).

This strategy is somewhat of a balance between Prioritize Memory and Prioritize Proximity. Because LOD upgrades are usually triggered by the player moving towards an area and downgrades triggered by the player moving away from an area, typically objects closer to the players view will be transitioned first while objects farther away from the view will be transitioned last. However, if the player is moving in one direction but facing the other, this might not be the case. Thus, it is closer to Prioritize Proximity than Prioritize Memory is.

First, upgrades FROM LODs GREATER THAN 1 TO LOD 1 are processed, followed by upgrades FROM LODS GREATER THAN 2 TO LOD 2, and so on. This ensures that upgrades closer to the player are processed first. After processing all upgrades, downgrades FROM LOD 1 TO LODs GREATER THAN 1 are processed, followed by downgrades FROM LOD 2 TO LODs GREATER THAN 2, and so on.

With regards to memory use, there are two advantages PrioritizeUpgrades has over Prioritize Proximity.

First, while no FROM LOD 1 World Cell chunks can be reused (since these cells are in the downgrade category and thus won't be processed yet), the first processing step (involving FROM LODs GREATER THAN 1 TO LOD 1 transitions) does open up the possibility of some FROM LOD 2, 3, etc. World Cells being reused in subsequent processing steps (for example, a FROM LOD 2 TO 1 transition occurs, freeing up chunks from LOD 2. These chunks might then be reused in a TO LOD 2 transition World Cell).

Second, after the first downgrade processing step (transitioning LOD 1 TO LODs GREATER THAN 1), we can start passing along unused LOD 1 chunks to non transitioned yet to be activated World Cells, and after that pass remaining unused LOD 1 chunks to the Chunk Manager for pooling or unloading. All before continuing on to the next processing step (transitioning LOD 2 TO LODs GREATER THAN 2). Thus, we start freeing memory sooner than we would with the Prioritize Proximity strategy (which must wait until after all transitions have been processed before freeing memory).