http://forotrolls.com/snow-3d/snow-3d-vendor.min.js

t.removeEventListener("dispose",Ui),Oi(t),Ot.info.memory.textures--},zi=function(e){var t=e.target;t.removeEventListener("dispose",zi),Vi(t),Ot.info.memory.textures--},Bi=function(e){var t=e.target;t.removeEventListener("dispose",Bi),ki(t)},Ii=function(e){if(void 0!==e.__webglVertexBuffer&&Ft.deleteBuffer(e.__webglVertexBuffer),void 0!==e.__webglNormalBuffer&&Ft.deleteBuffer(e.__webglNormalBuffer),void 0!==e.__webglTangentBuffer&&Ft.deleteBuffer(e.__webglTangentBuffer),void 0!==e.__webglColorBuffer&&Ft.deleteBuffer(e.__webglColorBuffer),void 0!==e.__webglUVBuffer&&Ft.deleteBuffer(e.__webglUVBuffer),void 0!==e.__webglUV2Buffer&&Ft.deleteBuffer(e.__webglUV2Buffer),void 0!==e.__webglSkinIndicesBuffer&&Ft.deleteBuffer(e.__webglSkinIndicesBuffer),void 0!==e.__webglSkinWeightsBuffer&&Ft.deleteBuffer(e.__webglSkinWeightsBuffer),void 0!==e.__webglFaceBuffer&&Ft.deleteBuffer(e.__webglFaceBuffer),void 0!==e.__webglLineBuffer&&Ft.deleteBuffer(e.__webglLineBuffer),void 0!==e.__webglLineDistanceBuffer&&Ft.deleteBuffer(e.__webglLineDistanceBuffer),void 0!==e.__webglCustomAttributesList)for(var t in e.__webglCustomAttributesList)Ft.deleteBuffer(e.__webglCustomAttributesList[t].buffer);Ot.info.memory.geometries--},Ni=function(e){if(e.__webglInit=void 0,e instanceof THREE.BufferGeometry){var t=e.attributes;for(var i in t)void 0!==t.buffer&&Ft.deleteBuffer(t.buffer);Ot.info.memory.geometries--}else if(void 0!==e.geometryGroups)for(var r in e.geometryGroups){var o=e.geometryGroups[r];if(void 0!==o.numMorphTargets)for(var n=0,a=o.numMorphTargets;a>n;n++)Ft.deleteBuffer(o.__webglMorphTargetsBuffers[n]);if(void 0!==o.numMorphNormals)for(var n=0,a=o.numMorphNormals;a>n;n++)Ft.deleteBuffer(o.__webglMorphNormalsBuffers[n]);Ii(o)}else Ii(e)},Oi=function(e){if(e.image&&e.image.__webglTextureCube)Ft.deleteTexture(e.image.__webglTextureCube);else{if(!e.__webglInit)return;e.__webglInit=!1,Ft.deleteTexture(e.__webglTexture)}},Vi=function(e){if(e&&e.__webglTexture)if(Ft.deleteTexture(e.__webglTexture),e instanceof THREE.WebGLRenderTargetCube)for(var t=0;6>t;t++)Ft.deleteFramebuffer(e.__webglFramebuffer[t]),Ft.deleteRenderbuffer(e.__webglRenderbuffer[t]);else Ft.deleteFramebuffer(e.__webglFramebuffer),Ft.deleteRenderbuffer(e.__webglRenderbuffer)},ki=function(e){var t=e.program;if(void 0!==t){e.program=void 0;var i,r,o,n=!1;for(i=0,r=Vt.length;r>i;i++)if(o=Vt,o.program===t){o.usedTimes--,0===o.usedTimes&&(n=!0);break}if(n===!0){var a=[];for(i=0,r=Vt.length;r>i;i++)o=Vt,o.program!==t&&a.push(o);Vt=a,Ft.deleteProgram(t),Ot.info.memory.programs--}}};this.renderBufferImmediate=function(e,t,i){if(e.hasPositions&&!e.__webglVertexBuffer&&(e.__webglVertexBuffer=Ft.createBuffer()),e.hasNormals&&!e.__webglNormalBuffer&&(e.__webglNormalBuffer=Ft.createBuffer()),e.hasUvs&&!e.__webglUvBuffer&&(e.__webglUvBuffer=Ft.createBuffer()),e.hasColors&&!e.__webglColorBuffer&&(e.__webglColorBuffer=Ft.createBuffer()),e.hasPositions&&(Ft.bindBuffer(Ft.ARRAY_BUFFER,e.__webglVertexBuffer),Ft.bufferData(Ft.ARRAY_BUFFER,e.positionArray,Ft.DYNAMIC_DRAW),Ft.enableVertexAttribArray(t.attributes.position),Ft.vertexAttribPointer(t.attributes.position,3,Ft.FLOAT,!1,0,0)),e.hasNormals){if(Ft.bindBuffer(Ft.ARRAY_BUFFER,e.__webglNormalBuffer),i.shading===THREE.FlatShading){var r,o,n,a,s,l,h,u,c,f,d,p,m,E,g=3*e.count;for(E=0;g>E;E+=9)m=e.normalArray,a=m[E],h=m[E+1],f=m[E+2],s=m[E+3],u=m[E+4],d=m[E+5],l=m[E+6],c=m[E+7],p=m[E+8],r=(a+s+l)/3,o=(h+u+c)/3,n=(f+d+p)/3,m[E]=r,m[E+1]=o,m[E+2]=n,m[E+3]=r,m[E+4]=o,m[E+5]=n,m[E+6]=r,m[E+7]=o,m[E+8]=n}Ft.bufferData(Ft.ARRAY_BUFFER,e.normalArray,Ft.DYNAMIC_DRAW),Ft.enableVertexAttribArray(t.attributes.normal),Ft.vertexAttribPointer(t.attributes.normal,3,Ft.FLOAT,!1,0,0)}e.hasUvs&&i.map&&(Ft.bindBuffer(Ft.ARRAY_BUFFER,e.__webglUvBuffer),Ft.bufferData(Ft.ARRAY_BUFFER,e.uvArray,Ft.DYNAMIC_DRAW),Ft.enableVertexAttribArray(t.attributes.uv),Ft.vertexAttribPointer(t.attributes.uv,2,Ft.FLOAT,!1,0,0)),e.hasColors&&i.vertexColors!==THREE.NoColors&&(Ft.bindBuffer(Ft.ARRAY_BUFFER,e.__webglColorBuffer),Ft.bufferData(Ft.ARRAY_BUFFER,e.colorArray,Ft.DYNAMIC_DRAW),Ft.enableVertexAttribArray(t.attributes.color),Ft.vertexAttribPointer(t.attributes.color,3,Ft.FLOAT,!1,0,0)),Ft.drawArrays(Ft.TRIANGLES,0,e.count),e.count=0},this.renderBufferDirect=function(e,t,i,r,o,n){if(r.visible!==!1){var a,s,l,h,u=N(e,t,i,r,n),c=u.attributes,f=o.attributes,d=!1,p=r.wireframe?1:0,m=16777215*o.id+2*u.id+p;if(m!==Xt&&(Xt=m,d=!0),d&&T(),n instanceof THREE.Mesh){var E=f.index;if(E){var g=o.offsets;g.length>1&&(d=!0);for(var _=0,x=g.length;x>_;_++){var y=g[_].index;if(d){for(s in c)l=c,a=f,l>=0&&(a?(h=a.itemSize,Ft.bindBuffer(Ft.ARRAY_BUFFER,a.buffer),v(l),Ft.vertexAttribPointer(l,h,Ft.FLOAT,!1,0,y*h*4)):r.defaultAttributeValues&&(2===r.defaultAttributeValues.length?Ft.vertexAttrib2fv(l,r.defaultAttributeValues):3===r.defaultAttributeValues.length&&Ft.vertexAttrib3fv(l,r.defaultAttributeValues)));Ft.bindBuffer(Ft.ELEMENT_ARRAY_BUFFER,E.buffer)}Ft.drawElements(Ft.TRIANGLES,g[_].count,Ft.UNSIGNED_SHORT,2*g[_].start),Ot.info.render.calls++,Ot.info.render.vertices+=g[_].count,Ot.info.render.faces+=g[_].count/3}}else{if(d)for(s in c)"index"!==s&&(l=c,a=f,l>=0&&(a?(h=a.itemSize,Ft.bindBuffer(Ft.ARRAY_BUFFER,a.buffer),v(l),Ft.vertexAttribPointer(l,h,Ft.FLOAT,!1,0,0)):r.defaultAttributeValues&&r.defaultAttributeValues&&(2===r.defaultAttributeValues.length?Ft.vertexAttrib2fv(l,r.defaultAttributeValues):3===r.defaultAttributeValues.length&&Ft.vertexAttrib3fv(l,r.defaultAttributeValues))));var R=o.attributes.position;Ft.drawArrays(Ft.TRIANGLES,0,R.numItems/3),Ot.info.render.calls++,Ot.info.render.vertices+=R.numItems/3,Ot.info.render.faces+=R.numItems/3/3}}else if(n instanceof THREE.ParticleSystem){if(d){for(s in c)l=c,a=f,l>=0&&(a?(h=a.itemSize,Ft.bindBuffer(Ft.ARRAY_BUFFER,a.buffer),v(l),Ft.vertexAttribPointer(l,h,Ft.FLOAT,!1,0,0)):r.defaultAttributeValues&&r.defaultAttributeValues&&(2===r.defaultAttributeValues.length?Ft.vertexAttrib2fv(l,r.defaultAttributeValues):3===r.defaultAttributeValues.length&&Ft.vertexAttrib3fv(l,r.defaultAttributeValues)));var R=f.position;Ft.drawArrays(Ft.POINTS,0,R.numItems/3),Ot.info.render.calls++,Ot.info.render.points+=R.numItems/3}}else if(n instanceof THREE.Line&&d){for(s in c)l=c,a=f,l>=0&&(a?(h=a.itemSize,Ft.bindBuffer(Ft.ARRAY_BUFFER,a.buffer),v(l),Ft.vertexAttribPointer(l,h,Ft.FLOAT,!1,0,0)):r.defaultAttributeValues&&r.defaultAttributeValues&&(2===r.defaultAttributeValues.length?Ft.vertexAttrib2fv(l,r.defaultAttributeValues):3===r.defaultAttributeValues.length&&Ft.vertexAttrib3fv(l,r.defaultAttributeValues)));var b=n.type===THREE.LineStrip?Ft.LINE_STRIP:Ft.LINES;it(r.linewidth);var R=f.position;Ft.drawArrays(b,0,R.numItems/3),Ot.info.render.calls++,Ot.info.render.points+=R.numItems}}},this.renderBuffer=function(e,t,i,r,o,n){if(r.visible!==!1){var a,s,l,h=N(e,t,i,r,n),u=h.attributes,c=!1,f=r.wireframe?1:0,d=16777215*o.id+2*h.id+f;if(d!==Xt&&(Xt=d,c=!0),c&&T(),!r.morphTargets&&u.position>=0?c&&(Ft.bindBuffer(Ft.ARRAY_BUFFER,o.__webglVertexBuffer),v(u.position),Ft.vertexAttribPointer(u.position,3,Ft.FLOAT,!1,0,0)):n.morphTargetBase&&_(r,o,n),c){if(o.__webglCustomAttributesList)for(s=0,l=o.__webglCustomAttributesList.length;l>s;s++)a=o.__webglCustomAttributesList,u[a.buffer.belongsToAttribute]>=0&&(Ft.bindBuffer(Ft.ARRAY_BUFFER,a.buffer),v(u[a.buffer.belongsToAttribute]),Ft.vertexAttribPointer(u[a.buffer.belongsToAttribute],a.size,Ft.FLOAT,!1,0,0));u.color>=0&&(n.geometry.colors.length>0||n.geometry.faces.length>0?(Ft.bindBuffer(Ft.ARRAY_BUFFER,o.__webglColorBuffer),v(u.color),Ft.vertexAttribPointer(u.color,3,Ft.FLOAT,!1,0,0)):r.defaultAttributeValues&&Ft.vertexAttrib3fv(u.color,r.defaultAttributeValues.color)),u.normal>=0&&(Ft.bindBuffer(Ft.ARRAY_BUFFER,o.__webglNormalBuffer),v(u.normal),Ft.vertexAttribPointer(u.normal,3,Ft.FLOAT,!1,0,0)),u.tangent>=0&&(Ft.bindBuffer(Ft.ARRAY_BUFFER,o.__webglTangentBuffer),v(u.tangent),Ft.vertexAttribPointer(u.tangent,4,Ft.FLOAT,!1,0,0)),u.uv>=0&&(n.geometry.faceVertexUvs[0]?(Ft.bindBuffer(Ft.ARRAY_BUFFER,o.__webglUVBuffer),v(u.uv),Ft.vertexAttribPointer(u.uv,2,Ft.FLOAT,!1,0,0)):r.defaultAttributeValues&&Ft.vertexAttrib2fv(u.uv,r.defaultAttributeValues.uv)),u.uv2>=0&&(n.geometry.faceVertexUvs[1]?(Ft.bindBuffer(Ft.ARRAY_BUFFER,o.__webglUV2Buffer),v(u.uv2),Ft.vertexAttribPointer(u.uv2,2,Ft.FLOAT,!1,0,0)):r.defaultAttributeValues&&Ft.vertexAttrib2fv(u.uv2,r.defaultAttributeValues.uv2)),r.skinning&&u.skinIndex>=0&&u.skinWeight>=0&&(Ft.bindBuffer(Ft.ARRAY_BUFFER,o.__webglSkinIndicesBuffer),v(u.skinIndex),Ft.vertexAttribPointer(u.skinIndex,4,Ft.FLOAT,!1,0,0),Ft.bindBuffer(Ft.ARRAY_BUFFER,o.__webglSkinWeightsBuffer),v(u.skinWeight),Ft.vertexAttribPointer(u.skinWeight,4,Ft.FLOAT,!1,0,0)),u.lineDistance>=0&&(Ft.bindBuffer(Ft.ARRAY_BUFFER,o.__webglLineDistanceBuffer),v(u.lineDistance),Ft.vertexAttribPointer(u.lineDistance,1,Ft.FLOAT,!1,0,0))}if(n instanceof THREE.Mesh)r.wireframe?(it(r.wireframeLinewidth),c&&Ft.bindBuffer(Ft.ELEMENT_ARRAY_BUFFER,o.__webglLineBuffer),Ft.drawElements(Ft.LINES,o.__webglLineCount,Ft.UNSIGNED_SHORT,0)):(c&&Ft.bindBuffer(Ft.ELEMENT_ARRAY_BUFFER,o.__webglFaceBuffer),Ft.drawElements(Ft.TRIANGLES,o.__webglFaceCount,Ft.UNSIGNED_SHORT,0)),Ot.info.render.calls++,Ot.info.render.vertices+=o.__webglFaceCount,Ot.info.render.faces+=o.__webglFaceCount/3;else if(n instanceof THREE.Line){var p=n.type===THREE.LineStrip?Ft.LINE_STRIP:Ft.LINES;it(r.linewidth),Ft.drawArrays(p,0,o.__webglLineCount),Ot.info.render.calls++}else n instanceof THREE.ParticleSystem&&(Ft.drawArrays(Ft.POINTS,0,o.__webglParticleCount),Ot.info.render.calls++,Ot.info.render.points+=o.__webglParticleCount)}},this.render=function(e,t,i,r){if(t instanceof THREE.Camera==!1)return void console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");var o,n,a,s,l,h=e.__lights,u=e.fog;for(jt=-1,_i=!0,e.autoUpdate===!0&&e.updateMatrixWorld(),void 0===t.parent&&t.updateMatrixWorld(),t.matrixWorldInverse.getInverse(t.matrixWorld),Ei.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse),mi.setFromMatrix(Ei),this.autoUpdateObjects&&this.initWebGLObjects(e),R(this.renderPluginsPre,e,t),Ot.info.render.calls=0,Ot.info.render.vertices=0,Ot.info.render.faces=0,Ot.info.render.points=0,this.setRenderTarget(i),(this.autoClear||r)&&this.clear(this.autoClearColor,this.autoClearDepth,this.autoClearStencil),l=e.__webglObjects,o=0,n=l.length;n>o;o++)a=l[o],s=a.object,a.id=o,a.render=!1,s.visible&&((s instanceof THREE.Mesh||s instanceof THREE.ParticleSystem)&&s.frustumCulled&&!mi.intersectsObject(s)||($(s,t),M(a),a.render=!0,this.sortObjects===!0&&(null!==s.renderDepth?a.z=s.renderDepth:(vi.setFromMatrixPosition(s.matrixWorld),vi.applyProjection(Ei),a.z=vi.z))));for(this.sortObjects&&l.sort(x),l=e.__webglObjectsImmediate,o=0,n=l.length;n>o;o++)a=l[o],s=a.object,s.visible&&($(s,t),w(a));if(e.overrideMaterial){var c=e.overrideMaterial;this.setBlending(c.blending,c.blendEquation,c.blendSrc,c.blendDst),this.setDepthTest(c.depthTest),this.setDepthWrite(c.depthWrite),rt(c.polygonOffset,c.polygonOffsetFactor,c.polygonOffsetUnits),b(e.__webglObjects,!1,"",t,h,u,!0,c),S(e.__webglObjectsImmediate,"",t,h,u,!1,c)}else{var c=null;this.setBlending(THREE.NoBlending),b(e.__webglObjects,!0,"opaque",t,h,u,!1,c),S(e.__webglObjectsImmediate,"opaque",t,h,u,!1,c),b(e.__webglObjects,!1,"transparent",t,h,u,!0,c),S(e.__webglObjectsImmediate,"transparent",t,h,u,!0,c)}R(this.renderPluginsPost,e,t),i&&i.generateMipmaps&&i.minFilter!==THREE.NearestFilter&&i.minFilter!==THREE.LinearFilter&&gt(i),this.setDepthTest(!0),this.setDepthWrite(!0)},this.renderImmediateObject=function(e,t,i,r,o){var n=N(e,t,i,r,o);Xt=-1,Ot.setMaterialFaces(r),o.immediateRenderCallback?o.immediateRenderCallback(n,Ft,mi):o.render(function(e){Ot.renderBufferImmediate(e,n,r)})},this.initWebGLObjects=function(e){for(e.__webglObjects||(e.__webglObjects=[],e.__webglObjectsImmediate=[],e.__webglSprites=[],e.__webglFlares=[]);e.__objectsAdded.length;)A(e.__objectsAdded[0],e),e.__objectsAdded.splice(0,1);for(;e.__objectsRemoved.length;)U(e.__objectsRemoved[0],e),e.__objectsRemoved.splice(0,1);for(var t=0,i=e.__webglObjects.length;i>t;t++){var r=e.__webglObjects[t].object;void 0===r.__webglInit&&(void 0!==r.__webglActive&&U(r,e),A(r,e)),P(r)}},this.initMaterial=function(e,t,i,r){e.addEventListener("dispose",Bi);var o,n,a,s,l,h,u;e instanceof THREE.MeshDepthMaterial?u="depth":e instanceof THREE.MeshNormalMaterial?u="normal":e instanceof THREE.MeshBasicMaterial?u="basic":e instanceof THREE.MeshLambertMaterial?u="lambert":e instanceof THREE.MeshPhongMaterial?u="phong":e instanceof THREE.LineBasicMaterial?u="basic":e instanceof THREE.LineDashedMaterial?u="dashed":e instanceof THREE.ParticleSystemMaterial&&(u="particle_basic"),u&&I(e,THREE.ShaderLib),s=xt(t),h=yt(t),l=_t(r),a={map:!!e.map,envMap:!!e.envMap,lightMap:!!e.lightMap,bumpMap:!!e.bumpMap,normalMap:!!e.normalMap,specularMap:!!e.specularMap,vertexColors:e.vertexColors,fog:i,useFog:e.fog,fogExp:i instanceof THREE.FogExp2,sizeAttenuation:e.sizeAttenuation,skinning:e.skinning,maxBones:l,useVertexTexture:Mi&&r&&r.useVertexTexture,morphTargets:e.morphTargets,morphNormals:e.morphNormals,maxMorphTargets:this.maxMorphTargets,maxMorphNormals:this.maxMorphNormals,maxDirLights:s.directional,maxPointLights:s.point,maxSpotLights:s.spot,maxHemiLights:s.hemi,maxShadows:h,shadowMapEnabled:this.shadowMapEnabled&&r.receiveShadow,shadowMapType:this.shadowMapType,shadowMapDebug:this.shadowMapDebug,shadowMapCascade:this.shadowMapCascade,alphaTest:e.alphaTest,metal:e.metal,perPixel:e.perPixel,wrapAround:e.wrapAround,doubleSided:e.side===THREE.DoubleSide,flipSided:e.side===THREE.BackSide},e.program=nt(u,e.fragmentShader,e.vertexShader,e.uniforms,e.attributes,e.defines,a,e.index0AttributeName);var c=e.program.attributes;if(e.morphTargets){e.numSupportedMorphTargets=0;var f,d="morphTarget";for(n=0;n<this.maxMorphTargets;n++)f=d+n,c[f]>=0&&e.numSupportedMorphTargets++}if(e.morphNormals){e.numSupportedMorphNormals=0;var f,d="morphNormal";for(n=0;n<this.maxMorphNormals;n++)f=d+n,c[f]>=0&&e.numSupportedMorphNormals++}e.uniformsList=[];for(o in e.uniforms)e.uniformsList.push([e.uniforms[o],o])},this.setFaceCulling=function(e,t){e===THREE.CullFaceNone?Ft.disable(Ft.CULL_FACE):(Ft.frontFace(t===THREE.FrontFaceDirectionCW?Ft.CW:Ft.CCW),Ft.cullFace(e===THREE.CullFaceBack?Ft.BACK:e===THREE.CullFaceFront?Ft.FRONT:Ft.FRONT_AND_BACK),Ft.enable(Ft.CULL_FACE))},this.setMaterialFaces=function(e){var t=e.side===THREE.DoubleSide,i=e.side===THREE.BackSide;Qt!==t&&(t?Ft.disable(Ft.CULL_FACE):Ft.enable(Ft.CULL_FACE),Qt=t),Zt!==i&&(Ft.frontFace(i?Ft.CW:Ft.CCW),Zt=i)},this.setDepthTest=function(e){ii!==e&&(e?Ft.enable(Ft.DEPTH_TEST):Ft.disable(Ft.DEPTH_TEST),ii=e)},this.setDepthWrite=function(e){ri!==e&&(Ft.depthMask(e),ri=e)},this.setBlending=function(e,t,i,r){e!==$t&&(e===THREE.NoBlending?Ft.disable(Ft.BLEND):e===THREE.AdditiveBlending?(Ft.enable(Ft.BLEND),Ft.blendEquation(Ft.FUNC_ADD),Ft.blendFunc(Ft.SRC_ALPHA,Ft.ONE)):e===THREE.SubtractiveBlending?(Ft.enable(Ft.BLEND),Ft.blendEquation(Ft.FUNC_ADD),Ft.blendFunc(Ft.ZERO,Ft.ONE_MINUS_SRC_COLOR)):e===THREE.MultiplyBlending?(Ft.enable(Ft.BLEND),Ft.blendEquation(Ft.FUNC_ADD),Ft.blendFunc(Ft.ZERO,Ft.SRC_COLOR)):e===THREE.CustomBlending?Ft.enable(Ft.BLEND):(Ft.enable(Ft.BLEND),Ft.blendEquationSeparate(Ft.FUNC_ADD,Ft.FUNC_ADD),Ft.blendFuncSeparate(Ft.SRC_ALPHA,Ft.ONE_MINUS_SRC_ALPHA,Ft.ONE,Ft.ONE_MINUS_SRC_ALPHA)),$t=e),e===THREE.CustomBlending?(t!==Jt&&(Ft.blendEquation(Tt(t)),Jt=t),(i!==ei||r!==ti)&&(Ft.blendFunc(Tt(i),Tt(r)),ei=i,ti=r)):(Jt=null,ei=null,ti=null)},this.setTexture=function(e,t){if(e.needsUpdate){e.__webglInit||(e.__webglInit=!0,e.addEventListener("dispose",Ui),e.__webglTexture=Ft.createTexture(),Ot.info.memory.textures++),Ft.activeTexture(Ft.TEXTURE0+t),Ft.bindTexture(Ft.TEXTURE_2D,e.__webglTexture),Ft.pixelStorei(Ft.UNPACK_FLIP_Y_WEBGL,e.flipY),Ft.pixelStorei(Ft.UNPACK_PREMULTIPLY_ALPHA_WEBGL,e.premultiplyAlpha),Ft.pixelStorei(Ft.UNPACK_ALIGNMENT,e.unpackAlignment);var i=e.image,r=ut(i.width)&&ut(i.height),o=Tt(e.format),n=Tt(e.type);ct(Ft.TEXTURE_2D,e,r);var a,s=e.mipmaps;if(e instanceof THREE.DataTexture)if(s.length>0&&r){for(var l=0,h=s.length;h>l;l++)a=s[l],Ft.texImage2D(Ft.TEXTURE_2D,l,o,a.width,a.height,0,o,n,a.data);e.generateMipmaps=!1}else Ft.texImage2D(Ft.TEXTURE_2D,0,o,i.width,i.height,0,o,n,i.data);else if(e instanceof THREE.CompressedTexture)for(var l=0,h=s.length;h>l;l++)a=s[l],e.format!==THREE.RGBAFormat?Ft.compressedTexImage2D(Ft.TEXTURE_2D,l,o,a.width,a.height,0,a.data):Ft.texImage2D(Ft.TEXTURE_2D,l,o,a.width,a.height,0,o,n,a.data);else if(s.length>0&&r){for(var l=0,h=s.length;h>l;l++)a=s[l],Ft.texImage2D(Ft.TEXTURE_2D,l,o,o,n,a);e.generateMipmaps=!1}else Ft.texImage2D(Ft.TEXTURE_2D,0,o,o,n,e.image);e.generateMipmaps&&r&&Ft.generateMipmap(Ft.TEXTURE_2D),e.needsUpdate=!1,e.onUpdate&&e.onUpdate()}else Ft.activeTexture(Ft.TEXTURE0+t),Ft.bindTexture(Ft.TEXTURE_2D,e.__webglTexture)},this.setRenderTarget=function(e){var t=e instanceof THREE.WebGLRenderTargetCube;if(e&&!e.__webglFramebuffer){void 0===e.depthBuffer&&(e.depthBuffer=!0),void 0===e.stencilBuffer&&(e.stencilBuffer=!0),e.addEventListener("dispose",zi),e.__webglTexture=Ft.createTexture(),Ot.info.memory.textures++;var i=ut(e.width)&&ut(e.height),r=Tt(e.format),o=Tt(e.type);if(t){e.__webglFramebuffer=[],e.__webglRenderbuffer=[],Ft.bindTexture(Ft.TEXTURE_CUBE_MAP,e.__webglTexture),ct(Ft.TEXTURE_CUBE_MAP,e,i);for(var n=0;6>n;n++)e.__webglFramebuffer[n]=Ft.createFramebuffer(),e.__webglRenderbuffer[n]=Ft.createRenderbuffer(),Ft.texImage2D(Ft.TEXTURE_CUBE_MAP_POSITIVE_X+n,0,r,e.width,e.height,0,r,o,null),mt(e.__webglFramebuffer[n],e,Ft.TEXTURE_CUBE_MAP_POSITIVE_X+n),Et(e.__webglRenderbuffer[n],e);i&&Ft.generateMipmap(Ft.TEXTURE_CUBE_MAP)}else e.__webglFramebuffer=Ft.createFramebuffer(),e.__webglRenderbuffer=e.shareDepthFrom?e.shareDepthFrom.__webglRenderbuffer:Ft.createRenderbuffer(),Ft.bindTexture(Ft.TEXTURE_2D,e.__webglTexture),ct(Ft.TEXTURE_2D,e,i),Ft.texImage2D(Ft.TEXTURE_2D,0,r,e.width,e.height,0,r,o,null),mt(e.__webglFramebuffer,e,Ft.TEXTURE_2D),e.shareDepthFrom?e.depthBuffer&&!e.stencilBuffer?Ft.framebufferRenderbuffer(Ft.FRAMEBUFFER,Ft.DEPTH_ATTACHMENT,Ft.RENDERBUFFER,e.__webglRenderbuffer):e.depthBuffer&&e.stencilBuffer&&Ft.framebufferRenderbuffer(Ft.FRAMEBUFFER,Ft.DEPTH_STENCIL_ATTACHMENT,Ft.RENDERBUFFER,e.__webglRenderbuffer):Et(e.__webglRenderbuffer,e),i&&Ft.generateMipmap(Ft.TEXTURE_2D);t?Ft.bindTexture(Ft.TEXTURE_CUBE_MAP,null):Ft.bindTexture(Ft.TEXTURE_2D,null),Ft.bindRenderbuffer(Ft.RENDERBUFFER,null),Ft.bindFramebuffer(Ft.FRAMEBUFFER,null)}var a,s,l,h,u;e?(a=t?e.__webglFramebuffer[e.activeCubeFace]:e.__webglFramebuffer,s=e.width,l=e.height,h=0,u=0):(a=null,s=ui,l=ci,h=li,u=hi),a!==Wt&&(Ft.bindFramebuffer(Ft.FRAMEBUFFER,a),Ft.viewport(h,u,s,l),Wt=a),fi=s,di=l},this.shadowMapPlugin=new THREE.ShadowMapPlugin,this.addPrePlugin(this.shadowMapPlugin),this.addPostPlugin(new THREE.SpritePlugin),this.addPostPlugin(new THREE.LensFlarePlugin)};
De verdad que hay un HIJO DE LA GRANDISIMA PUTA que ha picado tanto codigo para unos copos de nieve de mierda? El mundo se va a pique.

Hasta peta el mensaje
 
que va a picar, son codigos reutilizables, los frameworks esos o como se llamen, que te ahogas en un baso de agua, guapetón.