Bläddra i källkod

Cleaned up webgl2_sandbox example.

Mr.doob 7 år sedan
förälder
incheckning
8aab6e0382
1 ändrade filer med 19 tillägg och 83 borttagningar
  1. 19 83
      examples/webgl2_sandbox.html

+ 19 - 83
examples/webgl2_sandbox.html

@@ -34,22 +34,22 @@
 	<body>
 		<div id="info"><a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> - webgl2 sandbox.</div>
 
-		<script src="../build/three.js"></script>
-
-		<script src="js/libs/stats.min.js"></script>
-
 		<script type="module">
 
+			import { PerspectiveCamera } from '../src/cameras/PerspectiveCamera.js';
+			import { SphereBufferGeometry } from '../src/geometries/SphereGeometry.js';
+			import { MeshNormalMaterial } from '../src/materials/MeshNormalMaterial.js';
+			import { PointLight } from '../src/lights/PointLight.js';
+			import { Color } from '../src/math/Color.js';
+			import { Mesh } from '../src/objects/Mesh.js';
+			import { Fog } from '../src/scenes/Fog.js';
+			import { Scene } from '../src/scenes/Scene.js';
 			import { WebGL2Renderer } from '../src/renderers/WebGL2Renderer.js';
 
-			var statsEnabled = true;
-
-			var container, stats;
+			//
 
 			var camera, scene, renderer;
 
-			var mesh, zmesh, lightMesh, geometry;
-
 			var mouseX = 0, mouseY = 0;
 
 			var windowHalfX = window.innerWidth / 2;
@@ -60,56 +60,30 @@
 
 			function init() {
 
-				container = document.createElement( 'div' );
-				document.body.appendChild( container );
-
-				camera = new THREE.PerspectiveCamera( 60, window.innerWidth / window.innerHeight, 1, 20000 );
+				camera = new PerspectiveCamera( 60, window.innerWidth / window.innerHeight, 1, 20000 );
 				camera.position.z = 3200;
 
-				scene = new THREE.Scene();
-				scene.background = new THREE.Color( 0, 0, 0.5 );
-				scene.fog = new THREE.Fog( 0x000000, 1, 20000 );
+				scene = new Scene();
+				scene.background = new Color( 0, 0, 0.5 );
+				scene.fog = new Fog( 0x000000, 1, 20000 );
 
-				var light = new THREE.PointLight( 0xffffff );
+				var light = new PointLight( 0xffffff );
 				scene.add( light );
 
-				var texture1 = new THREE.CanvasTexture( generateTexture( 0, 0.5, 1 ), THREE.UVMapping );
-
-				var materials = [
-
-					new THREE.MeshNormalMaterial(),
-					new THREE.MeshDepthMaterial(),
-					new THREE.MeshBasicMaterial( { color: 0x0066ff, blending: THREE.AdditiveBlending, transparent: true, depthWrite: false } ),
-					new THREE.MeshBasicMaterial( { color: 0xffaa00, wireframe: true } ),
-					new THREE.MeshBasicMaterial( { map: texture1, fog: false } ),
-					new THREE.MeshLambertMaterial( { color: 0xdddddd } ),
-					new THREE.MeshPhongMaterial( { color: 0xdddddd, specular: 0x009900, shininess: 30, flatShading: true } ),
-					new THREE.MeshPhongMaterial( { color: 0xdddddd, specular: 0x009900, shininess: 30 } )
-
-				];
-
-				var geometry = new THREE.SphereGeometry( 50, 32, 16 );
+				var geometry = new SphereBufferGeometry( 50, 32, 16 );
+				var material = new MeshNormalMaterial();
 
 				for ( var i = 0; i < 5000; i ++ ) {
 
-					// random order
-					//var index = Math.floor( Math.random() * materials.length );
-
-					// sort by material / geometry
-					var index = Math.floor( ( i / 5000 ) * materials.length );
-
-					var material = materials[ index ];
-
-					var mesh = new THREE.Mesh( geometry, material );
+					var mesh = new Mesh( geometry, material );
 
 					mesh.position.x = Math.random() * 10000 - 5000;
 					mesh.position.y = Math.random() * 10000 - 5000;
 					mesh.position.z = Math.random() * 10000 - 5000;
 
-					//mesh.rotation.x = Math.random() * 360 * ( Math.PI / 180 );
 					mesh.rotation.y = Math.random() * 2 * Math.PI;
 
-					mesh.scale.x = mesh.scale.y = mesh.scale.z = Math.random() * 4 + 1;
+					mesh.scale.setScalar( Math.random() * 4 + 1 );
 
 					scene.add( mesh );
 
@@ -118,14 +92,7 @@
 				renderer = new WebGL2Renderer();
 				renderer.setPixelRatio( window.devicePixelRatio );
 				renderer.setSize( window.innerWidth, window.innerHeight );
-				container.appendChild( renderer.domElement );
-
-				if ( statsEnabled ) {
-
-					stats = new Stats();
-					container.appendChild( stats.dom );
-
-				}
+				document.body.appendChild( renderer.domElement );
 
 				document.addEventListener( 'mousemove', onDocumentMouseMove, false );
 
@@ -147,36 +114,6 @@
 
 			}
 
-			function generateTexture( r, g, b ) {
-
-				var canvas = document.createElement( 'canvas' );
-				canvas.width = 256;
-				canvas.height = 256;
-
-				var context = canvas.getContext( '2d' );
-				var image = context.getImageData( 0, 0, 256, 256 );
-
-				var x = 0, y = 0, p;
-
-				for ( var i = 0, j = 0, l = image.data.length; i < l; i += 4, j ++ ) {
-
-					x = j % 256;
-					y = x == 0 ? y + 1 : y;
-					p = Math.floor( x ^ y );
-
-					image.data[ i ] = ~~ p * r;
-					image.data[ i + 1 ] = ~~ p * g;
-					image.data[ i + 2 ] = ~~ p * b;
-					image.data[ i + 3 ] = 255;
-
-				}
-
-				context.putImageData( image, 0, 0 );
-
-				return canvas;
-
-			}
-
 			function onDocumentMouseMove(event) {
 
 				mouseX = ( event.clientX - windowHalfX ) * 10;
@@ -191,7 +128,6 @@
 				requestAnimationFrame( animate );
 
 				render();
-				if ( statsEnabled ) stats.update();
 
 			}