Browse Source

Now that WebGLRenderer does VBO per geometry I guess we don't need that GeometryUtils.merge there. Makes loading much faster too.
Fresnel demo has a weird artifact now... As if the cubemap was smaller than the far of the camera?

Mr.doob 14 years ago
parent
commit
d0138282ba

+ 10 - 18
examples/materials_cubemap_balls_reflection.html

@@ -80,21 +80,7 @@
 				scene = new THREE.Scene();
 				sceneCube = new THREE.Scene();
 
-				var geometry = new THREE.Geometry();
-				var sphere = new THREE.Mesh( new Sphere( 100, 32, 16 ) );
-
-				for ( var i = 0; i < 200; i ++ ) {
-
-					sphere.position.x = Math.random() * 10000 - 5000;
-					sphere.position.y = Math.random() * 10000 - 5000;
-					sphere.position.z = Math.random() * 10000 - 5000;
-					sphere.scale.x = sphere.scale.y = sphere.scale.z = Math.random() * 4 + 1;
-
-					// Merging spheres in a single geometry
-					
-					GeometryUtils.merge( geometry, sphere );
-
-				}
+				var geometry = new Sphere( 100, 32, 16 );
 				geometry.sortFacesByMaterial();
 
 				var path = "textures/cube/pisa/";
@@ -111,9 +97,15 @@
 
 				var material = new THREE.MeshBasicMaterial( { color: 0xffffff, env_map: textureCube } );
 
-				var mesh = new THREE.Mesh( geometry, material );
-				mesh.position.x = 100;
-				scene.addObject( mesh );
+				for ( var i = 0; i < 200; i ++ ) {
+
+					var mesh = new THREE.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.scale.x = mesh.scale.y = mesh.scale.z = Math.random() * 4 + 1;
+					scene.addObject( mesh );
+				}
 
 				//SceneUtils.addPanoramaCubePlanes( sceneCube, 100000, images );
 				//SceneUtils.addPanoramaCube( sceneCube, 100000, images );

+ 10 - 17
examples/materials_cubemap_balls_refraction.html

@@ -80,20 +80,7 @@
 				scene = new THREE.Scene();
 				sceneCube = new THREE.Scene();
 
-				var geometry = new THREE.Geometry();
-				var sphere = new THREE.Mesh( new Sphere( 100, 32, 16 ) );
-
-				for ( var i = 0; i < 200; i ++ ) {
-
-					sphere.position.x = Math.random() * 10000 - 5000;
-					sphere.position.y = Math.random() * 10000 - 5000;
-					sphere.position.z = Math.random() * 10000 - 5000;
-					sphere.scale.x = sphere.scale.y = sphere.scale.z = Math.random() * 4 + 1;
-
-					// Merging spheres in a single geometry
-					GeometryUtils.merge( geometry, sphere );
-
-				}
+				var geometry = new Sphere( 100, 32, 16 );
 				geometry.sortFacesByMaterial();
 
 				var path = "textures/cube/skybox/";
@@ -108,9 +95,15 @@
 				var textureCube = new THREE.TextureCube( images, THREE.RefractionMapping );
 				var material = new THREE.MeshBasicMaterial( { color: 0xffffff, env_map: textureCube, refraction_ratio: 0.95 } );
 
-				var mesh = new THREE.Mesh( geometry, material );
-				mesh.position.x = 100;
-				scene.addObject( mesh );
+				for ( var i = 0; i < 200; i ++ ) {
+
+					var mesh = new THREE.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.scale.x = mesh.scale.y = mesh.scale.z = Math.random() * 4 + 1;
+					scene.addObject( mesh );
+				}
 
 				//SceneUtils.addPanoramaCubePlanes( sceneCube, 100000, images );
 				//SceneUtils.addPanoramaCube( sceneCube, 100000, images );

+ 14 - 21
examples/materials_shaders_fresnel.html

@@ -78,22 +78,9 @@
 				scene = new THREE.Scene();
 				sceneCube = new THREE.Scene();
 
-				var geometry = new THREE.Geometry();
-				var sphere = new THREE.Mesh( new Sphere( 100, 32, 16 ) );
-
-				for ( var i = 0; i < 200; i ++ ) {
-
-					sphere.position.x = Math.random() * 10000 - 5000;
-					sphere.position.y = Math.random() * 10000 - 5000;
-					sphere.position.z = Math.random() * 10000 - 5000;
-					sphere.scale.x = sphere.scale.y = sphere.scale.z = Math.random() * 4 + 1;
-
-					// Merging spheres in a single geometry
-					GeometryUtils.merge( geometry, sphere );
-					
-				}
+				var geometry = new Sphere( 100, 32, 16 );
 				geometry.sortFacesByMaterial();
-				
+
 				var path = "textures/cube/Park2/";
 				var format = '.jpg';
 				var urls = [
@@ -105,21 +92,27 @@
 
 				var images = ImageUtils.loadArray( urls );
 				var textureCube = new THREE.TextureCube( images );
-				
+
 				var fragment_shader = ShaderUtils.lib["fresnel"].fragment_shader;
 				var vertex_shader = ShaderUtils.lib["fresnel"].vertex_shader;
 				var uniforms = ShaderUtils.lib["fresnel"].uniforms;
-				
+
 				uniforms["tCube"][2] = textureCube;
-				
+
 				var material = new THREE.MeshShaderMaterial( { fragment_shader: fragment_shader, 
 															   vertex_shader: vertex_shader, 
 															   uniforms: uniforms
 															} );
 
-				var mesh = new THREE.Mesh( geometry, material );
-				mesh.position.x = 100;
-				scene.addObject( mesh );
+				for ( var i = 0; i < 200; i ++ ) {
+
+					var mesh = new THREE.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.scale.x = mesh.scale.y = mesh.scale.z = Math.random() * 4 + 1;
+					scene.addObject( mesh );
+				}
 
 				SceneUtils.addPanoramaCubeWebGL( sceneCube, 100000, textureCube );