Fixed performance issue in WebGL version of materials test. We are back at 60 fps ;)

This commit is contained in:
alteredq
2010-11-17 23:42:24 +01:00
parent 5535f71130
commit 59280c0cbb
+14 -5
View File
@@ -65,7 +65,7 @@
// Spheres
var geometry = new Sphere( 70, 32, 16, true );
var geometry1 = new Sphere( 70, 32, 16, true );
var generatedTexture = new THREE.Texture( generateTexture() );
generatedTexture.loaded = 1;
@@ -86,9 +86,13 @@
materials.push( { material: new THREE.MeshBasicMaterial( { map: generatedTexture } ), overdraw: true, doubleSided: false } );
materials.push( { material: new THREE.MeshLambertMaterial( { map: generatedTexture } ), overdraw: true, doubleSided: false } );
for ( var i = 0, l = geometry.faces.length; i < l; i ++ ) {
// Extra mesh to be broken down for MeshFaceMaterial
var geometry2 = new Sphere( 70, 32, 16, true );
for ( var i = 0, l = geometry2.faces.length; i < l; i ++ ) {
var face = geometry.faces[ i ];
var face = geometry2.faces[ i ];
if ( Math.random() > 0.7 ) face.material = [ materials[ Math.floor( Math.random() * materials.length ) ].material ];
}
@@ -97,9 +101,14 @@
objects = [];
var sphere, geometry;
for ( var i = 0, l = materials.length; i < l; i ++ ) {
var sphere = new THREE.Mesh( geometry, materials[ i ].material );
geometry = materials[ i ].material instanceof THREE.MeshFaceMaterial ? geometry2 : geometry1;
sphere = new THREE.Mesh( geometry, materials[ i ].material );
sphere.overdraw = materials[ i ].overdraw;
sphere.doubleSided = materials[ i ].doubleSided;