Garrett Johnson vor 5 Jahren
Ursprung
Commit
b841876f8f
4 geänderte Dateien mit 17 neuen und 4 gelöschten Zeilen
  1. 7 1
      example/index.js
  2. 2 2
      src/base/TilesRendererBase.js
  3. 2 1
      src/base/traverseFunctions.js
  4. 6 0
      src/three/TilesRenderer.js

+ 7 - 1
example/index.js

@@ -31,6 +31,7 @@ let statsContainer, stats;
 
 let params = {
 
+	'enableUpdate': true,
 	'enableRaycast': false,
 	'enableCacheDisplay': false,
 	'orthographic': false,
@@ -191,6 +192,7 @@ function init() {
 	debug.open();
 
 	gui.add( params, 'showThirdPerson' );
+	gui.add( params, 'enableUpdate' );
 	gui.add( params, 'enableRaycast' );
 	gui.add( params, 'enableCacheDisplay' );
 	gui.add( params, 'reload' );
@@ -318,7 +320,11 @@ function animate() {
 	tiles.setResolutionFromRenderer( renderer );
 
 	// update tiles
-	tiles.update();
+	if ( params.enableUpdate ) {
+
+		tiles.update();
+
+	}
 	window.tiles = tiles;
 
 	offsetParent.rotation.set( 0, 0, 0 );

+ 2 - 2
src/base/TilesRendererBase.js

@@ -63,13 +63,13 @@ export class TilesRendererBase {
 
 	}
 
-	traverse( cb ) {
+	traverse( beforecb, aftercb ) {
 
 		const tileSets = this.tileSets;
 		const rootTileSet = tileSets[ this.rootURL ];
 		if ( ! rootTileSet || ! rootTileSet.root ) return;
 
-		traverseSet( rootTileSet.root, cb );
+		traverseSet( rootTileSet.root, beforecb, aftercb );
 
 	}
 

+ 2 - 1
src/base/traverseFunctions.js

@@ -212,7 +212,7 @@ export function skipTraversal( tile, renderer ) {
 	}
 
 	const errorRequirement = renderer.errorTarget * renderer.errorThreshold;
-	const meetsSSE = tile.__error < errorRequirement;
+	const meetsSSE = tile.__error <= errorRequirement;
 	const hasContent = ! tile.__contentEmpty;
 	const loadedContent = tile.__loadingState === LOADED && ! tile.__contentEmpty;
 	const children = tile.children;
@@ -222,6 +222,7 @@ export function skipTraversal( tile, renderer ) {
 		const c = children[ i ];
 		if ( isUsedThisFrame( c, frameCount ) ) {
 
+			// TODO: This doesn't seem right -- we should check down to the next children with content?
 			const childContent = c.__loadingState === LOADED || tile.__contentEmpty;
 			allChildrenHaveContent = allChildrenHaveContent && childContent;
 

+ 6 - 0
src/three/TilesRenderer.js

@@ -459,6 +459,12 @@ export class TilesRenderer extends TilesRendererBase {
 
 	calculateError( tile ) {
 
+		if ( tile.geometricError === 0.0 ) {
+
+			return 0.0;
+
+		}
+
 		const cached = tile.cached;
 		const cameras = this.cameras;