Browse Source

Merge branch 'dev' into SpecularGlossiness

Takahiro 8 years ago
parent
commit
2f430ff05a

+ 0 - 8
docs/api/math/Matrix4.html

@@ -363,14 +363,6 @@ x, y, 1, 0,
 		<h3>[method:Matrix4 multiplyScalar]( [page:Float s] )</h3>
 		<h3>[method:Matrix4 multiplyScalar]( [page:Float s] )</h3>
 		<div>Multiplies every component of the matrix by a scalar value [page:Float s].</div>
 		<div>Multiplies every component of the matrix by a scalar value [page:Float s].</div>
 
 
-		<h3>[method:Matrix4 multiplyToArray]( [page:Matrix4 a], [page:Matrix4 b], [page:Array r] )</h3>
-		<div>
-		Sets this matrix to [page:Matrix4 a] x [page:Matrix4 b] and stores the result into the flat array [page:Array r],
-		in [link:https://en.wikipedia.org/wiki/Row-_and_column-major_order#Column-major_order column-major] order.
-
-		[page:Array r] can be either a regular Array or a [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays TypedArray].
-		</div>
-
 		<h3>[method:Matrix4 premultiply]( [page:Matrix4 m] )</h3>
 		<h3>[method:Matrix4 premultiply]( [page:Matrix4 m] )</h3>
 		<div>Pre-multiplies this matrix by [page:Matrix4 m].</div>
 		<div>Pre-multiplies this matrix by [page:Matrix4 m].</div>
 
 

+ 12 - 1
docs/index.css

@@ -167,7 +167,7 @@ iframe {
 		position: absolute;
 		position: absolute;
 		left: 0;
 		left: 0;
 		top: 0;
 		top: 0;
-		height: 480px;
+		height: 100%;
 		width: 100%;
 		width: 100%;
 		right: 0;
 		right: 0;
 		z-index: 100;
 		z-index: 100;
@@ -175,6 +175,17 @@ iframe {
 		border-bottom: 1px solid #dedede;
 		border-bottom: 1px solid #dedede;
 	}
 	}
 
 
+	#content{
+		position: absolute;
+		left: 0;
+		top: 90px;
+		right: 0;
+		bottom: 0;
+		font-size: 17px;
+		line-height: 22px;
+		overflow: auto;
+	}
+
 	#navigation{
 	#navigation{
 		position: absolute;
 		position: absolute;
 		left: 0;
 		left: 0;

+ 3 - 1
docs/index.html

@@ -22,6 +22,7 @@
 				<input type="text" id="filterInput" placeholder="Type to filter">
 				<input type="text" id="filterInput" placeholder="Type to filter">
 				<a href="#" id="clearFilterButton">x</a>
 				<a href="#" id="clearFilterButton">x</a>
 			</div>
 			</div>
+			<div id="content"></div>
 
 
 		</div>
 		</div>
 
 
@@ -32,6 +33,7 @@
 		<script>
 		<script>
 
 
 			var panel = document.getElementById( 'panel' );
 			var panel = document.getElementById( 'panel' );
+			var content = document.getElementById( 'content' );
 			var clearFilterButton = document.getElementById( 'clearFilterButton' );
 			var clearFilterButton = document.getElementById( 'clearFilterButton' );
 			var expandButton = document.getElementById( 'expandButton' );
 			var expandButton = document.getElementById( 'expandButton' );
 			var filterInput = document.getElementById( 'filterInput' );
 			var filterInput = document.getElementById( 'filterInput' );
@@ -98,7 +100,7 @@
 
 
 				// Create the navigation panel using data from list.js
 				// Create the navigation panel using data from list.js
 
 
-				var navigation = createAndAppendDOMElement( { type: 'div', parent: panel } );
+				var navigation = createAndAppendDOMElement( { type: 'div', parent: content } );
 
 
 				for ( var section in list ) {
 				for ( var section in list ) {
 
 

+ 0 - 4
editor/js/libs/tern-threejs/threejs.js

@@ -3831,10 +3831,6 @@
           "!type": "fn(a: +THREE.Matrix4, b: +THREE.Matrix4) -> +THREE.Matrix4",
           "!type": "fn(a: +THREE.Matrix4, b: +THREE.Matrix4) -> +THREE.Matrix4",
           "!doc": "Sets this matrix to *a x b*."
           "!doc": "Sets this matrix to *a x b*."
         },
         },
-        "multiplyToArray": {
-          "!type": "fn(a: +THREE.Matrix4, b: +THREE.Matrix4, r: []) -> +THREE.Matrix4",
-          "!doc": "Sets this matrix to *a x b* and stores the result into the flat array *r*.<br>\n\t\t*r* can be either a regular Array or a TypedArray."
-        },
         "multiplyScalar": {
         "multiplyScalar": {
           "!type": "fn(s: number) -> +THREE.Matrix4",
           "!type": "fn(s: number) -> +THREE.Matrix4",
           "!doc": "Multiplies this matrix by *s*."
           "!doc": "Multiplies this matrix by *s*."

+ 23 - 17
examples/webgl_clipping.html

@@ -16,17 +16,19 @@
 
 
 		<script src="../build/three.js"></script>
 		<script src="../build/three.js"></script>
 		<script src="js/controls/OrbitControls.js"></script>
 		<script src="js/controls/OrbitControls.js"></script>
-
+		<script src="js/libs/stats.min.js"></script>
 		<script src="js/libs/dat.gui.min.js"></script>
 		<script src="js/libs/dat.gui.min.js"></script>
 
 
 		<script>
 		<script>
 
 
-			var camera, scene, renderer, startTime, object;
+			var camera, scene, renderer, startTime, object, stats;
+
+			init();
+			animate();
 
 
 			function init() {
 			function init() {
 
 
-				camera = new THREE.PerspectiveCamera(
-						36, window.innerWidth / window.innerHeight, 0.25, 16 );
+				camera = new THREE.PerspectiveCamera( 36, window.innerWidth / window.innerHeight, 0.25, 16 );
 
 
 				camera.position.set( 0, 1.3, 3 );
 				camera.position.set( 0, 1.3, 3 );
 
 
@@ -64,8 +66,8 @@
 
 
 				// ***** Clipping planes: *****
 				// ***** Clipping planes: *****
 
 
-				var localPlane = new THREE.Plane( new THREE.Vector3( 0, - 1, 0 ), 0.8 ),
-					globalPlane = new THREE.Plane( new THREE.Vector3( - 1, 0, 0 ), 0.1 );
+				var localPlane = new THREE.Plane( new THREE.Vector3( 0, - 1, 0 ), 0.8 );
+				var globalPlane = new THREE.Plane( new THREE.Vector3( - 1, 0, 0 ), 0.1 );
 
 
 				// Geometry
 				// Geometry
 
 
@@ -78,9 +80,9 @@
 						clippingPlanes: [ localPlane ],
 						clippingPlanes: [ localPlane ],
 						clipShadows: true
 						clipShadows: true
 
 
-					} ),
+					} );
 
 
-					geometry = new THREE.TorusKnotGeometry( 0.4, 0.08, 95, 20 );
+				var geometry = new THREE.TorusKnotBufferGeometry( 0.4, 0.08, 95, 20 );
 
 
 				object = new THREE.Mesh( geometry, material );
 				object = new THREE.Mesh( geometry, material );
 				object.castShadow = true;
 				object.castShadow = true;
@@ -88,13 +90,18 @@
 
 
 				var ground = new THREE.Mesh(
 				var ground = new THREE.Mesh(
 						new THREE.PlaneBufferGeometry( 9, 9, 1, 1 ),
 						new THREE.PlaneBufferGeometry( 9, 9, 1, 1 ),
-						new THREE.MeshPhongMaterial( {
-							color: 0xa0adaf, shininess: 150 } ) );
+						new THREE.MeshPhongMaterial( { color: 0xa0adaf, shininess: 150 } )
+					);
 
 
 				ground.rotation.x = - Math.PI / 2; // rotates X/Y to X/Z
 				ground.rotation.x = - Math.PI / 2; // rotates X/Y to X/Z
 				ground.receiveShadow = true;
 				ground.receiveShadow = true;
 				scene.add( ground );
 				scene.add( ground );
 
 
+				// Stats
+
+				stats = new Stats();
+				document.body.appendChild( stats.dom );
+
 				// Renderer
 				// Renderer
 
 
 				renderer = new THREE.WebGLRenderer();
 				renderer = new THREE.WebGLRenderer();
@@ -119,7 +126,7 @@
 				// GUI
 				// GUI
 
 
 				var gui = new dat.GUI(),
 				var gui = new dat.GUI(),
-					folderLocal = gui.addFolder( "Local Clipping" ),
+					folderLocal = gui.addFolder( 'Local Clipping' ),
 					propsLocal = {
 					propsLocal = {
 
 
 						get 'Enabled'() { return renderer.localClippingEnabled; },
 						get 'Enabled'() { return renderer.localClippingEnabled; },
@@ -133,7 +140,7 @@
 
 
 					},
 					},
 
 
-					folderGlobal = gui.addFolder( "Global Clipping" ),
+					folderGlobal = gui.addFolder( 'Global Clipping' ),
 					propsGlobal = {
 					propsGlobal = {
 
 
 						get 'Enabled'() { return renderer.clippingPlanes !== Empty; },
 						get 'Enabled'() { return renderer.clippingPlanes !== Empty; },
@@ -169,8 +176,8 @@
 
 
 			function animate() {
 			function animate() {
 
 
-				var currentTime = Date.now(),
-					time = ( currentTime - startTime ) / 1000;
+				var currentTime = Date.now();
+				var time = ( currentTime - startTime ) / 1000;
 
 
 				requestAnimationFrame( animate );
 				requestAnimationFrame( animate );
 
 
@@ -179,13 +186,12 @@
 				object.rotation.y = time * 0.2;
 				object.rotation.y = time * 0.2;
 				object.scale.setScalar( Math.cos( time ) * 0.125 + 0.875 );
 				object.scale.setScalar( Math.cos( time ) * 0.125 + 0.875 );
 
 
+				stats.begin();
 				renderer.render( scene, camera );
 				renderer.render( scene, camera );
+				stats.end();
 
 
 			}
 			}
 
 
-			init();
-			animate();
-
 		</script>
 		</script>
 
 
 	</body>
 	</body>

+ 8 - 2
examples/webgl_decals.html

@@ -37,13 +37,14 @@
 		<script src="../build/three.js"></script>
 		<script src="../build/three.js"></script>
 		<script src="js/geometries/DecalGeometry.js"></script>
 		<script src="js/geometries/DecalGeometry.js"></script>
 		<script src="js/controls/OrbitControls.js"></script>
 		<script src="js/controls/OrbitControls.js"></script>
+		<script src="js/libs/stats.min.js"></script>
 		<script src="js/libs/dat.gui.min.js"></script>
 		<script src="js/libs/dat.gui.min.js"></script>
 
 
 		<script>
 		<script>
 
 
 		var container = document.getElementById( 'container' );
 		var container = document.getElementById( 'container' );
 
 
-		var renderer, scene, camera, fov = 45;
+		var renderer, scene, camera, stats;
 		var mesh, decal;
 		var mesh, decal;
 		var raycaster;
 		var raycaster;
 		var line;
 		var line;
@@ -101,9 +102,12 @@
 			renderer.setSize( window.innerWidth, window.innerHeight );
 			renderer.setSize( window.innerWidth, window.innerHeight );
 			container.appendChild( renderer.domElement );
 			container.appendChild( renderer.domElement );
 
 
+			stats = new Stats();
+			container.appendChild( stats.dom );
+
 			scene = new THREE.Scene();
 			scene = new THREE.Scene();
 
 
-			camera = new THREE.PerspectiveCamera( fov, window.innerWidth / window.innerHeight, 1, 1000 );
+			camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 1000 );
 			camera.position.z = 120;
 			camera.position.z = 120;
 			camera.target = new THREE.Vector3();
 			camera.target = new THREE.Vector3();
 
 
@@ -299,6 +303,8 @@
 
 
 			renderer.render( scene, camera );
 			renderer.render( scene, camera );
 
 
+			stats.update();
+
 		}
 		}
 
 
 		</script>
 		</script>

+ 30 - 21
examples/webgl_depth_texture.html

@@ -95,10 +95,11 @@
 		<script src="../build/three.js"></script>
 		<script src="../build/three.js"></script>
 		<script src="js/shaders/SSAOShader.js"></script>
 		<script src="js/shaders/SSAOShader.js"></script>
 		<script src="js/controls/OrbitControls.js"></script>
 		<script src="js/controls/OrbitControls.js"></script>
+		<script src="js/libs/stats.min.js"></script>
 
 
 		<script>
 		<script>
 
 
-			var camera, scene, renderer, controls;
+			var camera, scene, renderer, controls, stats;
 			var target;
 			var target;
 			var postScene, postCamera;
 			var postScene, postCamera;
 			var supportsExtension = true;
 			var supportsExtension = true;
@@ -108,12 +109,14 @@
 
 
 			function init() {
 			function init() {
 
 
-				renderer = new THREE.WebGLRenderer( { canvas: document.querySelector('canvas') } );
+				renderer = new THREE.WebGLRenderer( { canvas: document.querySelector( 'canvas' ) } );
+
+				if ( !renderer.extensions.get( 'WEBGL_depth_texture' ) ) {
 
 
-				if ( !renderer.extensions.get('WEBGL_depth_texture') ) {
 					supportsExtension = false;
 					supportsExtension = false;
-					document.querySelector('#error').style.display = 'block';
+					document.querySelector( '#error' ).style.display = 'block';
 					return;
 					return;
+
 				}
 				}
 
 
 				renderer.setPixelRatio( window.devicePixelRatio );
 				renderer.setPixelRatio( window.devicePixelRatio );
@@ -121,6 +124,9 @@
 
 
 				//
 				//
 
 
+				stats = new Stats();
+				document.body.appendChild( stats.dom );
+
 				camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 0.01, 50 );
 				camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 0.01, 50 );
 				camera.position.z = -4;
 				camera.position.z = -4;
 
 
@@ -155,10 +161,10 @@
 			function setupPost () {
 			function setupPost () {
 
 
 				// Setup post processing stage
 				// Setup post processing stage
-				postCamera = new THREE.OrthographicCamera(-1, 1, 1, -1, 0, 1);
-				var postMaterial = new THREE.ShaderMaterial({
-					vertexShader: document.querySelector('#post-vert').textContent.trim(),
-					fragmentShader: document.querySelector('#post-frag').textContent.trim(),
+				postCamera = new THREE.OrthographicCamera( -1, 1, 1, -1, 0, 1 );
+				var postMaterial = new THREE.ShaderMaterial( {
+					vertexShader: document.querySelector( '#post-vert' ).textContent.trim(),
+					fragmentShader: document.querySelector( '#post-frag' ).textContent.trim(),
 					uniforms: {
 					uniforms: {
 						cameraNear: { value: camera.near },
 						cameraNear: { value: camera.near },
 						cameraFar:  { value: camera.far },
 						cameraFar:  { value: camera.far },
@@ -166,20 +172,21 @@
 						tDepth:     { value: target.depthTexture }
 						tDepth:     { value: target.depthTexture }
 					}
 					}
 				});
 				});
-				var postPlane = new THREE.PlaneGeometry(2, 2);
-				var postQuad = new THREE.Mesh(postPlane, postMaterial);
+				var postPlane = new THREE.PlaneBufferGeometry( 2, 2 );
+				var postQuad = new THREE.Mesh( postPlane, postMaterial );
 				postScene = new THREE.Scene();
 				postScene = new THREE.Scene();
-				postScene.add(postQuad);
+				postScene.add( postQuad );
 
 
 			}
 			}
 
 
 			function setupScene () {
 			function setupScene () {
-				var diffuse = new THREE.TextureLoader().load('textures/brick_diffuse.jpg');
+
+				var diffuse = new THREE.TextureLoader().load( 'textures/brick_diffuse.jpg' );
 				diffuse.wrapS = diffuse.wrapT = THREE.RepeatWrapping;
 				diffuse.wrapS = diffuse.wrapT = THREE.RepeatWrapping;
 
 
 				// Setup some geometries
 				// Setup some geometries
-				var geometry = new THREE.TorusKnotGeometry(1, 0.3, 128, 64);
-				var material = new THREE.MeshBasicMaterial({ color: 'blue' });
+				var geometry = new THREE.TorusKnotBufferGeometry( 1, 0.3, 128, 64 );
+				var material = new THREE.MeshBasicMaterial( { color: 'blue' } );
 
 
 				var count = 50;
 				var count = 50;
 				var scale = 5;
 				var scale = 5;
@@ -187,17 +194,17 @@
 				for ( var i = 0; i < count; i ++ ) {
 				for ( var i = 0; i < count; i ++ ) {
 
 
 					var r = Math.random() * 2.0 * Math.PI;
 					var r = Math.random() * 2.0 * Math.PI;
-					var z = (Math.random() * 2.0) - 1.0;
-					var zScale = Math.sqrt(1.0 - z * z) * scale;
+					var z = ( Math.random() * 2.0 ) - 1.0;
+					var zScale = Math.sqrt( 1.0 - z * z ) * scale;
 
 
-					var mesh = new THREE.Mesh(geometry, material);
+					var mesh = new THREE.Mesh( geometry, material );
 					mesh.position.set(
 					mesh.position.set(
-						Math.cos(r) * zScale,
-						Math.sin(r) * zScale,
+						Math.cos( r ) * zScale,
+						Math.sin( r ) * zScale,
 						z * scale
 						z * scale
 					);
 					);
-					mesh.rotation.set(Math.random(), Math.random(), Math.random());
-					scene.add(mesh);
+					mesh.rotation.set( Math.random(), Math.random(), Math.random() );
+					scene.add( mesh );
 
 
 				}
 				}
 
 
@@ -228,6 +235,8 @@
 				// render post FX
 				// render post FX
 				renderer.render( postScene, postCamera );
 				renderer.render( postScene, postCamera );
 
 
+				stats.update();
+
 			}
 			}
 
 
 		</script>
 		</script>