소스 검색

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 년 전
부모
커밋
1053ab2444
3개의 변경된 파일9개의 추가작업 그리고 6개의 파일을 삭제
  1. 2 2
      examples/geometry_terrain_gl.html
  2. 6 3
      examples/js/ImprovedNoise.js
  3. 1 1
      examples/materials_shaders_fresnel.html

+ 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,