浏览代码

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 ) {
 			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 ++ ) {
 				for ( var i = 0; i < size; i ++ ) {
 
 

+ 6 - 3
examples/js/ImprovedNoise.js

@@ -2,8 +2,8 @@
 
 
 var ImprovedNoise = function () {
 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,
 	 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,
 	 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,
 	 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,
 	 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,
 	 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,
 	 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 ++ ) {
 	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 vertex_shader = ShaderUtils.lib["fresnel"].vertex_shader;
 				var uniforms = ShaderUtils.lib["fresnel"].uniforms;
 				var uniforms = ShaderUtils.lib["fresnel"].uniforms;
 
 
-				uniforms["tCube"][2] = textureCube;
+				uniforms["tCube"].texture = textureCube;
 
 
 				var material = new THREE.MeshShaderMaterial( { fragment_shader: fragment_shader, 
 				var material = new THREE.MeshShaderMaterial( { fragment_shader: fragment_shader, 
 															   vertex_shader: vertex_shader, 
 															   vertex_shader: vertex_shader,