diff --git a/build/three.js b/build/three.js index cf0e96c1290a9ea0e79ae6c466eab908eb24e6ba..d0b601f72d763cc5888bfe18ff621f8010fdd310 100644 --- a/build/three.js +++ b/build/three.js @@ -10507,18 +10507,22 @@ THREE.JSONLoader.prototype.parse = function ( json, texturePath ) { nUvLayers = 0; - // disregard empty arrays + if ( json.uvs !== undefined ) { - for ( i = 0; i < json.uvs.length; i++ ) { + // disregard empty arrays - if ( json.uvs[ i ].length ) nUvLayers ++; + for ( i = 0; i < json.uvs.length; i++ ) { - } + if ( json.uvs[ i ].length ) nUvLayers ++; + + } + + for ( i = 0; i < nUvLayers; i++ ) { - for ( i = 0; i < nUvLayers; i++ ) { + geometry.faceUvs[ i ] = []; + geometry.faceVertexUvs[ i ] = []; - geometry.faceUvs[ i ] = []; - geometry.faceVertexUvs[ i ] = []; + } } @@ -10939,6 +10943,7 @@ THREE.MaterialLoader.prototype = { material = new THREE.MeshBasicMaterial( { color: json.color, + vertexColors: json.vertexColors, opacity: json.opacity, transparent: json.transparent, wireframe: json.wireframe @@ -10954,6 +10959,7 @@ THREE.MaterialLoader.prototype = { color: json.color, ambient: json.ambient, emissive: json.emissive, + vertexColors: json.vertexColors, opacity: json.opacity, transparent: json.transparent, wireframe: json.wireframe @@ -10971,6 +10977,7 @@ THREE.MaterialLoader.prototype = { emissive: json.emissive, specular: json.specular, shininess: json.shininess, + vertexColors: json.vertexColors, opacity: json.opacity, transparent: json.transparent, wireframe: json.wireframe @@ -25022,6 +25029,10 @@ THREE.WebGLRenderer = function ( parameters ) { } + } else { + + console.warn( 'THREE.WebGLRenderer: Unknown uniform type: ' + type ); + } } diff --git a/build/three.min.js b/build/three.min.js index b7b6d421376f03d5e7c703c3dfaaebd74b2f6bda..715ee26cfbc87f6365e1810c42f82815e6c92a67 100644 --- a/build/three.min.js +++ b/build/three.min.js @@ -213,14 +213,14 @@ THREE.XHRLoader.prototype={constructor:THREE.XHRLoader,load:function(a,b,c,d){va THREE.ImageLoader.prototype={constructor:THREE.ImageLoader,load:function(a,b,c,d){var e=this,f=document.createElement("img");void 0!==b&&f.addEventListener("load",function(){e.manager.itemEnd(a);b(this)},!1);void 0!==c&&f.addEventListener("progress",function(a){c(a)},!1);void 0!==d&&f.addEventListener("error",function(a){d(a)},!1);void 0!==this.crossOrigin&&(f.crossOrigin=this.crossOrigin);f.src=a;e.manager.itemStart(a)},setCrossOrigin:function(a){this.crossOrigin=a}};THREE.JSONLoader=function(a){THREE.Loader.call(this,a);this.withCredentials=!1};THREE.JSONLoader.prototype=Object.create(THREE.Loader.prototype);THREE.JSONLoader.prototype.load=function(a,b,c){c=c&&"string"===typeof c?c:this.extractUrlBase(a);this.onLoadStart();this.loadAjaxJSON(this,a,b,c)}; THREE.JSONLoader.prototype.loadAjaxJSON=function(a,b,c,d,e){var f=new XMLHttpRequest,h=0;f.onreadystatechange=function(){if(f.readyState===f.DONE)if(200===f.status||0===f.status){if(f.responseText){var g=JSON.parse(f.responseText),g=a.parse(g,d);c(g.geometry,g.materials)}else console.warn("THREE.JSONLoader: ["+b+"] seems to be unreachable or file there is empty");a.onLoadComplete()}else console.error("THREE.JSONLoader: Couldn't load ["+b+"] ["+f.status+"]");else f.readyState===f.LOADING?e&&(0===h&& (h=f.getResponseHeader("Content-Length")),e({total:h,loaded:f.responseText.length})):f.readyState===f.HEADERS_RECEIVED&&void 0!==e&&(h=f.getResponseHeader("Content-Length"))};f.open("GET",b,!0);f.withCredentials=this.withCredentials;f.send(null)}; -THREE.JSONLoader.prototype.parse=function(a,b){var c=new THREE.Geometry,d=void 0!==a.scale?1/a.scale:1,e,f,h,g,i,j,m,l,p,q,t,n,r,s,v,z=a.faces;q=a.vertices;var G=a.normals,C=a.colors,H=0;for(e=0;el;l++)D.autoScaleCubemaps&&!f?(p=j,s=l,t=c.image[l],z=Ub,t.width<=z&&t.height<=z||(y=Math.max(t.width,t.height),v=Math.floor(t.width*z/y),z=Math.floor(t.height*z/y),y=document.createElement("canvas"),y.width=v,y.height=z,y.getContext("2d").drawImage(t,0,0,t.width,t.height,0,0,v,z),t=y),p[s]=t):j[l]=c.image[l]; l=j[0];p=0===(l.width&l.width-1)&&0===(l.height&l.height-1);s=w(c.format);t=w(c.type);N(k.TEXTURE_CUBE_MAP,c,p);for(l=0;6>l;l++)if(f){z=j[l].mipmaps;y=0;for(A=z.length;y=ib&&console.warn("WebGLRenderer: trying to use "+a+" texture units while this GPU supports only "+ib);fa+=1;return a}function I(a,b,c,d){a[b]=c.r*c.r*d;a[b+1]=c.g*c.g*d;a[b+2]=c.b*c.b*d}function F(a,b,c,d){a[b]=c.r*d;a[b+1]=c.g*d;a[b+2]=c.b*d}function A(a){a!==ka&&(k.lineWidth(a),ka=a)}function K(a,b,c){ia!==a&&(a?k.enable(k.POLYGON_OFFSET_FILL):k.disable(k.POLYGON_OFFSET_FILL),ia=a);if(a&&(ha!==b||ra!==c))k.polygonOffset(b,c),ha=b,ra=c}function B(a){for(var a=a.split("\n"),b=0,c=a.length;b< -c;b++)a[b]=b+1+": "+a[b];return a.join("\n")}function J(a,b){var c;"fragment"===a?c=k.createShader(k.FRAGMENT_SHADER):"vertex"===a&&(c=k.createShader(k.VERTEX_SHADER));k.shaderSource(c,b);k.compileShader(c);return!k.getShaderParameter(c,k.COMPILE_STATUS)?(console.error(k.getShaderInfoLog(c)),console.error(B(b)),null):c}function N(a,b,c){c?(k.texParameteri(a,k.TEXTURE_WRAP_S,w(b.wrapS)),k.texParameteri(a,k.TEXTURE_WRAP_T,w(b.wrapT)),k.texParameteri(a,k.TEXTURE_MAG_FILTER,w(b.magFilter)),k.texParameteri(a, -k.TEXTURE_MIN_FILTER,w(b.minFilter))):(k.texParameteri(a,k.TEXTURE_WRAP_S,k.CLAMP_TO_EDGE),k.texParameteri(a,k.TEXTURE_WRAP_T,k.CLAMP_TO_EDGE),k.texParameteri(a,k.TEXTURE_MAG_FILTER,M(b.magFilter)),k.texParameteri(a,k.TEXTURE_MIN_FILTER,M(b.minFilter)));if(fb&&b.type!==THREE.FloatType&&(1b;b++)k.deleteFramebuffer(a.__webglFramebuffer[b]),k.deleteRenderbuffer(a.__webglRenderbuffer[b]);else k.deleteFramebuffer(a.__webglFramebuffer),k.deleteRenderbuffer(a.__webglRenderbuffer);D.info.memory.textures--},uc=function(a){a=a.target;a.removeEventListener("dispose",uc);vc(a)},vc=function(a){var b=a.program;if(void 0!== -b){a.program=void 0;var c,d,e=!1,a=0;for(c=V.length;ad.numSupportedMorphTargets?(j.sort(m),j.length=d.numSupportedMorphTargets):j.length>d.numSupportedMorphNormals?j.sort(m):0===j.length&&j.push([0,0]);for(l=0;lza;za++)Fa=O[za],Sa[jb]=Fa.x,Sa[jb+1]=Fa.y,Sa[jb+2]=Fa.z,jb+=3;else for(za=0;3>za;za++)Sa[jb]=ea.x,Sa[jb+1]=ea.y,Sa[jb+2]=ea.z,jb+=3;E=0;for(D=ta.length;Eza;za++)Fa=O[za],Sa[jb]=Fa.x,Sa[jb+1]=Fa.y,Sa[jb+2]=Fa.z,jb+=3;else for(za=0;4>za;za++)Sa[jb]=ea.x,Sa[jb+1]=ea.y,Sa[jb+2]=ea.z,jb+=3;k.bindBuffer(k.ARRAY_BUFFER,C.__webglNormalBuffer);k.bufferData(k.ARRAY_BUFFER, -Sa,H)}if(Hb&&Jb&&L){E=0;for(D=sa.length;Eza;za++)Pa=fa[za],fb[Xa]=Pa.x,fb[Xa+1]=Pa.y,Xa+=2;E=0;for(D=ta.length;Eza;za++)Pa=fa[za],fb[Xa]=Pa.x,fb[Xa+1]=Pa.y,Xa+=2;0za;za++)Ra=aa[za],ib[Ya]=Ra.x,ib[Ya+1]=Ra.y,Ya+=2;E=0;for(D=ta.length;E< -D;E++)if(N=ta[E],aa=Lb[N],void 0!==aa)for(za=0;4>za;za++)Ra=aa[za],ib[Ya]=Ra.x,ib[Ya+1]=Ra.y,Ya+=2;0=ib&&console.warn("WebGLRenderer: trying to use "+a+" texture units while this GPU supports only "+ib);fa+=1;return a}function I(a,b,c,d){a[b]=c.r*c.r*d;a[b+1]=c.g*c.g*d;a[b+2]=c.b*c.b*d}function F(a,b,c,d){a[b]=c.r*d;a[b+1]=c.g*d;a[b+2]=c.b*d}function A(a){a!==ka&&(k.lineWidth(a),ka=a)}function K(a,b,c){ia!==a&&(a?k.enable(k.POLYGON_OFFSET_FILL):k.disable(k.POLYGON_OFFSET_FILL),ia=a); +if(a&&(ha!==b||ra!==c))k.polygonOffset(b,c),ha=b,ra=c}function B(a){for(var a=a.split("\n"),b=0,c=a.length;bb;b++)k.deleteFramebuffer(a.__webglFramebuffer[b]),k.deleteRenderbuffer(a.__webglRenderbuffer[b]);else k.deleteFramebuffer(a.__webglFramebuffer),k.deleteRenderbuffer(a.__webglRenderbuffer);D.info.memory.textures--},uc=function(a){a=a.target;a.removeEventListener("dispose",uc);vc(a)},vc=function(a){var b= +a.program;if(void 0!==b){a.program=void 0;var c,d,e=!1,a=0;for(c=V.length;ad.numSupportedMorphTargets?(j.sort(m),j.length=d.numSupportedMorphTargets):j.length>d.numSupportedMorphNormals?j.sort(m):0===j.length&&j.push([0,0]);for(l=0;lza;za++)Fa=O[za],Sa[jb]=Fa.x,Sa[jb+1]=Fa.y,Sa[jb+2]=Fa.z,jb+=3;else for(za=0;3>za;za++)Sa[jb]=ea.x,Sa[jb+1]=ea.y,Sa[jb+2]=ea.z,jb+=3;E=0;for(D=ta.length;Eza;za++)Fa=O[za],Sa[jb]=Fa.x,Sa[jb+1]=Fa.y,Sa[jb+2]=Fa.z,jb+=3;else for(za=0;4>za;za++)Sa[jb]=ea.x,Sa[jb+ +1]=ea.y,Sa[jb+2]=ea.z,jb+=3;k.bindBuffer(k.ARRAY_BUFFER,C.__webglNormalBuffer);k.bufferData(k.ARRAY_BUFFER,Sa,H)}if(Hb&&Jb&&L){E=0;for(D=sa.length;Eza;za++)Pa=fa[za],fb[Xa]=Pa.x,fb[Xa+1]=Pa.y,Xa+=2;E=0;for(D=ta.length;Eza;za++)Pa=fa[za],fb[Xa]=Pa.x,fb[Xa+1]=Pa.y,Xa+=2;0za;za++)Ra=aa[za],ib[Ya]=Ra.x,ib[Ya+1]=Ra.y,Ya+=2;E=0;for(D=ta.length;Eza;za++)Ra=aa[za],ib[Ya]=Ra.x,ib[Ya+1]=Ra.y,Ya+=2;0