Bläddra i källkod

Allow box lightness to be set

Temdog007 6 år sedan
förälder
incheckning
a621afdf8a
1 ändrade filer med 21 tillägg och 1 borttagningar
  1. 21 1
      examples/webgl_postprocessing_unreal_bloom_selective.html

+ 21 - 1
examples/webgl_postprocessing_unreal_bloom_selective.html

@@ -107,6 +107,8 @@
 				columns: 6,
 				size: 2,
 				zOffset : 5,
+				minLightness : 0,
+				maxLightness : 0.1,
 				scene: "Scene with Glow"
 			};
 
@@ -199,24 +201,28 @@
 			folder.add( params, 'exposure', 0.1, 2 ).onChange( function ( value ) {
 
 				renderer.toneMappingExposure = Math.pow( value, 4.0 );
+				render();
 
 			} );
 
 			folder.add( params, 'bloomThreshold', 0.0, 1.0 ).onChange( function ( value ) {
 
 				bloomPass.threshold = Number( value );
+				render();
 
 			} );
 
 			folder.add( params, 'bloomStrength', 0.0, 3.0 ).onChange( function ( value ) {
 
 				bloomPass.strength = Number( value );
+				render();
 
 			} );
 
 			folder.add( params, 'bloomRadius', 0.0, 1.0 ).step( 0.01 ).onChange( function ( value ) {
 
 				bloomPass.radius = Number( value );
+				render();
 
 			} );
 
@@ -230,6 +236,10 @@
 
 			folder.add( params, 'zOffset', 0, 10 ).onChange( setupBoxes );
 
+			folder.add( params, 'minLightness', 0, 1 ).onChange( setupBoxes );
+
+			folder.add( params, 'maxLightness', 0, 1 ).onChange( setupBoxes );
+
 			setupBoxes();
 
 			function onDocumentMouseClick( event ) {
@@ -272,14 +282,24 @@
 				var rows = params.rows;
 				var size = params.size;
 				var zOffset = params.zOffset;
+				var minLightness = params.minLightness;
+				var maxLightness = params.maxLightness;
+
 				scene.traverse(disposeMaterial);
 				scene.children.length = 0;
+
+				var hsl = {h : 0, s : 0, l : 0};
 				for ( var x = - columns * size / 2; x < columns * size / 2; x += size ) {
 
 					for ( var y = - rows * size / 2; y < rows * size / 2; y += size ) {
 
+						var color = new THREE.Color(Math.floor( Math.random() * 0xffffff ));
+						color.getHSL(hsl);
+						hsl.l = Math.min(Math.max(minLightness, hsl.l), maxLightness);
+						color.setHSL(hsl.h, hsl.s, hsl.l);
+
 						var box = new THREE.Mesh( getGeometry(), new THREE.MeshBasicMaterial( {
-							color: Math.floor( Math.random() * 0xffffff )
+							color: color
 						} ) );
 						box.position.set( x, y, -zOffset + Math.random() * zOffset * 2 );
 						scene.add( box );