浏览代码

Add more samples for software sandbox.

Daosheng Mu 9 年之前
父节点
当前提交
77a3f6dc13
共有 1 个文件被更改,包括 54 次插入8 次删除
  1. 54 8
      examples/software_sandbox.html

+ 54 - 8
examples/software_sandbox.html

@@ -16,21 +16,18 @@
 	<body>
 
 		<script src="../build/three.min.js"></script>
-
+		<script src="js/geometries/hilbert3D.js"></script>
 		<script src="js/controls/TrackballControls.js"></script>
-
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/SoftwareRenderer.js"></script>
-
 		<script src="js/libs/stats.min.js"></script>
-
 		<script>
 
 			var container, stats;
 
 			var camera, controls, scene, renderer;
 
-			var torus, cube;
+			var torus, cube, texCube;
 
 			var start = Date.now();
 
@@ -50,13 +47,14 @@
 				info.innerHTML = '<a href="http://threejs.org" target="_blank">three.js<a/> - software renderer<br/>drag to change the point of view';
 				container.appendChild( info );
 
-				camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 1, 1000 );
+				camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 1, 2000 );
 				camera.position.z = 600;
 
 				controls = new THREE.TrackballControls( camera );
 
 				scene = new THREE.Scene();
 
+				// Torus
 				var geometry = new THREE.TorusKnotGeometry( 150 );
 
 				for ( var i = 0, j = geometry.faces.length; i < j; i ++ ) {
@@ -68,8 +66,7 @@
 				torus = new THREE.Mesh( geometry, new THREE.MeshBasicMaterial( { color: 0x0000ff, vertexColors: THREE.FaceColors } ) );
 				scene.add( torus );
 
-				// Plane
-
+				// Cube
 				var geometry = new THREE.BoxGeometry( 200, 200, 200 );
 
 				for ( var i = 0, j = geometry.faces.length; i < j; i ++ ) {
@@ -79,8 +76,55 @@
 				}
 
 				cube = new THREE.Mesh( geometry, new THREE.MeshBasicMaterial( { color: 0x00ff00, vertexColors: THREE.FaceColors } ) );
+				scene.position.set( 100, 0, 0 );
 				scene.add( cube );
 
+				// Cube with texture
+				var loader = new THREE.TextureLoader();
+				var map = loader.load( 'textures/brick_diffuse.jpg' );
+				texCube = new THREE.Mesh( geometry, new THREE.MeshLambertMaterial( { map: map, overdraw: 0.5 } ) );
+				texCube.position.set( -300, 0, 0 );
+				scene.add( texCube );
+
+				// Sprite
+				var sprite = new THREE.Sprite( new THREE.SpriteMaterial( { color: 0xff0040 } ) );
+				sprite.scale.set( 100, 100, 1 );
+				sprite.position.set( -100, 200, 0 );
+				scene.add( sprite );
+
+				// Sprite with texture
+				var texLoader = new THREE.TextureLoader();
+				map = texLoader.load( 'textures/sprite1.png' );
+				var texSprite = new THREE.Sprite( new THREE.SpriteMaterial( { map: map,transparent: true } ) );
+				texSprite.scale.set( 100, 100, 1 );
+				texSprite.position.set( 100, 200, 0 );
+				scene.add( texSprite );
+
+				// Line
+				var points = hilbert3D( new THREE.Vector3( 0,0,0 ), 200.0, 1, 0, 1, 2, 3, 4, 5, 6, 7 );
+				var spline = new THREE.Spline( points );
+				var n_sub = 6, colors = [], line;
+				var lineGeometry = new THREE.Geometry()
+
+				for ( i = 0; i < points.length * n_sub; i ++ ) {
+
+					index = i / ( points.length * n_sub );
+					position = spline.getPoint( index );
+
+					lineGeometry.vertices[ i ] = new THREE.Vector3( position.x, position.y, position.z );
+
+					colors[ i ] = new THREE.Color( 0x88aaff );
+
+				}
+
+				lineGeometry.colors = colors;
+
+				material = new THREE.LineBasicMaterial( { opacity: 1, linewidth: 3, vertexColors: THREE.VertexColors } );
+				line = new THREE.Line( lineGeometry, material );
+				line.scale.set( 0.5, 0.5, 0.5 );
+				line.position.set( 0, -200, 0);
+				scene.add( line );
+
 				renderer = new THREE.SoftwareRenderer();
 				renderer.setClearColor( 0xf0f0f0 );
 				renderer.setSize( window.innerWidth, window.innerHeight );
@@ -129,6 +173,8 @@
 				cube.rotation.x = timer * 0.0002;
 				cube.rotation.z = timer * 0.0003;
 
+				texCube.rotation.x = timer * 0.0002;
+				texCube.rotation.z = timer * 0.0003;
 
 				controls.update();