Browse Source

[debug] - add random node color option to colorize each node within the scene, adjust screen error to go from red to green

Dave Buchhofer 4 years ago
parent
commit
6330796298

+ 2 - 1
src/base/TilesRendererBase.d.ts

@@ -1,9 +1,10 @@
 import { LRUCache } from '../utilities/LRUCache';
 import { LRUCache } from '../utilities/LRUCache';
 import { PriorityQueue } from '../utilities/PriorityQueue';
 import { PriorityQueue } from '../utilities/PriorityQueue';
+import { Tileset } from './Tileset';
 
 
 export class TilesRendererBase {
 export class TilesRendererBase {
 
 
-	readonly rootTileset : Object | null;
+	readonly rootTileset : Tileset | null;
 	readonly root : Object | null;
 	readonly root : Object | null;
 
 
 	errorTarget : Number;
 	errorTarget : Number;

+ 1 - 1
src/three/DebugTilesRenderer.d.ts

@@ -9,7 +9,7 @@ export const DEPTH : ColorMode;
 export const RELATIVE_DEPTH : ColorMode;
 export const RELATIVE_DEPTH : ColorMode;
 export const IS_LEAF : ColorMode;
 export const IS_LEAF : ColorMode;
 export const RANDOM_COLOR : ColorMode;
 export const RANDOM_COLOR : ColorMode;
-
+export const RANDOM_NODE_COLOR: ColorMode;
 export class DebugTilesRenderer extends TilesRenderer {
 export class DebugTilesRenderer extends TilesRenderer {
 
 
 	displayBoxBounds : Boolean;
 	displayBoxBounds : Boolean;

+ 25 - 4
src/three/DebugTilesRenderer.js

@@ -16,6 +16,7 @@ export const DEPTH = 4;
 export const RELATIVE_DEPTH = 5;
 export const RELATIVE_DEPTH = 5;
 export const IS_LEAF = 6;
 export const IS_LEAF = 6;
 export const RANDOM_COLOR = 7;
 export const RANDOM_COLOR = 7;
+export const RANDOM_NODE_COLOR = 8;
 
 
 export class DebugTilesRenderer extends TilesRenderer {
 export class DebugTilesRenderer extends TilesRenderer {
 
 
@@ -201,6 +202,14 @@ export class DebugTilesRenderer extends TilesRenderer {
 
 
 			scene.traverse( c => {
 			scene.traverse( c => {
 
 
+				if ( colorMode === RANDOM_NODE_COLOR ) {
+
+					h = Math.random();
+					s = 0.5 + Math.random() * 0.5;
+					l = 0.375 + Math.random() * 0.25;
+
+				}
+
 				const currMaterial = c.material;
 				const currMaterial = c.material;
 				if ( currMaterial ) {
 				if ( currMaterial ) {
 
 
@@ -229,7 +238,7 @@ export class DebugTilesRenderer extends TilesRenderer {
 
 
 					}
 					}
 
 
-					if ( colorMode !== RANDOM_COLOR ) {
+					if ( colorMode !== RANDOM_COLOR && colorMode !== RANDOM_NODE_COLOR ) {
 
 
 						delete c.material[ HAS_RANDOM_COLOR ];
 						delete c.material[ HAS_RANDOM_COLOR ];
 
 
@@ -241,7 +250,8 @@ export class DebugTilesRenderer extends TilesRenderer {
 						case DEPTH: {
 						case DEPTH: {
 
 
 							const val = tile.__depth / maxDepth;
 							const val = tile.__depth / maxDepth;
-							c.material.color.setRGB( val, val, val );
+							/** map higher depth values to red, lower to green, lerping by hue */
+							c.material.color.setHSL( MathUtils.mapLinear( val, 0, 1, 0.9, 0.1 ), 1, 0.5 );
 							break;
 							break;
 
 
 						}
 						}
@@ -261,8 +271,8 @@ export class DebugTilesRenderer extends TilesRenderer {
 
 
 							} else {
 							} else {
 
 
-								const v = MathUtils.mapLinear( val, 1, 0, 0.1, 1 );
-								c.material.color.setRGB( v, v, v );
+								/** map higher error values to red, lower to green, lerping by hue */
+								c.material.color.setHSL( MathUtils.mapLinear( val, 0, 1, 0.43, 0 ), 1, 0.5 );
 
 
 							}
 							}
 							break;
 							break;
@@ -298,6 +308,17 @@ export class DebugTilesRenderer extends TilesRenderer {
 							break;
 							break;
 
 
 						}
 						}
+						case RANDOM_NODE_COLOR: {
+
+							if ( ! c.material[ HAS_RANDOM_COLOR ] ) {
+
+								c.material.color.setHSL( h, s, l );
+								c.material[ HAS_RANDOM_COLOR ] = true;
+
+							}
+							break;
+
+						}
 						case RANDOM_COLOR: {
 						case RANDOM_COLOR: {
 
 
 							if ( ! c.material[ HAS_RANDOM_COLOR ] ) {
 							if ( ! c.material[ HAS_RANDOM_COLOR ] ) {