diff --git a/build/three.js b/build/three.js index 6a33bc44400430e39d1953903e1f002b7107e644..3bdddf71540eb94a0eca54a5bfd75e578ad3822e 100644 --- a/build/three.js +++ b/build/three.js @@ -21062,19 +21062,11 @@ THREE.WebGLRenderer = function ( parameters ) { _currentGeometryProgram = ''; - if ( object.immediateRenderCallback ) { + object.render( function ( object ) { - object.immediateRenderCallback( program, _gl, _frustum ); + _this.renderBufferImmediate( object, program, material ); - } else { - - object.render( function ( object ) { - - _this.renderBufferImmediate( object, program, material ); - - } ); - - } + } ); }; diff --git a/build/three.min.js b/build/three.min.js index 7a2c48e14b67995a2e3f292c11cc3b016c165a0c..f2e5840a91c32ff25340e8fce4c8a36410754622 100644 --- a/build/three.min.js +++ b/build/three.min.js @@ -486,47 +486,47 @@ tFlip:{type:"f",value:-1}},vertexShader:["varying vec3 vWorldPosition;",THREE.Sh THREE.ShaderChunk.logdepthbuf_vertex,"}"].join("\n"),fragmentShader:["uniform sampler2D tEquirect;\nuniform float tFlip;\nvarying vec3 vWorldPosition;",THREE.ShaderChunk.common,THREE.ShaderChunk.logdepthbuf_pars_fragment,"void main() {\nvec3 direction = normalize( vWorldPosition );\nvec2 sampleUV;\nsampleUV.y = saturate( tFlip * direction.y * -0.5 + 0.5 );\nsampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;\ngl_FragColor = texture2D( tEquirect, sampleUV );",THREE.ShaderChunk.logdepthbuf_fragment, "}"].join("\n")},depthRGBA:{uniforms:{},vertexShader:[THREE.ShaderChunk.common,THREE.ShaderChunk.morphtarget_pars_vertex,THREE.ShaderChunk.skinning_pars_vertex,THREE.ShaderChunk.logdepthbuf_pars_vertex,"void main() {",THREE.ShaderChunk.skinbase_vertex,THREE.ShaderChunk.morphtarget_vertex,THREE.ShaderChunk.skinning_vertex,THREE.ShaderChunk.default_vertex,THREE.ShaderChunk.logdepthbuf_vertex,"}"].join("\n"),fragmentShader:[THREE.ShaderChunk.common,THREE.ShaderChunk.logdepthbuf_pars_fragment,"vec4 pack_depth( const in float depth ) {\n\tconst vec4 bit_shift = vec4( 256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0 );\n\tconst vec4 bit_mask = vec4( 0.0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0 );\n\tvec4 res = mod( depth * bit_shift * vec4( 255 ), vec4( 256 ) ) / vec4( 255 );\n\tres -= res.xxyz * bit_mask;\n\treturn res;\n}\nvoid main() {", THREE.ShaderChunk.logdepthbuf_fragment,"\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tgl_FragData[ 0 ] = pack_depth( gl_FragDepthEXT );\n\t#else\n\t\tgl_FragData[ 0 ] = pack_depth( gl_FragCoord.z );\n\t#endif\n}"].join("\n")}}; -THREE.WebGLRenderer=function(a){function b(a,b,c,d){!0===Q&&(a*=d,b*=d,c*=d);t.clearColor(a,b,c,d)}function c(){N.init();t.viewport(Ia,Ja,Ca,wa);b(aa.r,aa.g,aa.b,ea)}function d(){Wa=kb=null;xa="";Xa=-1;eb=!0;N.reset()}function e(a){a=a.target;a.removeEventListener("dispose",e);a:{var b=Z.get(a);if(a.image&&b.__image__webglTextureCube)t.deleteTexture(b.__image__webglTextureCube);else{if(void 0===b.__webglInit)break a;t.deleteTexture(b.__webglTexture)}Z.delete(a)}Da.textures--}function f(a){var b=a.target; +THREE.WebGLRenderer=function(a){function b(a,b,c,d){!0===Q&&(a*=d,b*=d,c*=d);t.clearColor(a,b,c,d)}function c(){N.init();t.viewport(Ia,Ja,Ca,wa);b(aa.r,aa.g,aa.b,ea)}function d(){Va=kb=null;xa="";Wa=-1;db=!0;N.reset()}function e(a){a=a.target;a.removeEventListener("dispose",e);a:{var b=Z.get(a);if(a.image&&b.__image__webglTextureCube)t.deleteTexture(b.__image__webglTextureCube);else{if(void 0===b.__webglInit)break a;t.deleteTexture(b.__webglTexture)}Z.delete(a)}Da.textures--}function f(a){var b=a.target; b.removeEventListener("dispose",f);a=Z.get(b);if(b&&void 0!==a.__webglTexture){t.deleteTexture(a.__webglTexture);if(b instanceof THREE.WebGLRenderTargetCube)for(b=0;6>b;b++)t.deleteFramebuffer(a.__webglFramebuffer[b]),t.deleteRenderbuffer(a.__webglRenderbuffer[b]);else t.deleteFramebuffer(a.__webglFramebuffer),t.deleteRenderbuffer(a.__webglRenderbuffer);Z.delete(a)}Da.textures--}function g(a){a=a.target;a.removeEventListener("dispose",g);h(a);Z.delete(a)}function h(a){var b=Z.get(a).program.program; if(void 0!==b){a.program=void 0;a=0;for(var c=va.length;a!==c;++a){var d=va[a];if(d.program===b){0===--d.usedTimes&&(c-=1,va[a]=va[c],va.pop(),t.deleteProgram(b),Da.programs=c);break}}}}function k(a,b,c,d){var e;if(c instanceof THREE.InstancedBufferGeometry&&(e=V.get("ANGLE_instanced_arrays"),null===e)){console.error("THREE.WebGLRenderer.setupVertexAttributes: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");return}var g=c.attributes;b=b.getAttributes(); a=a.defaultAttributeValues;for(var f in b){var h=b[f];if(0<=h){var k=g[f];if(void 0!==k){var l=k.itemSize;N.enableAttribute(h);var n=pa.getAttributeBuffer(k);if(k instanceof THREE.InterleavedBufferAttribute){var m=k.data,p=m.stride,k=k.offset;t.bindBuffer(t.ARRAY_BUFFER,n);t.vertexAttribPointer(h,l,t.FLOAT,!1,p*m.array.BYTES_PER_ELEMENT,(d*p+k)*m.array.BYTES_PER_ELEMENT);if(m instanceof THREE.InstancedInterleavedBuffer){if(null===e){console.error("THREE.WebGLRenderer.setupVertexAttributes: using THREE.InstancedBufferAttribute but hardware does not support extension ANGLE_instanced_arrays."); return}e.vertexAttribDivisorANGLE(h,m.meshPerAttribute);void 0===c.maxInstancedCount&&(c.maxInstancedCount=m.meshPerAttribute*m.count)}}else if(t.bindBuffer(t.ARRAY_BUFFER,n),t.vertexAttribPointer(h,l,t.FLOAT,!1,0,d*l*4),k instanceof THREE.InstancedBufferAttribute){if(null===e){console.error("THREE.WebGLRenderer.setupVertexAttributes: using THREE.InstancedBufferAttribute but hardware does not support extension ANGLE_instanced_arrays.");return}e.vertexAttribDivisorANGLE(h,k.meshPerAttribute);void 0=== c.maxInstancedCount&&(c.maxInstancedCount=k.meshPerAttribute*k.count)}}else if(void 0!==a&&(l=a[f],void 0!==l))switch(l.length){case 2:t.vertexAttrib2fv(h,l);break;case 3:t.vertexAttrib3fv(h,l);break;case 4:t.vertexAttrib4fv(h,l);break;default:t.vertexAttrib1fv(h,l)}}}N.disableUnusedAttributes()}function l(a,b){return a.object.renderOrder!==b.object.renderOrder?a.object.renderOrder-b.object.renderOrder:a.object.material.id!==b.object.material.id?a.object.material.id-b.object.material.id:a.z!==b.z? -a.z-b.z:a.id-b.id}function m(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 p(a){if(!0===a.visible){if(!(a instanceof THREE.Scene||a instanceof THREE.Group))if(a instanceof THREE.SkinnedMesh&&a.skeleton.update(),pa.init(a),a instanceof THREE.Light)fa.push(a);else if(a instanceof THREE.Sprite)Ha.push(a);else if(a instanceof THREE.LensFlare)Qa.push(a);else if(a instanceof THREE.ImmediateRenderObject){var b=a.material; -b.transparent?Ga.push(a):Ba.push(a)}else{var c=pa.objects[a.id];!c||!1!==a.frustumCulled&&!0!==Ra.intersectsObject(a)||(b=a.material,Z.get(b)&&(b.program=Z.get(b).program),b.transparent?oa.push(c):la.push(c),!0===ja.sortObjects&&(na.setFromMatrixPosition(a.matrixWorld),na.applyProjection(Ka),c.z=na.z))}b=0;for(c=a.children.length;bia;ia++)Oa[ia]=!ja.autoScaleCubemaps||Tb||Fb?Fb?ha.image[ia].image:ha.image[ia]:H(ha.image[ia],ac);var Ub=Oa[0],Vb=THREE.Math.isPowerOfTwo(Ub.width)&&THREE.Math.isPowerOfTwo(Ub.height),Fa=F(ha.format), -Gb=F(ha.type);v(t.TEXTURE_CUBE_MAP,ha,Vb);for(ia=0;6>ia;ia++)if(Tb)for(var Pa,Wb=Oa[ia].mipmaps,bb=0,bc=Wb.length;bbia;ia++)Na[ia]=!ja.autoScaleCubemaps||Ub||Gb?Gb?ha.image[ia].image:ha.image[ia]:H(ha.image[ia],ac);var Vb=Na[0],Wb=THREE.Math.isPowerOfTwo(Vb.width)&&THREE.Math.isPowerOfTwo(Vb.height),Fa=F(ha.format), +Hb=F(ha.type);v(t.TEXTURE_CUBE_MAP,ha,Wb);for(ia=0;6>ia;ia++)if(Ub)for(var Oa,Xb=Na[ia].mipmaps,bb=0,bc=Xb.length;bb=cb&&console.warn("WebGLRenderer: trying to use "+a+" texture units while this GPU supports only "+cb);fb+=1;return a}function z(a,b,c,d){a[b+0]=c.r*d;a[b+1]=c.g*d;a[b+2]=c.b*d}function v(a,b,c){c?(t.texParameteri(a,t.TEXTURE_WRAP_S,F(b.wrapS)),t.texParameteri(a,t.TEXTURE_WRAP_T,F(b.wrapT)), +b;a.spotLightExponent.needsUpdate=b;a.spotLightDecay.needsUpdate=b;a.hemisphereLightSkyColor.needsUpdate=b;a.hemisphereLightGroundColor.needsUpdate=b;a.hemisphereLightDirection.needsUpdate=b}function x(){var a=eb;a>=cb&&console.warn("WebGLRenderer: trying to use "+a+" texture units while this GPU supports only "+cb);eb+=1;return a}function z(a,b,c,d){a[b+0]=c.r*d;a[b+1]=c.g*d;a[b+2]=c.b*d}function v(a,b,c){c?(t.texParameteri(a,t.TEXTURE_WRAP_S,F(b.wrapS)),t.texParameteri(a,t.TEXTURE_WRAP_T,F(b.wrapT)), t.texParameteri(a,t.TEXTURE_MAG_FILTER,F(b.magFilter)),t.texParameteri(a,t.TEXTURE_MIN_FILTER,F(b.minFilter))):(t.texParameteri(a,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(a,t.TEXTURE_WRAP_T,t.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+" )"),t.texParameteri(a,t.TEXTURE_MAG_FILTER,D(b.magFilter)), t.texParameteri(a,t.TEXTURE_MIN_FILTER,D(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=V.get("EXT_texture_filter_anisotropic"))&&b.type!==THREE.FloatType&&b.type!==THREE.HalfFloatType&&(1b||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 I(a,b,c){t.bindFramebuffer(t.FRAMEBUFFER,a); @@ -538,13 +538,13 @@ if(a===THREE.LuminanceAlphaFormat)return t.LUMINANCE_ALPHA;if(a===THREE.AddEquat if(a===THREE.DstAlphaFactor)return t.DST_ALPHA;if(a===THREE.OneMinusDstAlphaFactor)return t.ONE_MINUS_DST_ALPHA;if(a===THREE.DstColorFactor)return t.DST_COLOR;if(a===THREE.OneMinusDstColorFactor)return t.ONE_MINUS_DST_COLOR;if(a===THREE.SrcAlphaSaturateFactor)return t.SRC_ALPHA_SATURATE;b=V.get("WEBGL_compressed_texture_s3tc");if(null!==b){if(a===THREE.RGB_S3TC_DXT1_Format)return b.COMPRESSED_RGB_S3TC_DXT1_EXT;if(a===THREE.RGBA_S3TC_DXT1_Format)return b.COMPRESSED_RGBA_S3TC_DXT1_EXT;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=V.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=V.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 B=void 0!==a.canvas?a.canvas:document.createElement("canvas"),C=void 0!==a.context?a.context:null,S=B.width,G=B.height,A=1,E=void 0!==a.precision?a.precision:"highp",J=void 0!==a.alpha?a.alpha:!1,M=void 0!==a.depth?a.depth:!0,R=void 0!==a.stencil?a.stencil:!0,U=void 0!==a.antialias?a.antialias:!1,Q=void 0!==a.premultipliedAlpha?a.premultipliedAlpha:!0,T=void 0!==a.preserveDrawingBuffer? -a.preserveDrawingBuffer:!1,L=void 0!==a.logarithmicDepthBuffer?a.logarithmicDepthBuffer:!1,aa=new THREE.Color(0),ea=0,fa=[],la=[],oa=[],Ba=[],Ga=[],Ha=[],Qa=[];this.domElement=B;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 ja=this,va=[],kb=null,ua=null,Xa=-1,xa="",Wa=null,fb=0,Ia=0,Ja=0,Ca=B.width,wa= -B.height,db=0,jb=0,Ra=new THREE.Frustum,Ka=new THREE.Matrix4,na=new THREE.Vector3,ga=new THREE.Vector3,eb=!0,Mb={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:[]}},Da={programs:0,geometries:0,textures:0},P={calls:0,vertices:0,faces:0,points:0};this.info={render:P,memory:Da, -programs:va};var t;try{a={alpha:J,depth:M,stencil:R,antialias:U,premultipliedAlpha:Q,preserveDrawingBuffer:T};t=C||B.getContext("webgl",a)||B.getContext("experimental-webgl",a);if(null===t){if(null!==B.getContext("webgl"))throw"Error creating WebGL context with your selected attributes.";throw"Error creating WebGL context.";}B.addEventListener("webglcontextlost",function(a){a.preventDefault();d();c();pa.clear();Z.clear()},!1)}catch(Hb){console.error("THREE.WebGLRenderer: "+Hb)}var N=new THREE.WebGLState(t, +a.preserveDrawingBuffer:!1,L=void 0!==a.logarithmicDepthBuffer?a.logarithmicDepthBuffer:!1,aa=new THREE.Color(0),ea=0,fa=[],la=[],oa=[],Ba=[],Ga=[],Ha=[],Pa=[];this.domElement=B;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 ja=this,va=[],kb=null,ua=null,Wa=-1,xa="",Va=null,eb=0,Ia=0,Ja=0,Ca=B.width,wa= +B.height,ib=0,jb=0,Xa=new THREE.Frustum,Qa=new THREE.Matrix4,na=new THREE.Vector3,ga=new THREE.Vector3,db=!0,Nb={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:[]}},Da={programs:0,geometries:0,textures:0},P={calls:0,vertices:0,faces:0,points:0};this.info={render:P,memory:Da, +programs:va};var t;try{a={alpha:J,depth:M,stencil:R,antialias:U,premultipliedAlpha:Q,preserveDrawingBuffer:T};t=C||B.getContext("webgl",a)||B.getContext("experimental-webgl",a);if(null===t){if(null!==B.getContext("webgl"))throw"Error creating WebGL context with your selected attributes.";throw"Error creating WebGL context.";}B.addEventListener("webglcontextlost",function(a){a.preventDefault();d();c();pa.clear();Z.clear()},!1)}catch(Ib){console.error("THREE.WebGLRenderer: "+Ib)}var N=new THREE.WebGLState(t, F);void 0===t.getShaderPrecisionFormat&&(t.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}});var Z=new THREE.WebGLProperties,pa=new THREE.WebGLObjects(t,Z,this.info),V=new THREE.WebGLExtensions(t);V.get("OES_texture_float");V.get("OES_texture_float_linear");V.get("OES_texture_half_float");V.get("OES_texture_half_float_linear");V.get("OES_standard_derivatives");V.get("ANGLE_instanced_arrays");V.get("OES_element_index_uint")&&(THREE.BufferGeometry.MaxIndex=4294967296); -L&&V.get("EXT_frag_depth");c();this.context=t;this.extensions=V;this.state=N;var ma=new THREE.WebGLShadowMap(this,fa,pa);this.shadowMap=ma;var cb=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS),C=t.getParameter(t.MAX_VERTEX_TEXTURE_IMAGE_UNITS),Ib=t.getParameter(t.MAX_TEXTURE_SIZE),ac=t.getParameter(t.MAX_CUBE_MAP_TEXTURE_SIZE),mb=0h;h++)c.__webglFramebuffer[h]=t.createFramebuffer(),c.__webglRenderbuffer[h]=t.createRenderbuffer(),N.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+h,0,e,a.width,a.height,0,e,g,null),I(c.__webglFramebuffer[h],a,t.TEXTURE_CUBE_MAP_POSITIVE_X+h),y(c.__webglRenderbuffer[h], a);a.generateMipmaps&&d&&t.generateMipmap(t.TEXTURE_CUBE_MAP)}else c.__webglFramebuffer=t.createFramebuffer(),c.__webglRenderbuffer=a.shareDepthFrom?a.shareDepthFrom.__webglRenderbuffer:t.createRenderbuffer(),N.bindTexture(t.TEXTURE_2D,c.__webglTexture),v(t.TEXTURE_2D,a,d),N.texImage2D(t.TEXTURE_2D,0,e,a.width,a.height,0,e,g,null),I(c.__webglFramebuffer,a,t.TEXTURE_2D),a.shareDepthFrom?a.depthBuffer&&!a.stencilBuffer?t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.RENDERBUFFER,c.__webglRenderbuffer): a.depthBuffer&&a.stencilBuffer&&t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.RENDERBUFFER,c.__webglRenderbuffer):y(c.__webglRenderbuffer,a),a.generateMipmaps&&d&&t.generateMipmap(t.TEXTURE_2D);b?N.bindTexture(t.TEXTURE_CUBE_MAP,null):N.bindTexture(t.TEXTURE_2D,null);t.bindRenderbuffer(t.RENDERBUFFER,null);t.bindFramebuffer(t.FRAMEBUFFER,null)}a?(c=Z.get(a),b=b?c.__webglFramebuffer[a.activeCubeFace]:c.__webglFramebuffer,c=a.width,a=a.height,e=d=0):(b=null,c=Ca,a=wa,d=Ia,e=Ja); -b!==ua&&(t.bindFramebuffer(t.FRAMEBUFFER,b),t.viewport(d,e,c,a),ua=b);db=c;jb=a};this.readRenderTargetPixels=function(a,b,c,d,e,g){if(!(a instanceof THREE.WebGLRenderTarget))console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");else if(Z.get(a).__webglFramebuffer)if(a.format!==THREE.RGBAFormat)console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA format. readPixels can read only RGBA format.");else{var f=!1;Z.get(a).__webglFramebuffer!== +b!==ua&&(t.bindFramebuffer(t.FRAMEBUFFER,b),t.viewport(d,e,c,a),ua=b);ib=c;jb=a};this.readRenderTargetPixels=function(a,b,c,d,e,g){if(!(a instanceof THREE.WebGLRenderTarget))console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");else if(Z.get(a).__webglFramebuffer)if(a.format!==THREE.RGBAFormat)console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA format. readPixels can read only RGBA format.");else{var f=!1;Z.get(a).__webglFramebuffer!== ua&&(t.bindFramebuffer(t.FRAMEBUFFER,Z.get(a).__webglFramebuffer),f=!0);t.checkFramebufferStatus(t.FRAMEBUFFER)===t.FRAMEBUFFER_COMPLETE?t.readPixels(b,c,d,e,t.RGBA,t.UNSIGNED_BYTE,g):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.");f&&t.bindFramebuffer(t.FRAMEBUFFER,ua)}};this.initMaterial=function(){console.warn("THREE.WebGLRenderer: .initMaterial() has been removed.")};this.addPrePlugin=function(){console.warn("THREE.WebGLRenderer: .addPrePlugin() has been removed.")}; this.addPostPlugin=function(){console.warn("THREE.WebGLRenderer: .addPostPlugin() has been removed.")};this.updateShadowMap=function(){console.warn("THREE.WebGLRenderer: .updateShadowMap() has been removed.")};Object.defineProperties(this,{shadowMapEnabled:{get:function(){return ma.enabled},set:function(a){console.warn("THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled.");ma.enabled=a}},shadowMapType:{get:function(){return ma.type},set:function(a){console.warn("THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type."); ma.type=a}},shadowMapCullFace:{get:function(){return ma.cullFace},set:function(a){console.warn("THREE.WebGLRenderer: .shadowMapCullFace is now .shadowMap.cullFace.");ma.cullFace=a}},shadowMapDebug:{get:function(){return ma.debug},set:function(a){console.warn("THREE.WebGLRenderer: .shadowMapDebug is now .shadowMap.debug.");ma.debug=a}},shadowMapCascade:{get:function(){return ma.cascade},set:function(a){console.warn("THREE.WebGLRenderer: .shadowMapCascade is now .shadowMap.cascade.");ma.cascade=a}}})};