@@ -445,24 +445,28 @@ export class TilesRendererBase {
445445
446446 /**
447447 * LRU cache managing loaded tile lifecycle and memory eviction.
448+ * @note Cannot be replaced once `update()` has been called for the first time.
448449 * @type {LRUCache }
449450 */
450451 this . lruCache = lruCache ;
451452
452453 /**
453- * Priority queue controlling concurrent tile downloads.
454+ * Priority queue controlling concurrent tile downloads. Max jobs defaults to `25`.
455+ * @note Cannot be replaced once `update()` has been called for the first time.
454456 * @type {PriorityQueue }
455457 */
456458 this . downloadQueue = downloadQueue ;
457459
458460 /**
459- * Priority queue controlling concurrent tile parsing.
461+ * Priority queue controlling concurrent tile parsing. Max jobs defaults to `5`.
462+ * @note Cannot be modified once `update()` has been called for the first time.
460463 * @type {PriorityQueue }
461464 */
462465 this . parseQueue = parseQueue ;
463466
464467 /**
465- * Priority queue controlling deferred tile child preprocessing.
468+ * Priority queue for expanding and initializing tiles for traversal. Max jobs defaults to `25`.
469+ * @note Cannot be replaced once `update()` has been called for the first time.
466470 * @type {PriorityQueue }
467471 */
468472 this . processNodeQueue = processNodeQueue ;
@@ -510,15 +514,21 @@ export class TilesRendererBase {
510514 // options
511515
512516 /**
513- * Target screen-space error in pixels. Tiles with a higher SSE are subdivided.
517+ * Target screen-space error in pixels to aim for when updating the geometry. Tiles will
518+ * not render if they are below this level of screen-space error. See the
519+ * {@link https://github.com/CesiumGS/3d-tiles/tree/master/specification#geometric-error geometric error section}
520+ * of the 3D Tiles specification for more information.
514521 * @type {number }
515522 */
516523 this . errorTarget = 16.0 ;
517524 this . _errorThreshold = Infinity ;
518525
519526 /**
520- * If true, tiles are displayed at their current LOD while waiting for higher-detail
521- * children to finish loading, rather than hiding them.
527+ * "Active tiles" are those that are loaded and available but not necessarily visible.
528+ * These tiles are useful for raycasting off-camera or for casting shadows. Active tiles
529+ * not currently in a camera frustum are removed from the scene as an optimization.
530+ * Setting this to `true` keeps them in the scene so they can be rendered from an outside
531+ * camera view not accounted for by the tiles renderer.
522532 * @type {boolean }
523533 */
524534 this . displayActiveTiles = false ;
@@ -530,20 +540,38 @@ export class TilesRendererBase {
530540 this . maxDepth = Infinity ;
531541
532542 /**
533- * If true, uses an optimized traversal strategy that prioritizes distance over error.
543+ * **Experimental.** Enables an optimized tile loading strategy that loads only the tiles
544+ * needed for the current view, reducing memory usage and improving initial load times.
545+ * Tiles are loaded independently based on screen-space error without requiring all parent
546+ * tiles to load first. Prevents visual gaps and flashing during camera movement.
547+ *
548+ * Based in part on {@link https://cesium.com/learn/cesium-native/ref-doc/selection-algorithm-details.html Cesium Native tile selection}.
549+ *
550+ * Default is `false`, which uses the previous approach of loading all parent and sibling
551+ * tiles for guaranteed smooth transitions.
552+ * @warn Setting is currently incompatible with plugins that split tiles and on-the-fly generate and
553+ * dispose of child tiles including the `ImageOverlayPlugin` `enableTileSplitting` setting,
554+ * `QuantizedMeshPlugin`, & `ImageFormatPlugin` subclasses (XYZ, TMS, etc). Any tile sets
555+ * that share caches or queues must also use the same setting.
534556 * @type {boolean }
535557 */
536558 this . optimizedLoadStrategy = false ;
537559
538560 /**
539- * If true, sibling tiles of visible tiles are also loaded to reduce pop-in during camera movement.
561+ * **Experimental.** When `true`, sibling tiles are loaded together to prevent gaps during
562+ * camera movement. When `false`, only visible tiles are loaded, minimizing memory but
563+ * potentially causing brief gaps during rapid movement.
564+ *
565+ * Only applies when `optimizedLoadStrategy` is enabled.
540566 * @type {boolean }
541567 */
542568 this . loadSiblings = true ;
543569
544570 /**
545- * Maximum number of tile children to preprocess per `update` call. Excess tiles are deferred
546- * to `processNodeQueue`.
571+ * The number of tiles to process immediately when traversing the tile set to determine
572+ * what to render. Lower numbers prevent frame hiccups caused by processing too many tiles
573+ * at once when a new tile set is available, while higher values process more tiles
574+ * immediately so data can be downloaded and displayed sooner.
547575 * @type {number }
548576 */
549577 this . maxTilesProcessed = 250 ;
0 commit comments