|
@@ -321,7 +321,7 @@ THREE.TextureLoader.prototype={constructor:THREE.TextureLoader,load:function(a,b
|
|
THREE.BinaryTextureLoader.prototype={constructor:THREE.BinaryTextureLoader,load:function(a,b,c,d){var e=this,g=new THREE.DataTexture,f=new THREE.XHRLoader(this.manager);f.setCrossOrigin(this.crossOrigin);f.setResponseType("arraybuffer");f.load(a,function(a){if(a=e._parser(a))void 0!==a.image?g.image=a.image:void 0!==a.data&&(g.image.width=a.width,g.image.height=a.height,g.image.data=a.data),g.wrapS=void 0!==a.wrapS?a.wrapS:THREE.ClampToEdgeWrapping,g.wrapT=void 0!==a.wrapT?a.wrapT:THREE.ClampToEdgeWrapping,
|
|
THREE.BinaryTextureLoader.prototype={constructor:THREE.BinaryTextureLoader,load:function(a,b,c,d){var e=this,g=new THREE.DataTexture,f=new THREE.XHRLoader(this.manager);f.setCrossOrigin(this.crossOrigin);f.setResponseType("arraybuffer");f.load(a,function(a){if(a=e._parser(a))void 0!==a.image?g.image=a.image:void 0!==a.data&&(g.image.width=a.width,g.image.height=a.height,g.image.data=a.data),g.wrapS=void 0!==a.wrapS?a.wrapS:THREE.ClampToEdgeWrapping,g.wrapT=void 0!==a.wrapT?a.wrapT:THREE.ClampToEdgeWrapping,
|
|
g.magFilter=void 0!==a.magFilter?a.magFilter:THREE.LinearFilter,g.minFilter=void 0!==a.minFilter?a.minFilter:THREE.LinearMipMapLinearFilter,g.anisotropy=void 0!==a.anisotropy?a.anisotropy:1,void 0!==a.format&&(g.format=a.format),void 0!==a.type&&(g.type=a.type),void 0!==a.mipmaps&&(g.mipmaps=a.mipmaps),1===a.mipmapCount&&(g.minFilter=THREE.LinearFilter),g.needsUpdate=!0,b&&b(g,a)},c,d);return g},setCrossOrigin:function(a){this.crossOrigin=a}};
|
|
g.magFilter=void 0!==a.magFilter?a.magFilter:THREE.LinearFilter,g.minFilter=void 0!==a.minFilter?a.minFilter:THREE.LinearMipMapLinearFilter,g.anisotropy=void 0!==a.anisotropy?a.anisotropy:1,void 0!==a.format&&(g.format=a.format),void 0!==a.type&&(g.type=a.type),void 0!==a.mipmaps&&(g.mipmaps=a.mipmaps),1===a.mipmapCount&&(g.minFilter=THREE.LinearFilter),g.needsUpdate=!0,b&&b(g,a)},c,d);return g},setCrossOrigin:function(a){this.crossOrigin=a}};
|
|
THREE.CompressedTextureLoader=function(a){this.manager=void 0!==a?a:THREE.DefaultLoadingManager;this._parser=null};
|
|
THREE.CompressedTextureLoader=function(a){this.manager=void 0!==a?a:THREE.DefaultLoadingManager;this._parser=null};
|
|
-THREE.CompressedTextureLoader.prototype={constructor:THREE.CompressedTextureLoader,load:function(a,b,c,d){var e=this,g=[],f=new THREE.CompressedTexture;f.image=g;var h=new THREE.XHRLoader(this.manager);h.setCrossOrigin(this.crossOrigin);h.setResponseType("arraybuffer");if(Array.isArray(a))for(var k=0,l=function(m){h.load(a[m],function(a){a=e._parser(a,!0);g[m]={width:a.width,height:a.height,format:a.format,mipmaps:a.mipmaps};k+=1;6===k&&(1===a.mipmapCount&&(f.minFilter=THREE.LinearFilter),f.format=
|
|
|
|
|
|
+THREE.CompressedTextureLoader.prototype={constructor:THREE.CompressedTextureLoader,load:function(a,b,c,d){var e=this,g=[],f=new THREE.CompressedTexture;f.image=g;var h=new THREE.XHRLoader(this.manager);h.setCrossOrigin(this.crossOrigin);h.setResponseType("arraybuffer");if(Array.isArray(a))for(var k=0,l=function(l){h.load(a[l],function(a){a=e._parser(a,!0);g[l]={width:a.width,height:a.height,format:a.format,mipmaps:a.mipmaps};k+=1;6===k&&(1===a.mipmapCount&&(f.minFilter=THREE.LinearFilter),f.format=
|
|
a.format,f.needsUpdate=!0,b&&b(f))},c,d)},n=0,p=a.length;n<p;++n)l(n);else h.load(a,function(a){a=e._parser(a,!0);if(a.isCubemap)for(var c=a.mipmaps.length/a.mipmapCount,d=0;d<c;d++){g[d]={mipmaps:[]};for(var h=0;h<a.mipmapCount;h++)g[d].mipmaps.push(a.mipmaps[d*a.mipmapCount+h]),g[d].format=a.format,g[d].width=a.width,g[d].height=a.height}else f.image.width=a.width,f.image.height=a.height,f.mipmaps=a.mipmaps;1===a.mipmapCount&&(f.minFilter=THREE.LinearFilter);f.format=a.format;f.needsUpdate=!0;b&&
|
|
a.format,f.needsUpdate=!0,b&&b(f))},c,d)},n=0,p=a.length;n<p;++n)l(n);else h.load(a,function(a){a=e._parser(a,!0);if(a.isCubemap)for(var c=a.mipmaps.length/a.mipmapCount,d=0;d<c;d++){g[d]={mipmaps:[]};for(var h=0;h<a.mipmapCount;h++)g[d].mipmaps.push(a.mipmaps[d*a.mipmapCount+h]),g[d].format=a.format,g[d].width=a.width,g[d].height=a.height}else f.image.width=a.width,f.image.height=a.height,f.mipmaps=a.mipmaps;1===a.mipmapCount&&(f.minFilter=THREE.LinearFilter);f.format=a.format;f.needsUpdate=!0;b&&
|
|
b(f)},c,d);return f},setCrossOrigin:function(a){this.crossOrigin=a}};
|
|
b(f)},c,d);return f},setCrossOrigin:function(a){this.crossOrigin=a}};
|
|
THREE.Material=function(){Object.defineProperty(this,"id",{value:THREE.MaterialIdCount++});this.uuid=THREE.Math.generateUUID();this.name="";this.type="Material";this.side=THREE.FrontSide;this.opacity=1;this.transparent=!1;this.blending=THREE.NormalBlending;this.blendSrc=THREE.SrcAlphaFactor;this.blendDst=THREE.OneMinusSrcAlphaFactor;this.blendEquation=THREE.AddEquation;this.blendEquationAlpha=this.blendDstAlpha=this.blendSrcAlpha=null;this.depthFunc=THREE.LessEqualDepth;this.colorWrite=this.depthWrite=
|
|
THREE.Material=function(){Object.defineProperty(this,"id",{value:THREE.MaterialIdCount++});this.uuid=THREE.Math.generateUUID();this.name="";this.type="Material";this.side=THREE.FrontSide;this.opacity=1;this.transparent=!1;this.blending=THREE.NormalBlending;this.blendSrc=THREE.SrcAlphaFactor;this.blendDst=THREE.OneMinusSrcAlphaFactor;this.blendEquation=THREE.AddEquation;this.blendEquationAlpha=this.blendDstAlpha=this.blendSrcAlpha=null;this.depthFunc=THREE.LessEqualDepth;this.colorWrite=this.depthWrite=
|
|
@@ -488,45 +488,45 @@ THREE.ShaderChunk.logdepthbuf_fragment,"\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tgl_Fra
|
|
THREE.WebGLRenderer=function(a){function b(a,b,c,d){!0===R&&(a*=d,b*=d,c*=d);s.clearColor(a,b,c,d)}function c(){K.init();s.viewport(Ha,za,Aa,Ba);b(E.r,E.g,E.b,ja)}function d(){Za=rb=null;va="";$a=-1;jb=!0;K.reset()}function e(a){a.preventDefault();d();c();$.clear()}function g(a){a=a.target;a.removeEventListener("dispose",g);a:{var b=$.get(a);if(a.image&&b.__image__webglTextureCube)s.deleteTexture(b.__image__webglTextureCube);else{if(void 0===b.__webglInit)break a;s.deleteTexture(b.__webglTexture)}$.delete(a)}Ca.textures--}
|
|
THREE.WebGLRenderer=function(a){function b(a,b,c,d){!0===R&&(a*=d,b*=d,c*=d);s.clearColor(a,b,c,d)}function c(){K.init();s.viewport(Ha,za,Aa,Ba);b(E.r,E.g,E.b,ja)}function d(){Za=rb=null;va="";$a=-1;jb=!0;K.reset()}function e(a){a.preventDefault();d();c();$.clear()}function g(a){a=a.target;a.removeEventListener("dispose",g);a:{var b=$.get(a);if(a.image&&b.__image__webglTextureCube)s.deleteTexture(b.__image__webglTextureCube);else{if(void 0===b.__webglInit)break a;s.deleteTexture(b.__webglTexture)}$.delete(a)}Ca.textures--}
|
|
function f(a){a=a.target;a.removeEventListener("dispose",f);var b=$.get(a);if(a&&void 0!==b.__webglTexture){s.deleteTexture(b.__webglTexture);if(a instanceof THREE.WebGLRenderTargetCube)for(var c=0;6>c;c++)s.deleteFramebuffer(b.__webglFramebuffer[c]),s.deleteRenderbuffer(b.__webglRenderbuffer[c]);else s.deleteFramebuffer(b.__webglFramebuffer),s.deleteRenderbuffer(b.__webglRenderbuffer);$.delete(a)}Ca.textures--}function h(a){a=a.target;a.removeEventListener("dispose",h);k(a);$.delete(a)}function k(a){var b=
|
|
function f(a){a=a.target;a.removeEventListener("dispose",f);var b=$.get(a);if(a&&void 0!==b.__webglTexture){s.deleteTexture(b.__webglTexture);if(a instanceof THREE.WebGLRenderTargetCube)for(var c=0;6>c;c++)s.deleteFramebuffer(b.__webglFramebuffer[c]),s.deleteRenderbuffer(b.__webglRenderbuffer[c]);else s.deleteFramebuffer(b.__webglFramebuffer),s.deleteRenderbuffer(b.__webglRenderbuffer);$.delete(a)}Ca.textures--}function h(a){a=a.target;a.removeEventListener("dispose",h);k(a);$.delete(a)}function k(a){var b=
|
|
$.get(a).program.program;if(void 0!==b){a.program=void 0;a=0;for(var c=qa.length;a!==c;++a){var d=qa[a];if(d.program===b){0===--d.usedTimes&&(c-=1,qa[a]=qa[c],qa.pop(),s.deleteProgram(b),Ca.programs=c);break}}}}function l(a,b){return b[0]-a[0]}function n(a,b){return a.object.renderOrder!==b.object.renderOrder?a.object.renderOrder-b.object.renderOrder:a.material.id!==b.material.id?a.material.id-b.material.id:a.z!==b.z?a.z-b.z:a.id-b.id}function p(a,b){return a.object.renderOrder!==b.object.renderOrder?
|
|
$.get(a).program.program;if(void 0!==b){a.program=void 0;a=0;for(var c=qa.length;a!==c;++a){var d=qa[a];if(d.program===b){0===--d.usedTimes&&(c-=1,qa[a]=qa[c],qa.pop(),s.deleteProgram(b),Ca.programs=c);break}}}}function l(a,b){return b[0]-a[0]}function n(a,b){return a.object.renderOrder!==b.object.renderOrder?a.object.renderOrder-b.object.renderOrder:a.material.id!==b.material.id?a.material.id-b.material.id:a.z!==b.z?a.z-b.z:a.id-b.id}function p(a,b){return a.object.renderOrder!==b.object.renderOrder?
|
|
-a.object.renderOrder-b.object.renderOrder:a.z!==b.z?b.z-a.z:a.id-b.id}function m(a,b,c,d,e){var f;c.transparent?(d=Da,f=++Ia):(d=la,f=++wa);f=d[f];void 0!==f?(f.id=a.id,f.object=a,f.geometry=b,f.material=c,f.z=aa.z,f.group=e):(f={id:a.id,object:a,geometry:b,material:c,z:aa.z,group:e},d.push(f))}function q(a){if(!1!==a.visible){if(a instanceof THREE.Light)Y.push(a);else if(a instanceof THREE.Sprite)Ra.push(a);else if(a instanceof THREE.LensFlare)ab.push(a);else if(a instanceof THREE.ImmediateRenderObject){var b,
|
|
|
|
-c;a.material.transparent?(b=Ja,c=++Ka):(b=ra,c=++bb);c<b.length?b[c]=a:b.push(a)}else if(a instanceof THREE.Mesh||a instanceof THREE.Line||a instanceof THREE.PointCloud)if(a instanceof THREE.SkinnedMesh&&a.skeleton.update(),!1===a.frustumCulled||!0===kb.intersectsObject(a)){var d=a.material;if(!0===d.visible){!0===ka.sortObjects&&(aa.setFromMatrixPosition(a.matrixWorld),aa.applyProjection(Sa));var e=sa.update(a),f=e.groups;if(d instanceof THREE.MeshFaceMaterial)for(d=d.materials,b=0,c=f.length;b<
|
|
|
|
-c;b++){var g=f[b],h=d[g.materialIndex];!0===h.visible&&m(a,e,h,aa.z,g)}else if(0<f.length)for(b=0,c=f.length;b<c;b++)m(a,e,d,aa.z,f[b]);else m(a,e,d,aa.z)}}a=a.children;b=0;for(c=a.length;b<c;b++)q(a[b])}}function t(a,b,c,d,e){for(var f=0,g=a.length;f<g;f++){var h=a[f],k=h.object,l=h.geometry,m=void 0===e?h.material:e,h=h.group;k.modelViewMatrix.multiplyMatrices(b.matrixWorldInverse,k.matrixWorld);k.normalMatrix.getNormalMatrix(k.modelViewMatrix);ka.renderBufferDirect(b,c,d,l,m,k,h)}}function r(a,
|
|
|
|
-b,c,d,e){for(var f=e,g=0,h=a.length;g<h;g++){var k=a[g];k.modelViewMatrix.multiplyMatrices(b.matrixWorldInverse,k.matrixWorld);k.normalMatrix.getNormalMatrix(k.modelViewMatrix);void 0===e&&(f=k.material);v(f);var l=w(b,c,d,f,k);va="";k.render(function(a){ka.renderBufferImmediate(a,l,f)})}}function v(a){a.side!==THREE.DoubleSide?K.enable(s.CULL_FACE):K.disable(s.CULL_FACE);K.setFlipSided(a.side===THREE.BackSide);!0===a.transparent?K.setBlending(a.blending,a.blendEquation,a.blendSrc,a.blendDst,a.blendEquationAlpha,
|
|
|
|
-a.blendSrcAlpha,a.blendDstAlpha):K.setBlending(THREE.NoBlending);K.setDepthFunc(a.depthFunc);K.setDepthTest(a.depthTest);K.setDepthWrite(a.depthWrite);K.setColorWrite(a.colorWrite);K.setPolygonOffset(a.polygonOffset,a.polygonOffsetFactor,a.polygonOffsetUnits)}function w(a,b,c,d,e){var f,l,m,n;lb=0;var q=$.get(d);if(d.needsUpdate||!q.program){a:{for(var p=$.get(d),t=$b[d.type],r=0,w=0,v=0,L=0,y=0,A=b.length;y<A;y++){var B=b[y];B.onlyShadow||!1===B.visible||(B instanceof THREE.DirectionalLight&&r++,
|
|
|
|
-B instanceof THREE.PointLight&&w++,B instanceof THREE.SpotLight&&v++,B instanceof THREE.HemisphereLight&&L++)}f=r;l=w;m=v;n=L;for(var G,H=0,J=0,E=b.length;J<E;J++){var P=b[J];P.castShadow&&(P instanceof THREE.SpotLight&&H++,P instanceof THREE.DirectionalLight&&H++)}G=H;var Q;if(ia.floatVertexTextures&&e&&e.skeleton&&e.skeleton.useVertexTexture)Q=1024;else{var O=s.getParameter(s.MAX_VERTEX_UNIFORM_VECTORS),wa=Math.floor((O-20)/4);void 0!==e&&e instanceof THREE.SkinnedMesh&&(wa=Math.min(e.skeleton.bones.length,
|
|
|
|
-wa),wa<e.skeleton.bones.length&&console.warn("WebGLRenderer: too many bones - "+e.skeleton.bones.length+", this GPU supports just "+wa+" (try OpenGL instead of ANGLE)"));Q=wa}var R=ia.precision;null!==d.precision&&(R=ia.getMaxPrecision(d.precision),R!==d.precision&&console.warn("THREE.WebGLRenderer.initMaterial:",d.precision,"not supported, using",R,"instead."));var V={precision:R,supportsVertexTextures:ia.vertexTextures,map:!!d.map,envMap:!!d.envMap,envMapMode:d.envMap&&d.envMap.mapping,lightMap:!!d.lightMap,
|
|
|
|
-aoMap:!!d.aoMap,emissiveMap:!!d.emissiveMap,bumpMap:!!d.bumpMap,normalMap:!!d.normalMap,specularMap:!!d.specularMap,alphaMap:!!d.alphaMap,combine:d.combine,vertexColors:d.vertexColors,fog:c,useFog:d.fog,fogExp:c instanceof THREE.FogExp2,flatShading:d.shading===THREE.FlatShading,sizeAttenuation:d.sizeAttenuation,logarithmicDepthBuffer:ia.logarithmicDepthBuffer,skinning:d.skinning,maxBones:Q,useVertexTexture:ia.floatVertexTextures&&e&&e.skeleton&&e.skeleton.useVertexTexture,morphTargets:d.morphTargets,
|
|
|
|
-morphNormals:d.morphNormals,maxMorphTargets:ka.maxMorphTargets,maxMorphNormals:ka.maxMorphNormals,maxDirLights:f,maxPointLights:l,maxSpotLights:m,maxHemiLights:n,maxShadows:G,shadowMapEnabled:ma.enabled&&e.receiveShadow&&0<G,shadowMapType:ma.type,shadowMapDebug:ma.debug,alphaTest:d.alphaTest,metal:d.metal,doubleSided:d.side===THREE.DoubleSide,flipSided:d.side===THREE.BackSide},S=[];t?S.push(t):(S.push(d.fragmentShader),S.push(d.vertexShader));if(void 0!==d.defines)for(var ra in d.defines)S.push(ra),
|
|
|
|
-S.push(d.defines[ra]);for(ra in V)S.push(ra),S.push(V[ra]);var W=S.join(),Da=!0;if(p.program)if(p.program.code!==W)k(d);else if(void 0!==t)break a;else Da=!1;else d.addEventListener("dispose",h);if(t){var Ia=THREE.ShaderLib[t];p.__webglShader={name:d.type,uniforms:THREE.UniformsUtils.clone(Ia.uniforms),vertexShader:Ia.vertexShader,fragmentShader:Ia.fragmentShader}}else p.__webglShader={name:d.type,uniforms:d.uniforms,vertexShader:d.vertexShader,fragmentShader:d.fragmentShader};for(var Y,Ka=0,bb=qa.length;Ka<
|
|
|
|
-bb;Ka++){var Ra=qa[Ka];if(Ra.code===W){Y=Ra;Da&&Y.usedTimes++;break}}void 0===Y&&(d.__webglShader=p.__webglShader,Y=new THREE.WebGLProgram(ka,W,d,V),qa.push(Y),Ca.programs=qa.length);p.program=Y;d.program=Y;var Ja=Y.getAttributes();if(d.morphTargets)for(var ta=d.numSupportedMorphTargets=0;ta<ka.maxMorphTargets;ta++)0<=Ja["morphTarget"+ta]&&d.numSupportedMorphTargets++;if(d.morphNormals)for(ta=d.numSupportedMorphNormals=0;ta<ka.maxMorphNormals;ta++)0<=Ja["morphNormal"+ta]&&d.numSupportedMorphNormals++;
|
|
|
|
-p.uniformsList=[];var ab=p.program.getUniforms(),ja;for(ja in p.__webglShader.uniforms){var la=ab[ja];la&&p.uniformsList.push([p.__webglShader.uniforms[ja],la])}}d.needsUpdate=!1}var ua=!1,va=!1,sa=!1,cb=q.program,ca=cb.getUniforms(),I=q.__webglShader.uniforms;cb.id!==rb&&(s.useProgram(cb.program),rb=cb.id,sa=va=ua=!0);d.id!==$a&&(-1===$a&&(sa=!0),$a=d.id,va=!0);if(ua||a!==Za)s.uniformMatrix4fv(ca.projectionMatrix,!1,a.projectionMatrix.elements),ia.logarithmicDepthBuffer&&s.uniform1f(ca.logDepthBufFC,
|
|
|
|
-2/(Math.log(a.far+1)/Math.LN2)),a!==Za&&(Za=a),(d instanceof THREE.ShaderMaterial||d instanceof THREE.MeshPhongMaterial||d.envMap)&&void 0!==ca.cameraPosition&&(aa.setFromMatrixPosition(a.matrixWorld),s.uniform3f(ca.cameraPosition,aa.x,aa.y,aa.z)),(d instanceof THREE.MeshPhongMaterial||d instanceof THREE.MeshLambertMaterial||d instanceof THREE.MeshBasicMaterial||d instanceof THREE.ShaderMaterial||d.skinning)&&void 0!==ca.viewMatrix&&s.uniformMatrix4fv(ca.viewMatrix,!1,a.matrixWorldInverse.elements);
|
|
|
|
-if(d.skinning)if(e.bindMatrix&&void 0!==ca.bindMatrix&&s.uniformMatrix4fv(ca.bindMatrix,!1,e.bindMatrix.elements),e.bindMatrixInverse&&void 0!==ca.bindMatrixInverse&&s.uniformMatrix4fv(ca.bindMatrixInverse,!1,e.bindMatrixInverse.elements),ia.floatVertexTextures&&e.skeleton&&e.skeleton.useVertexTexture){if(void 0!==ca.boneTexture){var Ha=z();s.uniform1i(ca.boneTexture,Ha);ka.setTexture(e.skeleton.boneTexture,Ha)}void 0!==ca.boneTextureWidth&&s.uniform1i(ca.boneTextureWidth,e.skeleton.boneTextureWidth);
|
|
|
|
-void 0!==ca.boneTextureHeight&&s.uniform1i(ca.boneTextureHeight,e.skeleton.boneTextureHeight)}else e.skeleton&&e.skeleton.boneMatrices&&void 0!==ca.boneGlobalMatrices&&s.uniformMatrix4fv(ca.boneGlobalMatrices,!1,e.skeleton.boneMatrices);if(va){c&&d.fog&&(I.fogColor.value=c.color,c instanceof THREE.Fog?(I.fogNear.value=c.near,I.fogFar.value=c.far):c instanceof THREE.FogExp2&&(I.fogDensity.value=c.density));if(d instanceof THREE.MeshPhongMaterial||d instanceof THREE.MeshLambertMaterial||d.lights){if(jb){var sa=
|
|
|
|
-!0,ba,oa,Z,za=0,Aa=0,Ba=0,La,Qa,Sa,Ta,sb,da=Pb,db=a.matrixWorldInverse,tb=da.directional.colors,ub=da.directional.positions,vb=da.point.colors,wb=da.point.positions,kb=da.point.distances,pb=da.point.decays,xb=da.spot.colors,yb=da.spot.positions,qb=da.spot.distances,zb=da.spot.directions,Kb=da.spot.anglesCos,Lb=da.spot.exponents,Mb=da.spot.decays,Ab=da.hemi.skyColors,Bb=da.hemi.groundColors,Cb=da.hemi.positions,eb=0,Ma=0,xa=0,Ua=0,Db=0,Eb=0,Fb=0,mb=0,fb=0,gb=0,Ea=0,Va=0;ba=0;for(oa=b.length;ba<oa;ba++)Z=
|
|
|
|
-b[ba],Z.onlyShadow||(La=Z.color,Ta=Z.intensity,sb=Z.distance,Z instanceof THREE.AmbientLight?Z.visible&&(za+=La.r,Aa+=La.g,Ba+=La.b):Z instanceof THREE.DirectionalLight?(Db+=1,Z.visible&&(fa.setFromMatrixPosition(Z.matrixWorld),aa.setFromMatrixPosition(Z.target.matrixWorld),fa.sub(aa),fa.transformDirection(db),fb=3*eb,ub[fb+0]=fa.x,ub[fb+1]=fa.y,ub[fb+2]=fa.z,x(tb,fb,La,Ta),eb+=1)):Z instanceof THREE.PointLight?(Eb+=1,Z.visible&&(gb=3*Ma,x(vb,gb,La,Ta),aa.setFromMatrixPosition(Z.matrixWorld),aa.applyMatrix4(db),
|
|
|
|
-wb[gb+0]=aa.x,wb[gb+1]=aa.y,wb[gb+2]=aa.z,kb[Ma]=sb,pb[Ma]=0===Z.distance?0:Z.decay,Ma+=1)):Z instanceof THREE.SpotLight?(Fb+=1,Z.visible&&(Ea=3*xa,x(xb,Ea,La,Ta),fa.setFromMatrixPosition(Z.matrixWorld),aa.copy(fa).applyMatrix4(db),yb[Ea+0]=aa.x,yb[Ea+1]=aa.y,yb[Ea+2]=aa.z,qb[xa]=sb,aa.setFromMatrixPosition(Z.target.matrixWorld),fa.sub(aa),fa.transformDirection(db),zb[Ea+0]=fa.x,zb[Ea+1]=fa.y,zb[Ea+2]=fa.z,Kb[xa]=Math.cos(Z.angle),Lb[xa]=Z.exponent,Mb[xa]=0===Z.distance?0:Z.decay,xa+=1)):Z instanceof
|
|
|
|
-THREE.HemisphereLight&&(mb+=1,Z.visible&&(fa.setFromMatrixPosition(Z.matrixWorld),fa.transformDirection(db),Va=3*Ua,Cb[Va+0]=fa.x,Cb[Va+1]=fa.y,Cb[Va+2]=fa.z,Qa=Z.color,Sa=Z.groundColor,x(Ab,Va,Qa,Ta),x(Bb,Va,Sa,Ta),Ua+=1)));ba=3*eb;for(oa=Math.max(tb.length,3*Db);ba<oa;ba++)tb[ba]=0;ba=3*Ma;for(oa=Math.max(vb.length,3*Eb);ba<oa;ba++)vb[ba]=0;ba=3*xa;for(oa=Math.max(xb.length,3*Fb);ba<oa;ba++)xb[ba]=0;ba=3*Ua;for(oa=Math.max(Ab.length,3*mb);ba<oa;ba++)Ab[ba]=0;ba=3*Ua;for(oa=Math.max(Bb.length,3*
|
|
|
|
-mb);ba<oa;ba++)Bb[ba]=0;da.directional.length=eb;da.point.length=Ma;da.spot.length=xa;da.hemi.length=Ua;da.ambient[0]=za;da.ambient[1]=Aa;da.ambient[2]=Ba;jb=!1}if(sa){var ha=Pb;I.ambientLightColor.value=ha.ambient;I.directionalLightColor.value=ha.directional.colors;I.directionalLightDirection.value=ha.directional.positions;I.pointLightColor.value=ha.point.colors;I.pointLightPosition.value=ha.point.positions;I.pointLightDistance.value=ha.point.distances;I.pointLightDecay.value=ha.point.decays;I.spotLightColor.value=
|
|
|
|
-ha.spot.colors;I.spotLightPosition.value=ha.spot.positions;I.spotLightDistance.value=ha.spot.distances;I.spotLightDirection.value=ha.spot.directions;I.spotLightAngleCos.value=ha.spot.anglesCos;I.spotLightExponent.value=ha.spot.exponents;I.spotLightDecay.value=ha.spot.decays;I.hemisphereLightSkyColor.value=ha.hemi.skyColors;I.hemisphereLightGroundColor.value=ha.hemi.groundColors;I.hemisphereLightDirection.value=ha.hemi.positions;u(I,!0)}else u(I,!1)}if(d instanceof THREE.MeshBasicMaterial||d instanceof
|
|
|
|
-THREE.MeshLambertMaterial||d instanceof THREE.MeshPhongMaterial){I.opacity.value=d.opacity;I.diffuse.value=d.color;I.map.value=d.map;I.specularMap.value=d.specularMap;I.alphaMap.value=d.alphaMap;d.bumpMap&&(I.bumpMap.value=d.bumpMap,I.bumpScale.value=d.bumpScale);d.normalMap&&(I.normalMap.value=d.normalMap,I.normalScale.value.copy(d.normalScale));var ya;d.map?ya=d.map:d.specularMap?ya=d.specularMap:d.normalMap?ya=d.normalMap:d.bumpMap?ya=d.bumpMap:d.alphaMap?ya=d.alphaMap:d.emissiveMap&&(ya=d.emissiveMap);
|
|
|
|
-if(void 0!==ya){var Qb=ya.offset,Rb=ya.repeat;I.offsetRepeat.value.set(Qb.x,Qb.y,Rb.x,Rb.y)}I.envMap.value=d.envMap;I.flipEnvMap.value=d.envMap instanceof THREE.WebGLRenderTargetCube?1:-1;I.reflectivity.value=d.reflectivity;I.refractionRatio.value=d.refractionRatio}if(d instanceof THREE.LineBasicMaterial)I.diffuse.value=d.color,I.opacity.value=d.opacity;else if(d instanceof THREE.LineDashedMaterial)I.diffuse.value=d.color,I.opacity.value=d.opacity,I.dashSize.value=d.dashSize,I.totalSize.value=d.dashSize+
|
|
|
|
-d.gapSize,I.scale.value=d.scale;else if(d instanceof THREE.PointCloudMaterial){if(I.psColor.value=d.color,I.opacity.value=d.opacity,I.size.value=d.size,I.scale.value=C.height/2,I.map.value=d.map,null!==d.map){var Sb=d.map.offset,Tb=d.map.repeat;I.offsetRepeat.value.set(Sb.x,Sb.y,Tb.x,Tb.y)}}else d instanceof THREE.MeshPhongMaterial?(I.shininess.value=d.shininess,I.emissive.value=d.emissive,I.specular.value=d.specular,I.lightMap.value=d.lightMap,I.lightMapIntensity.value=d.lightMapIntensity,I.aoMap.value=
|
|
|
|
-d.aoMap,I.aoMapIntensity.value=d.aoMapIntensity,I.emissiveMap.value=d.emissiveMap):d instanceof THREE.MeshLambertMaterial?I.emissive.value=d.emissive:d instanceof THREE.MeshBasicMaterial?(I.aoMap.value=d.aoMap,I.aoMapIntensity.value=d.aoMapIntensity):d instanceof THREE.MeshDepthMaterial?(I.mNear.value=a.near,I.mFar.value=a.far,I.opacity.value=d.opacity):d instanceof THREE.MeshNormalMaterial&&(I.opacity.value=d.opacity);if(e.receiveShadow&&!d._shadowPass&&I.shadowMatrix)for(var Wa=0,Gb=0,Nb=b.length;Gb<
|
|
|
|
-Nb;Gb++){var Fa=b[Gb];Fa.castShadow&&(Fa instanceof THREE.SpotLight||Fa instanceof THREE.DirectionalLight)&&(I.shadowMap.value[Wa]=Fa.shadowMap,I.shadowMapSize.value[Wa]=Fa.shadowMapSize,I.shadowMatrix.value[Wa]=Fa.shadowMatrix,I.shadowDarkness.value[Wa]=Fa.shadowDarkness,I.shadowBias.value[Wa]=Fa.shadowBias,Wa++)}for(var Hb=q.uniformsList,pa,Na,nb=0,Ob=Hb.length;nb<Ob;nb++){var T=Hb[nb][0];if(!1!==T.needsUpdate){var Ub=T.type,M=T.value,X=Hb[nb][1];switch(Ub){case "1i":s.uniform1i(X,M);break;case "1f":s.uniform1f(X,
|
|
|
|
-M);break;case "2f":s.uniform2f(X,M[0],M[1]);break;case "3f":s.uniform3f(X,M[0],M[1],M[2]);break;case "4f":s.uniform4f(X,M[0],M[1],M[2],M[3]);break;case "1iv":s.uniform1iv(X,M);break;case "3iv":s.uniform3iv(X,M);break;case "1fv":s.uniform1fv(X,M);break;case "2fv":s.uniform2fv(X,M);break;case "3fv":s.uniform3fv(X,M);break;case "4fv":s.uniform4fv(X,M);break;case "Matrix3fv":s.uniformMatrix3fv(X,!1,M);break;case "Matrix4fv":s.uniformMatrix4fv(X,!1,M);break;case "i":s.uniform1i(X,M);break;case "f":s.uniform1f(X,
|
|
|
|
-M);break;case "v2":s.uniform2f(X,M.x,M.y);break;case "v3":s.uniform3f(X,M.x,M.y,M.z);break;case "v4":s.uniform4f(X,M.x,M.y,M.z,M.w);break;case "c":s.uniform3f(X,M.r,M.g,M.b);break;case "iv1":s.uniform1iv(X,M);break;case "iv":s.uniform3iv(X,M);break;case "fv1":s.uniform1fv(X,M);break;case "fv":s.uniform3fv(X,M);break;case "v2v":void 0===T._array&&(T._array=new Float32Array(2*M.length));for(var U=0,ob=0,na=M.length;U<na;U++,ob+=2)T._array[ob+0]=M[U].x,T._array[ob+1]=M[U].y;s.uniform2fv(X,T._array);
|
|
|
|
-break;case "v3v":void 0===T._array&&(T._array=new Float32Array(3*M.length));for(var hb=U=0,na=M.length;U<na;U++,hb+=3)T._array[hb+0]=M[U].x,T._array[hb+1]=M[U].y,T._array[hb+2]=M[U].z;s.uniform3fv(X,T._array);break;case "v4v":void 0===T._array&&(T._array=new Float32Array(4*M.length));for(var Xa=U=0,na=M.length;U<na;U++,Xa+=4)T._array[Xa+0]=M[U].x,T._array[Xa+1]=M[U].y,T._array[Xa+2]=M[U].z,T._array[Xa+3]=M[U].w;s.uniform4fv(X,T._array);break;case "m3":s.uniformMatrix3fv(X,!1,M.elements);break;case "m3v":void 0===
|
|
|
|
-T._array&&(T._array=new Float32Array(9*M.length));U=0;for(na=M.length;U<na;U++)M[U].flattenToArrayOffset(T._array,9*U);s.uniformMatrix3fv(X,!1,T._array);break;case "m4":s.uniformMatrix4fv(X,!1,M.elements);break;case "m4v":void 0===T._array&&(T._array=new Float32Array(16*M.length));U=0;for(na=M.length;U<na;U++)M[U].flattenToArrayOffset(T._array,16*U);s.uniformMatrix4fv(X,!1,T._array);break;case "t":pa=M;Na=z();s.uniform1i(X,Na);if(!pa)continue;if(pa instanceof THREE.CubeTexture||Array.isArray(pa.image)&&
|
|
|
|
-6===pa.image.length){var ea=pa,Vb=Na,Ya=$.get(ea);if(6===ea.image.length)if(0<ea.version&&Ya.__version!==ea.version){Ya.__image__webglTextureCube||(ea.addEventListener("dispose",g),Ya.__image__webglTextureCube=s.createTexture(),Ca.textures++);K.activeTexture(s.TEXTURE0+Vb);K.bindTexture(s.TEXTURE_CUBE_MAP,Ya.__image__webglTextureCube);s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,ea.flipY);for(var Wb=ea instanceof THREE.CompressedTexture,Ib=ea.image[0]instanceof THREE.DataTexture,Oa=[],ga=0;6>ga;ga++)Oa[ga]=
|
|
|
|
-!ka.autoScaleCubemaps||Wb||Ib?Ib?ea.image[ga].image:ea.image[ga]:F(ea.image[ga],ia.maxCubemapSize);var Xb=Oa[0],Yb=THREE.Math.isPowerOfTwo(Xb.width)&&THREE.Math.isPowerOfTwo(Xb.height),Ga=N(ea.format),Jb=N(ea.type);D(s.TEXTURE_CUBE_MAP,ea,Yb);for(ga=0;6>ga;ga++)if(Wb)for(var Pa,Zb=Oa[ga].mipmaps,ib=0,ac=Zb.length;ib<ac;ib++)Pa=Zb[ib],ea.format!==THREE.RGBAFormat&&ea.format!==THREE.RGBFormat?-1<K.getCompressedTextureFormats().indexOf(Ga)?K.compressedTexImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X+ga,ib,Ga,
|
|
|
|
-Pa.width,Pa.height,0,Pa.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setCubeTexture()"):K.texImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X+ga,ib,Ga,Pa.width,Pa.height,0,Ga,Jb,Pa.data);else Ib?K.texImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X+ga,0,Ga,Oa[ga].width,Oa[ga].height,0,Ga,Jb,Oa[ga].data):K.texImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X+ga,0,Ga,Ga,Jb,Oa[ga]);ea.generateMipmaps&&Yb&&s.generateMipmap(s.TEXTURE_CUBE_MAP);Ya.__version=ea.version;if(ea.onUpdate)ea.onUpdate(ea)}else K.activeTexture(s.TEXTURE0+
|
|
|
|
-Vb),K.bindTexture(s.TEXTURE_CUBE_MAP,Ya.__image__webglTextureCube)}else if(pa instanceof THREE.WebGLRenderTargetCube){var bc=pa;K.activeTexture(s.TEXTURE0+Na);K.bindTexture(s.TEXTURE_CUBE_MAP,$.get(bc).__webglTexture)}else ka.setTexture(pa,Na);break;case "tv":void 0===T._array&&(T._array=[]);U=0;for(na=T.value.length;U<na;U++)T._array[U]=z();s.uniform1iv(X,T._array);U=0;for(na=T.value.length;U<na;U++)pa=T.value[U],Na=T._array[U],pa&&ka.setTexture(pa,Na);break;default:console.warn("THREE.WebGLRenderer: Unknown uniform type: "+
|
|
|
|
-Ub)}}}}s.uniformMatrix4fv(ca.modelViewMatrix,!1,e.modelViewMatrix.elements);ca.normalMatrix&&s.uniformMatrix3fv(ca.normalMatrix,!1,e.normalMatrix.elements);void 0!==ca.modelMatrix&&s.uniformMatrix4fv(ca.modelMatrix,!1,e.matrixWorld.elements);return cb}function u(a,b){a.ambientLightColor.needsUpdate=b;a.directionalLightColor.needsUpdate=b;a.directionalLightDirection.needsUpdate=b;a.pointLightColor.needsUpdate=b;a.pointLightPosition.needsUpdate=b;a.pointLightDistance.needsUpdate=b;a.pointLightDecay.needsUpdate=
|
|
|
|
-b;a.spotLightColor.needsUpdate=b;a.spotLightPosition.needsUpdate=b;a.spotLightDistance.needsUpdate=b;a.spotLightDirection.needsUpdate=b;a.spotLightAngleCos.needsUpdate=b;a.spotLightExponent.needsUpdate=b;a.spotLightDecay.needsUpdate=b;a.hemisphereLightSkyColor.needsUpdate=b;a.hemisphereLightGroundColor.needsUpdate=b;a.hemisphereLightDirection.needsUpdate=b}function z(){var a=lb;a>=ia.maxTextures&&console.warn("WebGLRenderer: trying to use "+a+" texture units while this GPU supports only "+ia.maxTextures);
|
|
|
|
-lb+=1;return a}function x(a,b,c,d){a[b+0]=c.r*d;a[b+1]=c.g*d;a[b+2]=c.b*d}function D(a,b,c){c?(s.texParameteri(a,s.TEXTURE_WRAP_S,N(b.wrapS)),s.texParameteri(a,s.TEXTURE_WRAP_T,N(b.wrapT)),s.texParameteri(a,s.TEXTURE_MAG_FILTER,N(b.magFilter)),s.texParameteri(a,s.TEXTURE_MIN_FILTER,N(b.minFilter))):(s.texParameteri(a,s.TEXTURE_WRAP_S,s.CLAMP_TO_EDGE),s.texParameteri(a,s.TEXTURE_WRAP_T,s.CLAMP_TO_EDGE),b.wrapS===THREE.ClampToEdgeWrapping&&b.wrapT===THREE.ClampToEdgeWrapping||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping. ( "+
|
|
|
|
-b.sourceFile+" )"),s.texParameteri(a,s.TEXTURE_MAG_FILTER,L(b.magFilter)),s.texParameteri(a,s.TEXTURE_MIN_FILTER,L(b.minFilter)),b.minFilter!==THREE.NearestFilter&&b.minFilter!==THREE.LinearFilter&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter. ( "+b.sourceFile+" )"));!(c=W.get("EXT_texture_filter_anisotropic"))||b.type===THREE.FloatType&&null===W.get("OES_texture_float_linear")||b.type===THREE.HalfFloatType&&
|
|
|
|
-null===W.get("OES_texture_half_float_linear")||!(1<b.anisotropy||$.get(b).__currentAnisotropy)||(s.texParameterf(a,c.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(b.anisotropy,ka.getMaxAnisotropy())),$.get(b).__currentAnisotropy=b.anisotropy)}function F(a,b){if(a.width>b||a.height>b){var c=b/Math.max(a.width,a.height),d=document.createElement("canvas");d.width=Math.floor(a.width*c);d.height=Math.floor(a.height*c);d.getContext("2d").drawImage(a,0,0,a.width,a.height,0,0,d.width,d.height);console.warn("THREE.WebGLRenderer: image is too big ("+
|
|
|
|
|
|
+a.object.renderOrder-b.object.renderOrder:a.z!==b.z?b.z-a.z:a.id-b.id}function m(a,b,c,d,e){var f;c.transparent?(d=Da,f=++Ia):(d=la,f=++wa);f=d[f];void 0!==f?(f.id=a.id,f.object=a,f.geometry=b,f.material=c,f.z=ba.z,f.group=e):(f={id:a.id,object:a,geometry:b,material:c,z:ba.z,group:e},d.push(f))}function q(a){if(!1!==a.visible){if(a instanceof THREE.Light)Y.push(a);else if(a instanceof THREE.Sprite)Ra.push(a);else if(a instanceof THREE.LensFlare)ab.push(a);else if(a instanceof THREE.ImmediateRenderObject){var b,
|
|
|
|
+c;a.material.transparent?(b=Ja,c=++Ka):(b=ra,c=++bb);c<b.length?b[c]=a:b.push(a)}else if(a instanceof THREE.Mesh||a instanceof THREE.Line||a instanceof THREE.PointCloud)if(a instanceof THREE.SkinnedMesh&&a.skeleton.update(),!1===a.frustumCulled||!0===kb.intersectsObject(a)){var d=a.material;if(!0===d.visible)if(!0===ka.sortObjects&&(ba.setFromMatrixPosition(a.matrixWorld),ba.applyProjection(Sa)),b=sa.update(a),d instanceof THREE.MeshFaceMaterial){c=b.groups;for(var e=d.materials,d=0,f=c.length;d<
|
|
|
|
+f;d++){var g=c[d],h=e[g.materialIndex];!0===h.visible&&m(a,b,h,ba.z,g)}}else m(a,b,d,ba.z)}a=a.children;d=0;for(f=a.length;d<f;d++)q(a[d])}}function t(a,b,c,d,e){for(var f=0,g=a.length;f<g;f++){var h=a[f],k=h.object,l=h.geometry,m=void 0===e?h.material:e,h=h.group;k.modelViewMatrix.multiplyMatrices(b.matrixWorldInverse,k.matrixWorld);k.normalMatrix.getNormalMatrix(k.modelViewMatrix);ka.renderBufferDirect(b,c,d,l,m,k,h)}}function r(a,b,c,d,e){for(var f=e,g=0,h=a.length;g<h;g++){var k=a[g];k.modelViewMatrix.multiplyMatrices(b.matrixWorldInverse,
|
|
|
|
+k.matrixWorld);k.normalMatrix.getNormalMatrix(k.modelViewMatrix);void 0===e&&(f=k.material);v(f);var l=w(b,c,d,f,k);va="";k.render(function(a){ka.renderBufferImmediate(a,l,f)})}}function v(a){a.side!==THREE.DoubleSide?K.enable(s.CULL_FACE):K.disable(s.CULL_FACE);K.setFlipSided(a.side===THREE.BackSide);!0===a.transparent?K.setBlending(a.blending,a.blendEquation,a.blendSrc,a.blendDst,a.blendEquationAlpha,a.blendSrcAlpha,a.blendDstAlpha):K.setBlending(THREE.NoBlending);K.setDepthFunc(a.depthFunc);K.setDepthTest(a.depthTest);
|
|
|
|
+K.setDepthWrite(a.depthWrite);K.setColorWrite(a.colorWrite);K.setPolygonOffset(a.polygonOffset,a.polygonOffsetFactor,a.polygonOffsetUnits)}function w(a,b,c,d,e){var f,l,m,n;lb=0;var q=$.get(d);if(d.needsUpdate||!q.program){a:{for(var p=$.get(d),t=$b[d.type],r=0,w=0,v=0,L=0,y=0,A=b.length;y<A;y++){var B=b[y];B.onlyShadow||!1===B.visible||(B instanceof THREE.DirectionalLight&&r++,B instanceof THREE.PointLight&&w++,B instanceof THREE.SpotLight&&v++,B instanceof THREE.HemisphereLight&&L++)}f=r;l=w;m=
|
|
|
|
+v;n=L;for(var G,H=0,J=0,E=b.length;J<E;J++){var P=b[J];P.castShadow&&(P instanceof THREE.SpotLight&&H++,P instanceof THREE.DirectionalLight&&H++)}G=H;var Q;if(ia.floatVertexTextures&&e&&e.skeleton&&e.skeleton.useVertexTexture)Q=1024;else{var O=s.getParameter(s.MAX_VERTEX_UNIFORM_VECTORS),wa=Math.floor((O-20)/4);void 0!==e&&e instanceof THREE.SkinnedMesh&&(wa=Math.min(e.skeleton.bones.length,wa),wa<e.skeleton.bones.length&&console.warn("WebGLRenderer: too many bones - "+e.skeleton.bones.length+", this GPU supports just "+
|
|
|
|
+wa+" (try OpenGL instead of ANGLE)"));Q=wa}var R=ia.precision;null!==d.precision&&(R=ia.getMaxPrecision(d.precision),R!==d.precision&&console.warn("THREE.WebGLRenderer.initMaterial:",d.precision,"not supported, using",R,"instead."));var V={precision:R,supportsVertexTextures:ia.vertexTextures,map:!!d.map,envMap:!!d.envMap,envMapMode:d.envMap&&d.envMap.mapping,lightMap:!!d.lightMap,aoMap:!!d.aoMap,emissiveMap:!!d.emissiveMap,bumpMap:!!d.bumpMap,normalMap:!!d.normalMap,specularMap:!!d.specularMap,alphaMap:!!d.alphaMap,
|
|
|
|
+combine:d.combine,vertexColors:d.vertexColors,fog:c,useFog:d.fog,fogExp:c instanceof THREE.FogExp2,flatShading:d.shading===THREE.FlatShading,sizeAttenuation:d.sizeAttenuation,logarithmicDepthBuffer:ia.logarithmicDepthBuffer,skinning:d.skinning,maxBones:Q,useVertexTexture:ia.floatVertexTextures&&e&&e.skeleton&&e.skeleton.useVertexTexture,morphTargets:d.morphTargets,morphNormals:d.morphNormals,maxMorphTargets:ka.maxMorphTargets,maxMorphNormals:ka.maxMorphNormals,maxDirLights:f,maxPointLights:l,maxSpotLights:m,
|
|
|
|
+maxHemiLights:n,maxShadows:G,shadowMapEnabled:ma.enabled&&e.receiveShadow&&0<G,shadowMapType:ma.type,shadowMapDebug:ma.debug,alphaTest:d.alphaTest,metal:d.metal,doubleSided:d.side===THREE.DoubleSide,flipSided:d.side===THREE.BackSide},S=[];t?S.push(t):(S.push(d.fragmentShader),S.push(d.vertexShader));if(void 0!==d.defines)for(var ra in d.defines)S.push(ra),S.push(d.defines[ra]);for(ra in V)S.push(ra),S.push(V[ra]);var W=S.join(),Da=!0;if(p.program)if(p.program.code!==W)k(d);else if(void 0!==t)break a;
|
|
|
|
+else Da=!1;else d.addEventListener("dispose",h);if(t){var Ia=THREE.ShaderLib[t];p.__webglShader={name:d.type,uniforms:THREE.UniformsUtils.clone(Ia.uniforms),vertexShader:Ia.vertexShader,fragmentShader:Ia.fragmentShader}}else p.__webglShader={name:d.type,uniforms:d.uniforms,vertexShader:d.vertexShader,fragmentShader:d.fragmentShader};for(var Y,Ka=0,bb=qa.length;Ka<bb;Ka++){var Ra=qa[Ka];if(Ra.code===W){Y=Ra;Da&&Y.usedTimes++;break}}void 0===Y&&(d.__webglShader=p.__webglShader,Y=new THREE.WebGLProgram(ka,
|
|
|
|
+W,d,V),qa.push(Y),Ca.programs=qa.length);p.program=Y;d.program=Y;var Ja=Y.getAttributes();if(d.morphTargets)for(var ta=d.numSupportedMorphTargets=0;ta<ka.maxMorphTargets;ta++)0<=Ja["morphTarget"+ta]&&d.numSupportedMorphTargets++;if(d.morphNormals)for(ta=d.numSupportedMorphNormals=0;ta<ka.maxMorphNormals;ta++)0<=Ja["morphNormal"+ta]&&d.numSupportedMorphNormals++;p.uniformsList=[];var ab=p.program.getUniforms(),ja;for(ja in p.__webglShader.uniforms){var la=ab[ja];la&&p.uniformsList.push([p.__webglShader.uniforms[ja],
|
|
|
|
+la])}}d.needsUpdate=!1}var ua=!1,va=!1,sa=!1,cb=q.program,ca=cb.getUniforms(),I=q.__webglShader.uniforms;cb.id!==rb&&(s.useProgram(cb.program),rb=cb.id,sa=va=ua=!0);d.id!==$a&&(-1===$a&&(sa=!0),$a=d.id,va=!0);if(ua||a!==Za)s.uniformMatrix4fv(ca.projectionMatrix,!1,a.projectionMatrix.elements),ia.logarithmicDepthBuffer&&s.uniform1f(ca.logDepthBufFC,2/(Math.log(a.far+1)/Math.LN2)),a!==Za&&(Za=a),(d instanceof THREE.ShaderMaterial||d instanceof THREE.MeshPhongMaterial||d.envMap)&&void 0!==ca.cameraPosition&&
|
|
|
|
+(ba.setFromMatrixPosition(a.matrixWorld),s.uniform3f(ca.cameraPosition,ba.x,ba.y,ba.z)),(d instanceof THREE.MeshPhongMaterial||d instanceof THREE.MeshLambertMaterial||d instanceof THREE.MeshBasicMaterial||d instanceof THREE.ShaderMaterial||d.skinning)&&void 0!==ca.viewMatrix&&s.uniformMatrix4fv(ca.viewMatrix,!1,a.matrixWorldInverse.elements);if(d.skinning)if(e.bindMatrix&&void 0!==ca.bindMatrix&&s.uniformMatrix4fv(ca.bindMatrix,!1,e.bindMatrix.elements),e.bindMatrixInverse&&void 0!==ca.bindMatrixInverse&&
|
|
|
|
+s.uniformMatrix4fv(ca.bindMatrixInverse,!1,e.bindMatrixInverse.elements),ia.floatVertexTextures&&e.skeleton&&e.skeleton.useVertexTexture){if(void 0!==ca.boneTexture){var Ha=z();s.uniform1i(ca.boneTexture,Ha);ka.setTexture(e.skeleton.boneTexture,Ha)}void 0!==ca.boneTextureWidth&&s.uniform1i(ca.boneTextureWidth,e.skeleton.boneTextureWidth);void 0!==ca.boneTextureHeight&&s.uniform1i(ca.boneTextureHeight,e.skeleton.boneTextureHeight)}else e.skeleton&&e.skeleton.boneMatrices&&void 0!==ca.boneGlobalMatrices&&
|
|
|
|
+s.uniformMatrix4fv(ca.boneGlobalMatrices,!1,e.skeleton.boneMatrices);if(va){c&&d.fog&&(I.fogColor.value=c.color,c instanceof THREE.Fog?(I.fogNear.value=c.near,I.fogFar.value=c.far):c instanceof THREE.FogExp2&&(I.fogDensity.value=c.density));if(d instanceof THREE.MeshPhongMaterial||d instanceof THREE.MeshLambertMaterial||d.lights){if(jb){var sa=!0,aa,oa,Z,za=0,Aa=0,Ba=0,La,Qa,Sa,Ta,sb,da=Pb,db=a.matrixWorldInverse,tb=da.directional.colors,ub=da.directional.positions,vb=da.point.colors,wb=da.point.positions,
|
|
|
|
+kb=da.point.distances,pb=da.point.decays,xb=da.spot.colors,yb=da.spot.positions,qb=da.spot.distances,zb=da.spot.directions,Kb=da.spot.anglesCos,Lb=da.spot.exponents,Mb=da.spot.decays,Ab=da.hemi.skyColors,Bb=da.hemi.groundColors,Cb=da.hemi.positions,eb=0,Ma=0,xa=0,Ua=0,Db=0,Eb=0,Fb=0,mb=0,fb=0,gb=0,Ea=0,Va=0;aa=0;for(oa=b.length;aa<oa;aa++)Z=b[aa],Z.onlyShadow||(La=Z.color,Ta=Z.intensity,sb=Z.distance,Z instanceof THREE.AmbientLight?Z.visible&&(za+=La.r,Aa+=La.g,Ba+=La.b):Z instanceof THREE.DirectionalLight?
|
|
|
|
+(Db+=1,Z.visible&&(fa.setFromMatrixPosition(Z.matrixWorld),ba.setFromMatrixPosition(Z.target.matrixWorld),fa.sub(ba),fa.transformDirection(db),fb=3*eb,ub[fb+0]=fa.x,ub[fb+1]=fa.y,ub[fb+2]=fa.z,x(tb,fb,La,Ta),eb+=1)):Z instanceof THREE.PointLight?(Eb+=1,Z.visible&&(gb=3*Ma,x(vb,gb,La,Ta),ba.setFromMatrixPosition(Z.matrixWorld),ba.applyMatrix4(db),wb[gb+0]=ba.x,wb[gb+1]=ba.y,wb[gb+2]=ba.z,kb[Ma]=sb,pb[Ma]=0===Z.distance?0:Z.decay,Ma+=1)):Z instanceof THREE.SpotLight?(Fb+=1,Z.visible&&(Ea=3*xa,x(xb,
|
|
|
|
+Ea,La,Ta),fa.setFromMatrixPosition(Z.matrixWorld),ba.copy(fa).applyMatrix4(db),yb[Ea+0]=ba.x,yb[Ea+1]=ba.y,yb[Ea+2]=ba.z,qb[xa]=sb,ba.setFromMatrixPosition(Z.target.matrixWorld),fa.sub(ba),fa.transformDirection(db),zb[Ea+0]=fa.x,zb[Ea+1]=fa.y,zb[Ea+2]=fa.z,Kb[xa]=Math.cos(Z.angle),Lb[xa]=Z.exponent,Mb[xa]=0===Z.distance?0:Z.decay,xa+=1)):Z instanceof THREE.HemisphereLight&&(mb+=1,Z.visible&&(fa.setFromMatrixPosition(Z.matrixWorld),fa.transformDirection(db),Va=3*Ua,Cb[Va+0]=fa.x,Cb[Va+1]=fa.y,Cb[Va+
|
|
|
|
+2]=fa.z,Qa=Z.color,Sa=Z.groundColor,x(Ab,Va,Qa,Ta),x(Bb,Va,Sa,Ta),Ua+=1)));aa=3*eb;for(oa=Math.max(tb.length,3*Db);aa<oa;aa++)tb[aa]=0;aa=3*Ma;for(oa=Math.max(vb.length,3*Eb);aa<oa;aa++)vb[aa]=0;aa=3*xa;for(oa=Math.max(xb.length,3*Fb);aa<oa;aa++)xb[aa]=0;aa=3*Ua;for(oa=Math.max(Ab.length,3*mb);aa<oa;aa++)Ab[aa]=0;aa=3*Ua;for(oa=Math.max(Bb.length,3*mb);aa<oa;aa++)Bb[aa]=0;da.directional.length=eb;da.point.length=Ma;da.spot.length=xa;da.hemi.length=Ua;da.ambient[0]=za;da.ambient[1]=Aa;da.ambient[2]=
|
|
|
|
+Ba;jb=!1}if(sa){var ha=Pb;I.ambientLightColor.value=ha.ambient;I.directionalLightColor.value=ha.directional.colors;I.directionalLightDirection.value=ha.directional.positions;I.pointLightColor.value=ha.point.colors;I.pointLightPosition.value=ha.point.positions;I.pointLightDistance.value=ha.point.distances;I.pointLightDecay.value=ha.point.decays;I.spotLightColor.value=ha.spot.colors;I.spotLightPosition.value=ha.spot.positions;I.spotLightDistance.value=ha.spot.distances;I.spotLightDirection.value=ha.spot.directions;
|
|
|
|
+I.spotLightAngleCos.value=ha.spot.anglesCos;I.spotLightExponent.value=ha.spot.exponents;I.spotLightDecay.value=ha.spot.decays;I.hemisphereLightSkyColor.value=ha.hemi.skyColors;I.hemisphereLightGroundColor.value=ha.hemi.groundColors;I.hemisphereLightDirection.value=ha.hemi.positions;u(I,!0)}else u(I,!1)}if(d instanceof THREE.MeshBasicMaterial||d instanceof THREE.MeshLambertMaterial||d instanceof THREE.MeshPhongMaterial){I.opacity.value=d.opacity;I.diffuse.value=d.color;I.map.value=d.map;I.specularMap.value=
|
|
|
|
+d.specularMap;I.alphaMap.value=d.alphaMap;d.bumpMap&&(I.bumpMap.value=d.bumpMap,I.bumpScale.value=d.bumpScale);d.normalMap&&(I.normalMap.value=d.normalMap,I.normalScale.value.copy(d.normalScale));var ya;d.map?ya=d.map:d.specularMap?ya=d.specularMap:d.normalMap?ya=d.normalMap:d.bumpMap?ya=d.bumpMap:d.alphaMap?ya=d.alphaMap:d.emissiveMap&&(ya=d.emissiveMap);if(void 0!==ya){var Qb=ya.offset,Rb=ya.repeat;I.offsetRepeat.value.set(Qb.x,Qb.y,Rb.x,Rb.y)}I.envMap.value=d.envMap;I.flipEnvMap.value=d.envMap instanceof
|
|
|
|
+THREE.WebGLRenderTargetCube?1:-1;I.reflectivity.value=d.reflectivity;I.refractionRatio.value=d.refractionRatio}if(d instanceof THREE.LineBasicMaterial)I.diffuse.value=d.color,I.opacity.value=d.opacity;else if(d instanceof THREE.LineDashedMaterial)I.diffuse.value=d.color,I.opacity.value=d.opacity,I.dashSize.value=d.dashSize,I.totalSize.value=d.dashSize+d.gapSize,I.scale.value=d.scale;else if(d instanceof THREE.PointCloudMaterial){if(I.psColor.value=d.color,I.opacity.value=d.opacity,I.size.value=d.size,
|
|
|
|
+I.scale.value=C.height/2,I.map.value=d.map,null!==d.map){var Sb=d.map.offset,Tb=d.map.repeat;I.offsetRepeat.value.set(Sb.x,Sb.y,Tb.x,Tb.y)}}else d instanceof THREE.MeshPhongMaterial?(I.shininess.value=d.shininess,I.emissive.value=d.emissive,I.specular.value=d.specular,I.lightMap.value=d.lightMap,I.lightMapIntensity.value=d.lightMapIntensity,I.aoMap.value=d.aoMap,I.aoMapIntensity.value=d.aoMapIntensity,I.emissiveMap.value=d.emissiveMap):d instanceof THREE.MeshLambertMaterial?I.emissive.value=d.emissive:
|
|
|
|
+d instanceof THREE.MeshBasicMaterial?(I.aoMap.value=d.aoMap,I.aoMapIntensity.value=d.aoMapIntensity):d instanceof THREE.MeshDepthMaterial?(I.mNear.value=a.near,I.mFar.value=a.far,I.opacity.value=d.opacity):d instanceof THREE.MeshNormalMaterial&&(I.opacity.value=d.opacity);if(e.receiveShadow&&!d._shadowPass&&I.shadowMatrix)for(var Wa=0,Gb=0,Nb=b.length;Gb<Nb;Gb++){var Fa=b[Gb];Fa.castShadow&&(Fa instanceof THREE.SpotLight||Fa instanceof THREE.DirectionalLight)&&(I.shadowMap.value[Wa]=Fa.shadowMap,
|
|
|
|
+I.shadowMapSize.value[Wa]=Fa.shadowMapSize,I.shadowMatrix.value[Wa]=Fa.shadowMatrix,I.shadowDarkness.value[Wa]=Fa.shadowDarkness,I.shadowBias.value[Wa]=Fa.shadowBias,Wa++)}for(var Hb=q.uniformsList,pa,Na,nb=0,Ob=Hb.length;nb<Ob;nb++){var T=Hb[nb][0];if(!1!==T.needsUpdate){var Ub=T.type,M=T.value,X=Hb[nb][1];switch(Ub){case "1i":s.uniform1i(X,M);break;case "1f":s.uniform1f(X,M);break;case "2f":s.uniform2f(X,M[0],M[1]);break;case "3f":s.uniform3f(X,M[0],M[1],M[2]);break;case "4f":s.uniform4f(X,M[0],
|
|
|
|
+M[1],M[2],M[3]);break;case "1iv":s.uniform1iv(X,M);break;case "3iv":s.uniform3iv(X,M);break;case "1fv":s.uniform1fv(X,M);break;case "2fv":s.uniform2fv(X,M);break;case "3fv":s.uniform3fv(X,M);break;case "4fv":s.uniform4fv(X,M);break;case "Matrix3fv":s.uniformMatrix3fv(X,!1,M);break;case "Matrix4fv":s.uniformMatrix4fv(X,!1,M);break;case "i":s.uniform1i(X,M);break;case "f":s.uniform1f(X,M);break;case "v2":s.uniform2f(X,M.x,M.y);break;case "v3":s.uniform3f(X,M.x,M.y,M.z);break;case "v4":s.uniform4f(X,
|
|
|
|
+M.x,M.y,M.z,M.w);break;case "c":s.uniform3f(X,M.r,M.g,M.b);break;case "iv1":s.uniform1iv(X,M);break;case "iv":s.uniform3iv(X,M);break;case "fv1":s.uniform1fv(X,M);break;case "fv":s.uniform3fv(X,M);break;case "v2v":void 0===T._array&&(T._array=new Float32Array(2*M.length));for(var U=0,ob=0,na=M.length;U<na;U++,ob+=2)T._array[ob+0]=M[U].x,T._array[ob+1]=M[U].y;s.uniform2fv(X,T._array);break;case "v3v":void 0===T._array&&(T._array=new Float32Array(3*M.length));for(var hb=U=0,na=M.length;U<na;U++,hb+=
|
|
|
|
+3)T._array[hb+0]=M[U].x,T._array[hb+1]=M[U].y,T._array[hb+2]=M[U].z;s.uniform3fv(X,T._array);break;case "v4v":void 0===T._array&&(T._array=new Float32Array(4*M.length));for(var Xa=U=0,na=M.length;U<na;U++,Xa+=4)T._array[Xa+0]=M[U].x,T._array[Xa+1]=M[U].y,T._array[Xa+2]=M[U].z,T._array[Xa+3]=M[U].w;s.uniform4fv(X,T._array);break;case "m3":s.uniformMatrix3fv(X,!1,M.elements);break;case "m3v":void 0===T._array&&(T._array=new Float32Array(9*M.length));U=0;for(na=M.length;U<na;U++)M[U].flattenToArrayOffset(T._array,
|
|
|
|
+9*U);s.uniformMatrix3fv(X,!1,T._array);break;case "m4":s.uniformMatrix4fv(X,!1,M.elements);break;case "m4v":void 0===T._array&&(T._array=new Float32Array(16*M.length));U=0;for(na=M.length;U<na;U++)M[U].flattenToArrayOffset(T._array,16*U);s.uniformMatrix4fv(X,!1,T._array);break;case "t":pa=M;Na=z();s.uniform1i(X,Na);if(!pa)continue;if(pa instanceof THREE.CubeTexture||Array.isArray(pa.image)&&6===pa.image.length){var ea=pa,Vb=Na,Ya=$.get(ea);if(6===ea.image.length)if(0<ea.version&&Ya.__version!==ea.version){Ya.__image__webglTextureCube||
|
|
|
|
+(ea.addEventListener("dispose",g),Ya.__image__webglTextureCube=s.createTexture(),Ca.textures++);K.activeTexture(s.TEXTURE0+Vb);K.bindTexture(s.TEXTURE_CUBE_MAP,Ya.__image__webglTextureCube);s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,ea.flipY);for(var Wb=ea instanceof THREE.CompressedTexture,Ib=ea.image[0]instanceof THREE.DataTexture,Oa=[],ga=0;6>ga;ga++)Oa[ga]=!ka.autoScaleCubemaps||Wb||Ib?Ib?ea.image[ga].image:ea.image[ga]:F(ea.image[ga],ia.maxCubemapSize);var Xb=Oa[0],Yb=THREE.Math.isPowerOfTwo(Xb.width)&&
|
|
|
|
+THREE.Math.isPowerOfTwo(Xb.height),Ga=N(ea.format),Jb=N(ea.type);D(s.TEXTURE_CUBE_MAP,ea,Yb);for(ga=0;6>ga;ga++)if(Wb)for(var Pa,Zb=Oa[ga].mipmaps,ib=0,ac=Zb.length;ib<ac;ib++)Pa=Zb[ib],ea.format!==THREE.RGBAFormat&&ea.format!==THREE.RGBFormat?-1<K.getCompressedTextureFormats().indexOf(Ga)?K.compressedTexImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X+ga,ib,Ga,Pa.width,Pa.height,0,Pa.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setCubeTexture()"):K.texImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X+
|
|
|
|
+ga,ib,Ga,Pa.width,Pa.height,0,Ga,Jb,Pa.data);else Ib?K.texImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X+ga,0,Ga,Oa[ga].width,Oa[ga].height,0,Ga,Jb,Oa[ga].data):K.texImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X+ga,0,Ga,Ga,Jb,Oa[ga]);ea.generateMipmaps&&Yb&&s.generateMipmap(s.TEXTURE_CUBE_MAP);Ya.__version=ea.version;if(ea.onUpdate)ea.onUpdate(ea)}else K.activeTexture(s.TEXTURE0+Vb),K.bindTexture(s.TEXTURE_CUBE_MAP,Ya.__image__webglTextureCube)}else if(pa instanceof THREE.WebGLRenderTargetCube){var bc=pa;K.activeTexture(s.TEXTURE0+
|
|
|
|
+Na);K.bindTexture(s.TEXTURE_CUBE_MAP,$.get(bc).__webglTexture)}else ka.setTexture(pa,Na);break;case "tv":void 0===T._array&&(T._array=[]);U=0;for(na=T.value.length;U<na;U++)T._array[U]=z();s.uniform1iv(X,T._array);U=0;for(na=T.value.length;U<na;U++)pa=T.value[U],Na=T._array[U],pa&&ka.setTexture(pa,Na);break;default:console.warn("THREE.WebGLRenderer: Unknown uniform type: "+Ub)}}}}s.uniformMatrix4fv(ca.modelViewMatrix,!1,e.modelViewMatrix.elements);ca.normalMatrix&&s.uniformMatrix3fv(ca.normalMatrix,
|
|
|
|
+!1,e.normalMatrix.elements);void 0!==ca.modelMatrix&&s.uniformMatrix4fv(ca.modelMatrix,!1,e.matrixWorld.elements);return cb}function u(a,b){a.ambientLightColor.needsUpdate=b;a.directionalLightColor.needsUpdate=b;a.directionalLightDirection.needsUpdate=b;a.pointLightColor.needsUpdate=b;a.pointLightPosition.needsUpdate=b;a.pointLightDistance.needsUpdate=b;a.pointLightDecay.needsUpdate=b;a.spotLightColor.needsUpdate=b;a.spotLightPosition.needsUpdate=b;a.spotLightDistance.needsUpdate=b;a.spotLightDirection.needsUpdate=
|
|
|
|
+b;a.spotLightAngleCos.needsUpdate=b;a.spotLightExponent.needsUpdate=b;a.spotLightDecay.needsUpdate=b;a.hemisphereLightSkyColor.needsUpdate=b;a.hemisphereLightGroundColor.needsUpdate=b;a.hemisphereLightDirection.needsUpdate=b}function z(){var a=lb;a>=ia.maxTextures&&console.warn("WebGLRenderer: trying to use "+a+" texture units while this GPU supports only "+ia.maxTextures);lb+=1;return a}function x(a,b,c,d){a[b+0]=c.r*d;a[b+1]=c.g*d;a[b+2]=c.b*d}function D(a,b,c){c?(s.texParameteri(a,s.TEXTURE_WRAP_S,
|
|
|
|
+N(b.wrapS)),s.texParameteri(a,s.TEXTURE_WRAP_T,N(b.wrapT)),s.texParameteri(a,s.TEXTURE_MAG_FILTER,N(b.magFilter)),s.texParameteri(a,s.TEXTURE_MIN_FILTER,N(b.minFilter))):(s.texParameteri(a,s.TEXTURE_WRAP_S,s.CLAMP_TO_EDGE),s.texParameteri(a,s.TEXTURE_WRAP_T,s.CLAMP_TO_EDGE),b.wrapS===THREE.ClampToEdgeWrapping&&b.wrapT===THREE.ClampToEdgeWrapping||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping. ( "+b.sourceFile+
|
|
|
|
+" )"),s.texParameteri(a,s.TEXTURE_MAG_FILTER,L(b.magFilter)),s.texParameteri(a,s.TEXTURE_MIN_FILTER,L(b.minFilter)),b.minFilter!==THREE.NearestFilter&&b.minFilter!==THREE.LinearFilter&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter. ( "+b.sourceFile+" )"));!(c=W.get("EXT_texture_filter_anisotropic"))||b.type===THREE.FloatType&&null===W.get("OES_texture_float_linear")||b.type===THREE.HalfFloatType&&null===
|
|
|
|
+W.get("OES_texture_half_float_linear")||!(1<b.anisotropy||$.get(b).__currentAnisotropy)||(s.texParameterf(a,c.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(b.anisotropy,ka.getMaxAnisotropy())),$.get(b).__currentAnisotropy=b.anisotropy)}function F(a,b){if(a.width>b||a.height>b){var c=b/Math.max(a.width,a.height),d=document.createElement("canvas");d.width=Math.floor(a.width*c);d.height=Math.floor(a.height*c);d.getContext("2d").drawImage(a,0,0,a.width,a.height,0,0,d.width,d.height);console.warn("THREE.WebGLRenderer: image is too big ("+
|
|
a.width+"x"+a.height+"). Resized to "+d.width+"x"+d.height,a);return d}return a}function y(a,b,c){s.bindFramebuffer(s.FRAMEBUFFER,a);s.framebufferTexture2D(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0,c,$.get(b).__webglTexture,0)}function B(a,b){s.bindRenderbuffer(s.RENDERBUFFER,a);b.depthBuffer&&!b.stencilBuffer?(s.renderbufferStorage(s.RENDERBUFFER,s.DEPTH_COMPONENT16,b.width,b.height),s.framebufferRenderbuffer(s.FRAMEBUFFER,s.DEPTH_ATTACHMENT,s.RENDERBUFFER,a)):b.depthBuffer&&b.stencilBuffer?(s.renderbufferStorage(s.RENDERBUFFER,
|
|
a.width+"x"+a.height+"). Resized to "+d.width+"x"+d.height,a);return d}return a}function y(a,b,c){s.bindFramebuffer(s.FRAMEBUFFER,a);s.framebufferTexture2D(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0,c,$.get(b).__webglTexture,0)}function B(a,b){s.bindRenderbuffer(s.RENDERBUFFER,a);b.depthBuffer&&!b.stencilBuffer?(s.renderbufferStorage(s.RENDERBUFFER,s.DEPTH_COMPONENT16,b.width,b.height),s.framebufferRenderbuffer(s.FRAMEBUFFER,s.DEPTH_ATTACHMENT,s.RENDERBUFFER,a)):b.depthBuffer&&b.stencilBuffer?(s.renderbufferStorage(s.RENDERBUFFER,
|
|
s.DEPTH_STENCIL,b.width,b.height),s.framebufferRenderbuffer(s.FRAMEBUFFER,s.DEPTH_STENCIL_ATTACHMENT,s.RENDERBUFFER,a)):s.renderbufferStorage(s.RENDERBUFFER,s.RGBA4,b.width,b.height)}function L(a){return a===THREE.NearestFilter||a===THREE.NearestMipMapNearestFilter||a===THREE.NearestMipMapLinearFilter?s.NEAREST:s.LINEAR}function N(a){var b;if(a===THREE.RepeatWrapping)return s.REPEAT;if(a===THREE.ClampToEdgeWrapping)return s.CLAMP_TO_EDGE;if(a===THREE.MirroredRepeatWrapping)return s.MIRRORED_REPEAT;
|
|
s.DEPTH_STENCIL,b.width,b.height),s.framebufferRenderbuffer(s.FRAMEBUFFER,s.DEPTH_STENCIL_ATTACHMENT,s.RENDERBUFFER,a)):s.renderbufferStorage(s.RENDERBUFFER,s.RGBA4,b.width,b.height)}function L(a){return a===THREE.NearestFilter||a===THREE.NearestMipMapNearestFilter||a===THREE.NearestMipMapLinearFilter?s.NEAREST:s.LINEAR}function N(a){var b;if(a===THREE.RepeatWrapping)return s.REPEAT;if(a===THREE.ClampToEdgeWrapping)return s.CLAMP_TO_EDGE;if(a===THREE.MirroredRepeatWrapping)return s.MIRRORED_REPEAT;
|
|
if(a===THREE.NearestFilter)return s.NEAREST;if(a===THREE.NearestMipMapNearestFilter)return s.NEAREST_MIPMAP_NEAREST;if(a===THREE.NearestMipMapLinearFilter)return s.NEAREST_MIPMAP_LINEAR;if(a===THREE.LinearFilter)return s.LINEAR;if(a===THREE.LinearMipMapNearestFilter)return s.LINEAR_MIPMAP_NEAREST;if(a===THREE.LinearMipMapLinearFilter)return s.LINEAR_MIPMAP_LINEAR;if(a===THREE.UnsignedByteType)return s.UNSIGNED_BYTE;if(a===THREE.UnsignedShort4444Type)return s.UNSIGNED_SHORT_4_4_4_4;if(a===THREE.UnsignedShort5551Type)return s.UNSIGNED_SHORT_5_5_5_1;
|
|
if(a===THREE.NearestFilter)return s.NEAREST;if(a===THREE.NearestMipMapNearestFilter)return s.NEAREST_MIPMAP_NEAREST;if(a===THREE.NearestMipMapLinearFilter)return s.NEAREST_MIPMAP_LINEAR;if(a===THREE.LinearFilter)return s.LINEAR;if(a===THREE.LinearMipMapNearestFilter)return s.LINEAR_MIPMAP_NEAREST;if(a===THREE.LinearMipMapLinearFilter)return s.LINEAR_MIPMAP_LINEAR;if(a===THREE.UnsignedByteType)return s.UNSIGNED_BYTE;if(a===THREE.UnsignedShort4444Type)return s.UNSIGNED_SHORT_4_4_4_4;if(a===THREE.UnsignedShort5551Type)return s.UNSIGNED_SHORT_5_5_5_1;
|
|
@@ -536,7 +536,7 @@ if(a===THREE.OneMinusSrcAlphaFactor)return s.ONE_MINUS_SRC_ALPHA;if(a===THREE.Ds
|
|
if(a===THREE.RGBA_S3TC_DXT3_Format)return b.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(a===THREE.RGBA_S3TC_DXT5_Format)return b.COMPRESSED_RGBA_S3TC_DXT5_EXT}b=W.get("WEBGL_compressed_texture_pvrtc");if(null!==b){if(a===THREE.RGB_PVRTC_4BPPV1_Format)return b.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(a===THREE.RGB_PVRTC_2BPPV1_Format)return b.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(a===THREE.RGBA_PVRTC_4BPPV1_Format)return b.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(a===THREE.RGBA_PVRTC_2BPPV1_Format)return b.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}b=
|
|
if(a===THREE.RGBA_S3TC_DXT3_Format)return b.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(a===THREE.RGBA_S3TC_DXT5_Format)return b.COMPRESSED_RGBA_S3TC_DXT5_EXT}b=W.get("WEBGL_compressed_texture_pvrtc");if(null!==b){if(a===THREE.RGB_PVRTC_4BPPV1_Format)return b.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(a===THREE.RGB_PVRTC_2BPPV1_Format)return b.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(a===THREE.RGBA_PVRTC_4BPPV1_Format)return b.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(a===THREE.RGBA_PVRTC_2BPPV1_Format)return b.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}b=
|
|
W.get("EXT_blend_minmax");if(null!==b){if(a===THREE.MinEquation)return b.MIN_EXT;if(a===THREE.MaxEquation)return b.MAX_EXT}return 0}console.log("THREE.WebGLRenderer",THREE.REVISION);a=a||{};var C=void 0!==a.canvas?a.canvas:document.createElement("canvas"),O=void 0!==a.context?a.context:null,G=C.width,J=C.height,A=1,H=void 0!==a.alpha?a.alpha:!1,P=void 0!==a.depth?a.depth:!0,Q=void 0!==a.stencil?a.stencil:!0,V=void 0!==a.antialias?a.antialias:!1,R=void 0!==a.premultipliedAlpha?a.premultipliedAlpha:
|
|
W.get("EXT_blend_minmax");if(null!==b){if(a===THREE.MinEquation)return b.MIN_EXT;if(a===THREE.MaxEquation)return b.MAX_EXT}return 0}console.log("THREE.WebGLRenderer",THREE.REVISION);a=a||{};var C=void 0!==a.canvas?a.canvas:document.createElement("canvas"),O=void 0!==a.context?a.context:null,G=C.width,J=C.height,A=1,H=void 0!==a.alpha?a.alpha:!1,P=void 0!==a.depth?a.depth:!0,Q=void 0!==a.stencil?a.stencil:!0,V=void 0!==a.antialias?a.antialias:!1,R=void 0!==a.premultipliedAlpha?a.premultipliedAlpha:
|
|
!0,S=void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:!1,E=new THREE.Color(0),ja=0,Y=[],la=[],wa=-1,Da=[],Ia=-1,ra=[],bb=-1,Ja=[],Ka=-1,ta=new Float32Array(8),Ra=[],ab=[];this.domElement=C;this.context=null;this.sortObjects=this.autoClearStencil=this.autoClearDepth=this.autoClearColor=this.autoClear=!0;this.gammaFactor=2;this.gammaOutput=this.gammaInput=!1;this.maxMorphTargets=8;this.maxMorphNormals=4;this.autoScaleCubemaps=!0;var ka=this,qa=[],rb=null,Qa=null,$a=-1,va="",Za=null,lb=0,Ha=
|
|
!0,S=void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:!1,E=new THREE.Color(0),ja=0,Y=[],la=[],wa=-1,Da=[],Ia=-1,ra=[],bb=-1,Ja=[],Ka=-1,ta=new Float32Array(8),Ra=[],ab=[];this.domElement=C;this.context=null;this.sortObjects=this.autoClearStencil=this.autoClearDepth=this.autoClearColor=this.autoClear=!0;this.gammaFactor=2;this.gammaOutput=this.gammaInput=!1;this.maxMorphTargets=8;this.maxMorphNormals=4;this.autoScaleCubemaps=!0;var ka=this,qa=[],rb=null,Qa=null,$a=-1,va="",Za=null,lb=0,Ha=
|
|
-0,za=0,Aa=C.width,Ba=C.height,pb=0,qb=0,kb=new THREE.Frustum,Sa=new THREE.Matrix4,aa=new THREE.Vector3,fa=new THREE.Vector3,jb=!0,Pb={ambient:[0,0,0],directional:{length:0,colors:[],positions:[]},point:{length:0,colors:[],positions:[],distances:[],decays:[]},spot:{length:0,colors:[],positions:[],distances:[],directions:[],anglesCos:[],exponents:[],decays:[]},hemi:{length:0,skyColors:[],groundColors:[],positions:[]}},Ca={programs:0,geometries:0,textures:0},ua={calls:0,vertices:0,faces:0,points:0};
|
|
|
|
|
|
+0,za=0,Aa=C.width,Ba=C.height,pb=0,qb=0,kb=new THREE.Frustum,Sa=new THREE.Matrix4,ba=new THREE.Vector3,fa=new THREE.Vector3,jb=!0,Pb={ambient:[0,0,0],directional:{length:0,colors:[],positions:[]},point:{length:0,colors:[],positions:[],distances:[],decays:[]},spot:{length:0,colors:[],positions:[],distances:[],directions:[],anglesCos:[],exponents:[],decays:[]},hemi:{length:0,skyColors:[],groundColors:[],positions:[]}},Ca={programs:0,geometries:0,textures:0},ua={calls:0,vertices:0,faces:0,points:0};
|
|
this.info={render:ua,memory:Ca,programs:qa};var s;try{H={alpha:H,depth:P,stencil:Q,antialias:V,premultipliedAlpha:R,preserveDrawingBuffer:S};s=O||C.getContext("webgl",H)||C.getContext("experimental-webgl",H);if(null===s){if(null!==C.getContext("webgl"))throw"Error creating WebGL context with your selected attributes.";throw"Error creating WebGL context.";}C.addEventListener("webglcontextlost",e,!1)}catch(Kb){console.error("THREE.WebGLRenderer: "+Kb)}var W=new THREE.WebGLExtensions(s);W.get("OES_texture_float");
|
|
this.info={render:ua,memory:Ca,programs:qa};var s;try{H={alpha:H,depth:P,stencil:Q,antialias:V,premultipliedAlpha:R,preserveDrawingBuffer:S};s=O||C.getContext("webgl",H)||C.getContext("experimental-webgl",H);if(null===s){if(null!==C.getContext("webgl"))throw"Error creating WebGL context with your selected attributes.";throw"Error creating WebGL context.";}C.addEventListener("webglcontextlost",e,!1)}catch(Kb){console.error("THREE.WebGLRenderer: "+Kb)}var W=new THREE.WebGLExtensions(s);W.get("OES_texture_float");
|
|
W.get("OES_texture_float_linear");W.get("OES_texture_half_float");W.get("OES_texture_half_float_linear");W.get("OES_standard_derivatives");W.get("ANGLE_instanced_arrays");W.get("OES_element_index_uint")&&(THREE.BufferGeometry.MaxIndex=4294967296);var ia=new THREE.WebGLCapabilities(s,W,a),K=new THREE.WebGLState(s,W,N),$=new THREE.WebGLProperties,sa=new THREE.WebGLObjects(s,$,this.info),Lb=new THREE.WebGLBufferRenderer(s,W,ua),Mb=new THREE.WebGLIndexedBufferRenderer(s,W,ua);c();this.context=s;this.capabilities=
|
|
W.get("OES_texture_float_linear");W.get("OES_texture_half_float");W.get("OES_texture_half_float_linear");W.get("OES_standard_derivatives");W.get("ANGLE_instanced_arrays");W.get("OES_element_index_uint")&&(THREE.BufferGeometry.MaxIndex=4294967296);var ia=new THREE.WebGLCapabilities(s,W,a),K=new THREE.WebGLState(s,W,N),$=new THREE.WebGLProperties,sa=new THREE.WebGLObjects(s,$,this.info),Lb=new THREE.WebGLBufferRenderer(s,W,ua),Mb=new THREE.WebGLIndexedBufferRenderer(s,W,ua);c();this.context=s;this.capabilities=
|
|
ia;this.extensions=W;this.state=K;var ma=new THREE.WebGLShadowMap(this,Y,sa);this.shadowMap=ma;var Nb=new THREE.SpritePlugin(this,Ra),Ob=new THREE.LensFlarePlugin(this,ab);this.getContext=function(){return s};this.getContextAttributes=function(){return s.getContextAttributes()};this.forceContextLoss=function(){W.get("WEBGL_lose_context").loseContext()};this.getMaxAnisotropy=function(){var a;return function(){if(void 0!==a)return a;var b=W.get("EXT_texture_filter_anisotropic");return a=null!==b?s.getParameter(b.MAX_TEXTURE_MAX_ANISOTROPY_EXT):
|
|
ia;this.extensions=W;this.state=K;var ma=new THREE.WebGLShadowMap(this,Y,sa);this.shadowMap=ma;var Nb=new THREE.SpritePlugin(this,Ra),Ob=new THREE.LensFlarePlugin(this,ab);this.getContext=function(){return s};this.getContextAttributes=function(){return s.getContextAttributes()};this.forceContextLoss=function(){W.get("WEBGL_lose_context").loseContext()};this.getMaxAnisotropy=function(){var a;return function(){if(void 0!==a)return a;var b=W.get("EXT_texture_filter_anisotropic");return a=null!==b?s.getParameter(b.MAX_TEXTURE_MAX_ANISOTROPY_EXT):
|
|
@@ -646,7 +646,7 @@ d)};for(var h=0,k=a.length;h<k;++h)b(h);return g},loadCompressedTexture:function
|
|
g.width=d;g.height=e;var f=g.getContext("2d");f.drawImage(a,0,0);for(var h=f.getImageData(0,0,d,e).data,k=f.createImageData(d,e),l=k.data,n=0;n<d;n++)for(var p=0;p<e;p++){var m=0>p-1?0:p-1,q=p+1>e-1?e-1:p+1,t=0>n-1?0:n-1,r=n+1>d-1?d-1:n+1,v=[],w=[0,0,h[4*(p*d+n)]/255*b];v.push([-1,0,h[4*(p*d+t)]/255*b]);v.push([-1,-1,h[4*(m*d+t)]/255*b]);v.push([0,-1,h[4*(m*d+n)]/255*b]);v.push([1,-1,h[4*(m*d+r)]/255*b]);v.push([1,0,h[4*(p*d+r)]/255*b]);v.push([1,1,h[4*(q*d+r)]/255*b]);v.push([0,1,h[4*(q*d+n)]/255*
|
|
g.width=d;g.height=e;var f=g.getContext("2d");f.drawImage(a,0,0);for(var h=f.getImageData(0,0,d,e).data,k=f.createImageData(d,e),l=k.data,n=0;n<d;n++)for(var p=0;p<e;p++){var m=0>p-1?0:p-1,q=p+1>e-1?e-1:p+1,t=0>n-1?0:n-1,r=n+1>d-1?d-1:n+1,v=[],w=[0,0,h[4*(p*d+n)]/255*b];v.push([-1,0,h[4*(p*d+t)]/255*b]);v.push([-1,-1,h[4*(m*d+t)]/255*b]);v.push([0,-1,h[4*(m*d+n)]/255*b]);v.push([1,-1,h[4*(m*d+r)]/255*b]);v.push([1,0,h[4*(p*d+r)]/255*b]);v.push([1,1,h[4*(q*d+r)]/255*b]);v.push([0,1,h[4*(q*d+n)]/255*
|
|
b]);v.push([-1,1,h[4*(q*d+t)]/255*b]);m=[];t=v.length;for(q=0;q<t;q++){var r=v[q],u=v[(q+1)%t],r=[r[0]-w[0],r[1]-w[1],r[2]-w[2]],u=[u[0]-w[0],u[1]-w[1],u[2]-w[2]];m.push(c([r[1]*u[2]-r[2]*u[1],r[2]*u[0]-r[0]*u[2],r[0]*u[1]-r[1]*u[0]]))}v=[0,0,0];for(q=0;q<m.length;q++)v[0]+=m[q][0],v[1]+=m[q][1],v[2]+=m[q][2];v[0]/=m.length;v[1]/=m.length;v[2]/=m.length;w=4*(p*d+n);l[w]=(v[0]+1)/2*255|0;l[w+1]=(v[1]+1)/2*255|0;l[w+2]=255*v[2]|0;l[w+3]=255}f.putImageData(k,0,0);return g},generateDataTexture:function(a,
|
|
b]);v.push([-1,1,h[4*(q*d+t)]/255*b]);m=[];t=v.length;for(q=0;q<t;q++){var r=v[q],u=v[(q+1)%t],r=[r[0]-w[0],r[1]-w[1],r[2]-w[2]],u=[u[0]-w[0],u[1]-w[1],u[2]-w[2]];m.push(c([r[1]*u[2]-r[2]*u[1],r[2]*u[0]-r[0]*u[2],r[0]*u[1]-r[1]*u[0]]))}v=[0,0,0];for(q=0;q<m.length;q++)v[0]+=m[q][0],v[1]+=m[q][1],v[2]+=m[q][2];v[0]/=m.length;v[1]/=m.length;v[2]/=m.length;w=4*(p*d+n);l[w]=(v[0]+1)/2*255|0;l[w+1]=(v[1]+1)/2*255|0;l[w+2]=255*v[2]|0;l[w+3]=255}f.putImageData(k,0,0);return g},generateDataTexture:function(a,
|
|
b,c){var d=a*b,e=new Uint8Array(3*d),g=Math.floor(255*c.r),f=Math.floor(255*c.g);c=Math.floor(255*c.b);for(var h=0;h<d;h++)e[3*h]=g,e[3*h+1]=f,e[3*h+2]=c;a=new THREE.DataTexture(e,a,b,THREE.RGBFormat);a.needsUpdate=!0;return a}};
|
|
b,c){var d=a*b,e=new Uint8Array(3*d),g=Math.floor(255*c.r),f=Math.floor(255*c.g);c=Math.floor(255*c.b);for(var h=0;h<d;h++)e[3*h]=g,e[3*h+1]=f,e[3*h+2]=c;a=new THREE.DataTexture(e,a,b,THREE.RGBFormat);a.needsUpdate=!0;return a}};
|
|
-THREE.SceneUtils={createMultiMaterialObject:function(a,b){for(var c=new THREE.Object3D,d=0,e=b.length;d<e;d++)c.add(new THREE.Mesh(a,b[d]));return c},detach:function(a,b,c){a.applyMatrix(b.matrixWorld);b.remove(a);c.add(a)},attach:function(a,b,c){var d=new THREE.Matrix4;d.getInverse(c.matrixWorld);a.applyMatrix(d);b.remove(a);c.add(a)}};
|
|
|
|
|
|
+THREE.SceneUtils={createMultiMaterialObject:function(a,b){for(var c=new THREE.Group,d=0,e=b.length;d<e;d++)c.add(new THREE.Mesh(a,b[d]));return c},detach:function(a,b,c){a.applyMatrix(b.matrixWorld);b.remove(a);c.add(a)},attach:function(a,b,c){var d=new THREE.Matrix4;d.getInverse(c.matrixWorld);a.applyMatrix(d);b.remove(a);c.add(a)}};
|
|
THREE.FontUtils={faces:{},face:"helvetiker",weight:"normal",style:"normal",size:150,divisions:10,getFace:function(){try{return this.faces[this.face.toLowerCase()][this.weight][this.style]}catch(a){throw"The font "+this.face+" with "+this.weight+" weight and "+this.style+" style is missing.";}},loadFace:function(a){var b=a.familyName.toLowerCase();this.faces[b]=this.faces[b]||{};this.faces[b][a.cssFontWeight]=this.faces[b][a.cssFontWeight]||{};this.faces[b][a.cssFontWeight][a.cssFontStyle]=a;return this.faces[b][a.cssFontWeight][a.cssFontStyle]=
|
|
THREE.FontUtils={faces:{},face:"helvetiker",weight:"normal",style:"normal",size:150,divisions:10,getFace:function(){try{return this.faces[this.face.toLowerCase()][this.weight][this.style]}catch(a){throw"The font "+this.face+" with "+this.weight+" weight and "+this.style+" style is missing.";}},loadFace:function(a){var b=a.familyName.toLowerCase();this.faces[b]=this.faces[b]||{};this.faces[b][a.cssFontWeight]=this.faces[b][a.cssFontWeight]||{};this.faces[b][a.cssFontWeight][a.cssFontStyle]=a;return this.faces[b][a.cssFontWeight][a.cssFontStyle]=
|
|
a},drawText:function(a){var b=this.getFace(),c=this.size/b.resolution,d=0,e=String(a).split(""),g=e.length,f=[];for(a=0;a<g;a++){var h=new THREE.Path,h=this.extractGlyphPoints(e[a],b,c,d,h),d=d+h.offset;f.push(h.path)}return{paths:f,offset:d/2}},extractGlyphPoints:function(a,b,c,d,e){var g=[],f,h,k,l,n,p,m,q,t,r,v,w=b.glyphs[a]||b.glyphs["?"];if(w){if(w.o)for(b=w._cachedOutline||(w._cachedOutline=w.o.split(" ")),l=b.length,a=0;a<l;)switch(k=b[a++],k){case "m":k=b[a++]*c+d;n=b[a++]*c;e.moveTo(k,n);
|
|
a},drawText:function(a){var b=this.getFace(),c=this.size/b.resolution,d=0,e=String(a).split(""),g=e.length,f=[];for(a=0;a<g;a++){var h=new THREE.Path,h=this.extractGlyphPoints(e[a],b,c,d,h),d=d+h.offset;f.push(h.path)}return{paths:f,offset:d/2}},extractGlyphPoints:function(a,b,c,d,e){var g=[],f,h,k,l,n,p,m,q,t,r,v,w=b.glyphs[a]||b.glyphs["?"];if(w){if(w.o)for(b=w._cachedOutline||(w._cachedOutline=w.o.split(" ")),l=b.length,a=0;a<l;)switch(k=b[a++],k){case "m":k=b[a++]*c+d;n=b[a++]*c;e.moveTo(k,n);
|
|
break;case "l":k=b[a++]*c+d;n=b[a++]*c;e.lineTo(k,n);break;case "q":k=b[a++]*c+d;n=b[a++]*c;q=b[a++]*c+d;t=b[a++]*c;e.quadraticCurveTo(q,t,k,n);if(f=g[g.length-1])for(p=f.x,m=f.y,f=1,h=this.divisions;f<=h;f++){var u=f/h;THREE.Shape.Utils.b2(u,p,q,k);THREE.Shape.Utils.b2(u,m,t,n)}break;case "b":if(k=b[a++]*c+d,n=b[a++]*c,q=b[a++]*c+d,t=b[a++]*c,r=b[a++]*c+d,v=b[a++]*c,e.bezierCurveTo(q,t,r,v,k,n),f=g[g.length-1])for(p=f.x,m=f.y,f=1,h=this.divisions;f<=h;f++)u=f/h,THREE.Shape.Utils.b3(u,p,q,r,k),THREE.Shape.Utils.b3(u,
|
|
break;case "l":k=b[a++]*c+d;n=b[a++]*c;e.lineTo(k,n);break;case "q":k=b[a++]*c+d;n=b[a++]*c;q=b[a++]*c+d;t=b[a++]*c;e.quadraticCurveTo(q,t,k,n);if(f=g[g.length-1])for(p=f.x,m=f.y,f=1,h=this.divisions;f<=h;f++){var u=f/h;THREE.Shape.Utils.b2(u,p,q,k);THREE.Shape.Utils.b2(u,m,t,n)}break;case "b":if(k=b[a++]*c+d,n=b[a++]*c,q=b[a++]*c+d,t=b[a++]*c,r=b[a++]*c+d,v=b[a++]*c,e.bezierCurveTo(q,t,r,v,k,n),f=g[g.length-1])for(p=f.x,m=f.y,f=1,h=this.divisions;f<=h;f++)u=f/h,THREE.Shape.Utils.b3(u,p,q,r,k),THREE.Shape.Utils.b3(u,
|