|
@@ -138,93 +138,87 @@ export class DebugTilesRenderer extends TilesRenderer {
|
|
|
|
|
|
const errorTarget = this.errorTarget;
|
|
|
const colorMode = this.colorMode;
|
|
|
- const visibleSet = this.visibleSet;
|
|
|
- this.traverse( tile => {
|
|
|
+ const visibleTiles = this.visibleTiles;
|
|
|
+ visibleTiles.forEach( tile => {
|
|
|
|
|
|
const scene = tile.cached.scene;
|
|
|
- if ( visibleSet.has( scene ) ) {
|
|
|
-
|
|
|
- scene.traverse( c => {
|
|
|
-
|
|
|
- const currMaterial = c.material;
|
|
|
- if ( currMaterial ) {
|
|
|
-
|
|
|
- const originalMaterial = c[ ORIGINAL_MATERIAL ];
|
|
|
- if ( colorMode === NONE && currMaterial !== originalMaterial ) {
|
|
|
-
|
|
|
- c.material.dispose();
|
|
|
- c.material = c[ ORIGINAL_MATERIAL ];
|
|
|
+ scene.traverse( c => {
|
|
|
|
|
|
- } else if ( colorMode !== NONE && currMaterial === originalMaterial ) {
|
|
|
+ const currMaterial = c.material;
|
|
|
+ if ( currMaterial ) {
|
|
|
|
|
|
- c.material = new MeshBasicMaterial();
|
|
|
+ const originalMaterial = c[ ORIGINAL_MATERIAL ];
|
|
|
+ if ( colorMode === NONE && currMaterial !== originalMaterial ) {
|
|
|
|
|
|
- }
|
|
|
+ c.material.dispose();
|
|
|
+ c.material = c[ ORIGINAL_MATERIAL ];
|
|
|
|
|
|
- switch ( colorMode ) {
|
|
|
+ } else if ( colorMode !== NONE && currMaterial === originalMaterial ) {
|
|
|
|
|
|
- case DEPTH: {
|
|
|
+ c.material = new MeshBasicMaterial();
|
|
|
|
|
|
- const val = tile.__depth / maxDepth;
|
|
|
- c.material.color.setRGB( val, val, val );
|
|
|
- break;
|
|
|
+ }
|
|
|
|
|
|
- }
|
|
|
- case SCREEN_ERROR: {
|
|
|
+ switch ( colorMode ) {
|
|
|
|
|
|
- const val = tile.__error / errorTarget;
|
|
|
- if ( val > 1.0 ) {
|
|
|
+ case DEPTH: {
|
|
|
|
|
|
- c.material.color.setRGB( 1.0, 0.0, 0.0 );
|
|
|
+ const val = tile.__depth / maxDepth;
|
|
|
+ c.material.color.setRGB( val, val, val );
|
|
|
+ break;
|
|
|
|
|
|
- } else {
|
|
|
+ }
|
|
|
+ case SCREEN_ERROR: {
|
|
|
|
|
|
- c.material.color.setRGB( val, val, val );
|
|
|
+ const val = tile.__error / errorTarget;
|
|
|
+ if ( val > 1.0 ) {
|
|
|
|
|
|
- }
|
|
|
- break;
|
|
|
+ c.material.color.setRGB( 1.0, 0.0, 0.0 );
|
|
|
|
|
|
- }
|
|
|
- case GEOMETRIC_ERROR: {
|
|
|
+ } else {
|
|
|
|
|
|
- const val = Math.min( tile.geometricError / maxError, 1 );
|
|
|
c.material.color.setRGB( val, val, val );
|
|
|
- break;
|
|
|
|
|
|
}
|
|
|
- case DISTANCE: {
|
|
|
+ break;
|
|
|
|
|
|
- // TODO
|
|
|
- // Allow custom scaling
|
|
|
- const val = Math.min( tile.cached.distance / maxDistance, 1 );
|
|
|
- c.material.color.setRGB( val, val, val );
|
|
|
- break;
|
|
|
+ }
|
|
|
+ case GEOMETRIC_ERROR: {
|
|
|
|
|
|
- }
|
|
|
- case IS_LEAF: {
|
|
|
+ const val = Math.min( tile.geometricError / maxError, 1 );
|
|
|
+ c.material.color.setRGB( val, val, val );
|
|
|
+ break;
|
|
|
|
|
|
- if ( ! tile.children || tile.children.length === 0 ) {
|
|
|
+ }
|
|
|
+ case DISTANCE: {
|
|
|
|
|
|
- c.material.color.set( 0xffffff );
|
|
|
+ // TODO
|
|
|
+ // Allow custom scaling
|
|
|
+ const val = Math.min( tile.cached.distance / maxDistance, 1 );
|
|
|
+ c.material.color.setRGB( val, val, val );
|
|
|
+ break;
|
|
|
|
|
|
- } else {
|
|
|
+ }
|
|
|
+ case IS_LEAF: {
|
|
|
|
|
|
- c.material.color.set( 0 );
|
|
|
+ if ( ! tile.children || tile.children.length === 0 ) {
|
|
|
|
|
|
- }
|
|
|
- break;
|
|
|
+ c.material.color.set( 0xffffff );
|
|
|
|
|
|
- }
|
|
|
+ } else {
|
|
|
|
|
|
+ c.material.color.set( 0 );
|
|
|
|
|
|
+ }
|
|
|
+ break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
- } );
|
|
|
+ }
|
|
|
|
|
|
- }
|
|
|
+ } );
|
|
|
|
|
|
} );
|
|
|
|