Browse Source

Made WebGL terrain demo work in Firefox 4.

Firefox doesn't like Typed Array constructors without explicit sizes.

Also in Firefox there were some weird artefacts in Perlin noise when using Int8Array (patterns were repeated across diagonal lines).
alteredq 14 years ago
parent
commit
1053ab2444

+ 2 - 2
examples/geometry_terrain_gl.html

@@ -118,8 +118,8 @@
 
 			function generateHeight( width, height ) {
 
-				var data = Float32Array ? new Float32Array() : [], perlin = new ImprovedNoise(),
-				size = width * height, quality = 1, z = Math.random() * 100;
+				var size = width * height, data = new Float32Array( size ), perlin = new ImprovedNoise(),
+					quality = 1, z = Math.random() * 100;
 
 				for ( var i = 0; i < size; i ++ ) {
 

+ 6 - 3
examples/js/ImprovedNoise.js

@@ -2,8 +2,8 @@
 
 var ImprovedNoise = function () {
 
-	var p = Int8Array ? new Int8Array() : [];
-	[151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,
+	var data = [
+	 151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,
 	 23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,
 	 174,20,125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,
 	 133,230,220,105,92,41,55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,
@@ -12,7 +12,10 @@ var ImprovedNoise = function () {
 	 248,152,2,44,154,163,70,221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,224,232,
 	 178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,
 	 14,239,107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,205,
-	 93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180].forEach( function ( v, i ) { p[ i ] = v; } );
+	 93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180];
+	
+	var p = Int16Array ? new Int16Array( data.length ) : [];
+	data.forEach( function ( v, i ) { p[ i ] = v; } );
 
 	for ( var i = 0; i < 256; i ++ ) {
 

+ 1 - 1
examples/materials_shaders_fresnel.html

@@ -96,7 +96,7 @@
 				var vertex_shader = ShaderUtils.lib["fresnel"].vertex_shader;
 				var uniforms = ShaderUtils.lib["fresnel"].uniforms;
 
-				uniforms["tCube"][2] = textureCube;
+				uniforms["tCube"].texture = textureCube;
 
 				var material = new THREE.MeshShaderMaterial( { fragment_shader: fragment_shader, 
 															   vertex_shader: vertex_shader,