提交 cd350e4a 编写于 作者: M Mr.doob

Updated builds.

上级 8fba64ca
......@@ -20884,6 +20884,7 @@ THREE.WebGLRenderer = function ( parameters ) {
// reset caching for this frame
_currentGeometryGroupHash = - 1;
_currentMaterialId = - 1;
_currentCamera = null;
_lightsNeedUpdate = true;
......
......@@ -440,21 +440,21 @@ f.__webglVertexBuffer){f.__webglVertexBuffer=m.createBuffer();f.__webglColorBuff
m.createBuffer();f.__webglColorBuffer=m.createBuffer();H.info.memory.geometries++;var h=f.vertices.length;f.__vertexArray=new Float32Array(3*h);f.__colorArray=new Float32Array(3*h);f.__sortArray=[];f.__webglParticleCount=h;b(e);f.verticesNeedUpdate=!0;f.colorsNeedUpdate=!0}if(void 0===e.__webglActive)if(e.__webglActive=!0,e instanceof THREE.Mesh)if(f instanceof THREE.BufferGeometry)w($a,f,e);else{if(f instanceof THREE.Geometry)for(var k=sb[f.id],n=0,r=k.length;n<r;n++)w($a,k[n],e)}else e instanceof
THREE.Line||e instanceof THREE.PointCloud?w($a,f,e):(e instanceof THREE.ImmediateRenderObject||e.immediateRenderCallback)&&lb.push({id:null,object:e,opaque:null,transparent:null,z:0});var t=$a[e.id];if(t&&(!1===e.frustumCulled||!0===Bc.intersectsObject(e))){var q=e.geometry,s,x;if(q instanceof THREE.BufferGeometry)for(var y=q.attributes,B=q.attributesKeys,G=0,C=B.length;G<C;G++){var E=B[G],F=y[E];void 0===F.buffer&&(F.buffer=m.createBuffer(),F.needsUpdate=!0);if(!0===F.needsUpdate){var K="index"===
E?m.ELEMENT_ARRAY_BUFFER:m.ARRAY_BUFFER;m.bindBuffer(K,F.buffer);m.bufferData(K,F.array,m.STATIC_DRAW);F.needsUpdate=!1}}else if(e instanceof THREE.Mesh){!0===q.groupsNeedUpdate&&v(a,e,q);for(var Q=sb[q.id],R=0,M=Q.length;R<M;R++){var P=Q[R];x=d(e,P);!0===q.groupsNeedUpdate&&c(P,e);s=x.attributes&&u(x);if(q.verticesNeedUpdate||q.morphTargetsNeedUpdate||q.elementsNeedUpdate||q.uvsNeedUpdate||q.normalsNeedUpdate||q.colorsNeedUpdate||q.tangentsNeedUpdate||s){var I=P,O=e,sa=m.DYNAMIC_DRAW,T=!q.dynamic,
X=x;if(I.__inittedArrays){var W=X&&void 0!==X.shading&&X.shading===THREE.SmoothShading,L=void 0,Y=void 0,ka=void 0,da=void 0,ba=void 0,db=void 0,ga=void 0,qb=void 0,ta=void 0,za=void 0,ia=void 0,aa=void 0,$=void 0,Z=void 0,Ab=void 0,qa=void 0,J=void 0,Aa=void 0,oa=void 0,kc=void 0,la=void 0,Pa=void 0,lc=void 0,mc=void 0,Ca=void 0,Ja=void 0,nc=void 0,Ga=void 0,oc=void 0,Ba=void 0,wa=void 0,Eb=void 0,Ma=void 0,Bb=void 0,Na=void 0,Yb=void 0,Ya=void 0,ab=void 0,Lb=void 0,Sb=void 0,fb=0,gb=0,ub=0,vb=0,
Fb=0,Sa=0,Da=0,Qa=0,Ka=0,ma=0,ua=0,D=0,Ha=void 0,Ra=I.__vertexArray,wb=I.__uvArray,hb=I.__uv2Array,Ta=I.__normalArray,ra=I.__tangentArray,La=I.__colorArray,Ua=I.__skinIndexArray,Va=I.__skinWeightArray,Gb=I.__morphTargetsArrays,Hc=I.__morphNormalsArrays,eb=I.__webglCustomAttributesList,z=void 0,Tb=I.__faceArray,Ia=I.__lineArray,xa=O.geometry,bb=xa.elementsNeedUpdate,Ic=xa.uvsNeedUpdate,gc=xa.normalsNeedUpdate,ea=xa.tangentsNeedUpdate,Db=xa.colorsNeedUpdate,S=xa.morphTargetsNeedUpdate,fa=xa.vertices,
X=x;if(I.__inittedArrays){var W=X&&void 0!==X.shading&&X.shading===THREE.SmoothShading,L=void 0,Y=void 0,ka=void 0,da=void 0,ba=void 0,db=void 0,ga=void 0,qb=void 0,ta=void 0,za=void 0,ia=void 0,aa=void 0,$=void 0,Z=void 0,Ab=void 0,qa=void 0,J=void 0,Aa=void 0,oa=void 0,kc=void 0,la=void 0,Pa=void 0,Ga=void 0,lc=void 0,Ca=void 0,mc=void 0,nc=void 0,Ha=void 0,oc=void 0,Ba=void 0,wa=void 0,Eb=void 0,Ma=void 0,Bb=void 0,Na=void 0,Yb=void 0,Ya=void 0,ab=void 0,Lb=void 0,Sb=void 0,fb=0,gb=0,ub=0,vb=0,
Fb=0,Sa=0,Da=0,Qa=0,Ka=0,ma=0,ua=0,D=0,Ia=void 0,Ra=I.__vertexArray,wb=I.__uvArray,hb=I.__uv2Array,Ta=I.__normalArray,ra=I.__tangentArray,La=I.__colorArray,Ua=I.__skinIndexArray,Va=I.__skinWeightArray,Gb=I.__morphTargetsArrays,Hc=I.__morphNormalsArrays,eb=I.__webglCustomAttributesList,z=void 0,Tb=I.__faceArray,Ja=I.__lineArray,xa=O.geometry,bb=xa.elementsNeedUpdate,Ic=xa.uvsNeedUpdate,gc=xa.normalsNeedUpdate,ea=xa.tangentsNeedUpdate,Db=xa.colorsNeedUpdate,S=xa.morphTargetsNeedUpdate,fa=xa.vertices,
N=I.faces3,ya=xa.faces,va=xa.faceVertexUvs[0],Jc=xa.faceVertexUvs[1],Cc=xa.skinIndices,Ub=xa.skinWeights,mb=xa.morphTargets,Ea=xa.morphNormals;if(xa.verticesNeedUpdate){L=0;for(Y=N.length;L<Y;L++)da=ya[N[L]],aa=fa[da.a],$=fa[da.b],Z=fa[da.c],Ra[gb]=aa.x,Ra[gb+1]=aa.y,Ra[gb+2]=aa.z,Ra[gb+3]=$.x,Ra[gb+4]=$.y,Ra[gb+5]=$.z,Ra[gb+6]=Z.x,Ra[gb+7]=Z.y,Ra[gb+8]=Z.z,gb+=9;m.bindBuffer(m.ARRAY_BUFFER,I.__webglVertexBuffer);m.bufferData(m.ARRAY_BUFFER,Ra,sa)}if(S)for(Na=0,Yb=mb.length;Na<Yb;Na++){L=ua=0;for(Y=
N.length;L<Y;L++)Lb=N[L],da=ya[Lb],aa=mb[Na].vertices[da.a],$=mb[Na].vertices[da.b],Z=mb[Na].vertices[da.c],Ya=Gb[Na],Ya[ua]=aa.x,Ya[ua+1]=aa.y,Ya[ua+2]=aa.z,Ya[ua+3]=$.x,Ya[ua+4]=$.y,Ya[ua+5]=$.z,Ya[ua+6]=Z.x,Ya[ua+7]=Z.y,Ya[ua+8]=Z.z,X.morphNormals&&(W?(Sb=Ea[Na].vertexNormals[Lb],Aa=Sb.a,oa=Sb.b,kc=Sb.c):kc=oa=Aa=Ea[Na].faceNormals[Lb],ab=Hc[Na],ab[ua]=Aa.x,ab[ua+1]=Aa.y,ab[ua+2]=Aa.z,ab[ua+3]=oa.x,ab[ua+4]=oa.y,ab[ua+5]=oa.z,ab[ua+6]=kc.x,ab[ua+7]=kc.y,ab[ua+8]=kc.z),ua+=9;m.bindBuffer(m.ARRAY_BUFFER,
I.__webglMorphTargetsBuffers[Na]);m.bufferData(m.ARRAY_BUFFER,Gb[Na],sa);X.morphNormals&&(m.bindBuffer(m.ARRAY_BUFFER,I.__webglMorphNormalsBuffers[Na]),m.bufferData(m.ARRAY_BUFFER,Hc[Na],sa))}if(Ub.length){L=0;for(Y=N.length;L<Y;L++)da=ya[N[L]],mc=Ub[da.a],Ca=Ub[da.b],Ja=Ub[da.c],Va[ma]=mc.x,Va[ma+1]=mc.y,Va[ma+2]=mc.z,Va[ma+3]=mc.w,Va[ma+4]=Ca.x,Va[ma+5]=Ca.y,Va[ma+6]=Ca.z,Va[ma+7]=Ca.w,Va[ma+8]=Ja.x,Va[ma+9]=Ja.y,Va[ma+10]=Ja.z,Va[ma+11]=Ja.w,nc=Cc[da.a],Ga=Cc[da.b],oc=Cc[da.c],Ua[ma]=nc.x,Ua[ma+
1]=nc.y,Ua[ma+2]=nc.z,Ua[ma+3]=nc.w,Ua[ma+4]=Ga.x,Ua[ma+5]=Ga.y,Ua[ma+6]=Ga.z,Ua[ma+7]=Ga.w,Ua[ma+8]=oc.x,Ua[ma+9]=oc.y,Ua[ma+10]=oc.z,Ua[ma+11]=oc.w,ma+=12;0<ma&&(m.bindBuffer(m.ARRAY_BUFFER,I.__webglSkinIndicesBuffer),m.bufferData(m.ARRAY_BUFFER,Ua,sa),m.bindBuffer(m.ARRAY_BUFFER,I.__webglSkinWeightsBuffer),m.bufferData(m.ARRAY_BUFFER,Va,sa))}if(Db){L=0;for(Y=N.length;L<Y;L++)da=ya[N[L]],ga=da.vertexColors,qb=da.color,3===ga.length&&X.vertexColors===THREE.VertexColors?(la=ga[0],Pa=ga[1],lc=ga[2]):
lc=Pa=la=qb,La[Ka]=la.r,La[Ka+1]=la.g,La[Ka+2]=la.b,La[Ka+3]=Pa.r,La[Ka+4]=Pa.g,La[Ka+5]=Pa.b,La[Ka+6]=lc.r,La[Ka+7]=lc.g,La[Ka+8]=lc.b,Ka+=9;0<Ka&&(m.bindBuffer(m.ARRAY_BUFFER,I.__webglColorBuffer),m.bufferData(m.ARRAY_BUFFER,La,sa))}if(ea&&xa.hasTangents){L=0;for(Y=N.length;L<Y;L++)da=ya[N[L]],ta=da.vertexTangents,Ab=ta[0],qa=ta[1],J=ta[2],ra[Da]=Ab.x,ra[Da+1]=Ab.y,ra[Da+2]=Ab.z,ra[Da+3]=Ab.w,ra[Da+4]=qa.x,ra[Da+5]=qa.y,ra[Da+6]=qa.z,ra[Da+7]=qa.w,ra[Da+8]=J.x,ra[Da+9]=J.y,ra[Da+10]=J.z,ra[Da+11]=
I.__webglMorphTargetsBuffers[Na]);m.bufferData(m.ARRAY_BUFFER,Gb[Na],sa);X.morphNormals&&(m.bindBuffer(m.ARRAY_BUFFER,I.__webglMorphNormalsBuffers[Na]),m.bufferData(m.ARRAY_BUFFER,Hc[Na],sa))}if(Ub.length){L=0;for(Y=N.length;L<Y;L++)da=ya[N[L]],lc=Ub[da.a],Ca=Ub[da.b],mc=Ub[da.c],Va[ma]=lc.x,Va[ma+1]=lc.y,Va[ma+2]=lc.z,Va[ma+3]=lc.w,Va[ma+4]=Ca.x,Va[ma+5]=Ca.y,Va[ma+6]=Ca.z,Va[ma+7]=Ca.w,Va[ma+8]=mc.x,Va[ma+9]=mc.y,Va[ma+10]=mc.z,Va[ma+11]=mc.w,nc=Cc[da.a],Ha=Cc[da.b],oc=Cc[da.c],Ua[ma]=nc.x,Ua[ma+
1]=nc.y,Ua[ma+2]=nc.z,Ua[ma+3]=nc.w,Ua[ma+4]=Ha.x,Ua[ma+5]=Ha.y,Ua[ma+6]=Ha.z,Ua[ma+7]=Ha.w,Ua[ma+8]=oc.x,Ua[ma+9]=oc.y,Ua[ma+10]=oc.z,Ua[ma+11]=oc.w,ma+=12;0<ma&&(m.bindBuffer(m.ARRAY_BUFFER,I.__webglSkinIndicesBuffer),m.bufferData(m.ARRAY_BUFFER,Ua,sa),m.bindBuffer(m.ARRAY_BUFFER,I.__webglSkinWeightsBuffer),m.bufferData(m.ARRAY_BUFFER,Va,sa))}if(Db){L=0;for(Y=N.length;L<Y;L++)da=ya[N[L]],ga=da.vertexColors,qb=da.color,3===ga.length&&X.vertexColors===THREE.VertexColors?(la=ga[0],Pa=ga[1],Ga=ga[2]):
Ga=Pa=la=qb,La[Ka]=la.r,La[Ka+1]=la.g,La[Ka+2]=la.b,La[Ka+3]=Pa.r,La[Ka+4]=Pa.g,La[Ka+5]=Pa.b,La[Ka+6]=Ga.r,La[Ka+7]=Ga.g,La[Ka+8]=Ga.b,Ka+=9;0<Ka&&(m.bindBuffer(m.ARRAY_BUFFER,I.__webglColorBuffer),m.bufferData(m.ARRAY_BUFFER,La,sa))}if(ea&&xa.hasTangents){L=0;for(Y=N.length;L<Y;L++)da=ya[N[L]],ta=da.vertexTangents,Ab=ta[0],qa=ta[1],J=ta[2],ra[Da]=Ab.x,ra[Da+1]=Ab.y,ra[Da+2]=Ab.z,ra[Da+3]=Ab.w,ra[Da+4]=qa.x,ra[Da+5]=qa.y,ra[Da+6]=qa.z,ra[Da+7]=qa.w,ra[Da+8]=J.x,ra[Da+9]=J.y,ra[Da+10]=J.z,ra[Da+11]=
J.w,Da+=12;m.bindBuffer(m.ARRAY_BUFFER,I.__webglTangentBuffer);m.bufferData(m.ARRAY_BUFFER,ra,sa)}if(gc){L=0;for(Y=N.length;L<Y;L++)if(da=ya[N[L]],ba=da.vertexNormals,db=da.normal,3===ba.length&&W)for(Ba=0;3>Ba;Ba++)Eb=ba[Ba],Ta[Sa]=Eb.x,Ta[Sa+1]=Eb.y,Ta[Sa+2]=Eb.z,Sa+=3;else for(Ba=0;3>Ba;Ba++)Ta[Sa]=db.x,Ta[Sa+1]=db.y,Ta[Sa+2]=db.z,Sa+=3;m.bindBuffer(m.ARRAY_BUFFER,I.__webglNormalBuffer);m.bufferData(m.ARRAY_BUFFER,Ta,sa)}if(Ic&&va){L=0;for(Y=N.length;L<Y;L++)if(ka=N[L],za=va[ka],void 0!==za)for(Ba=
0;3>Ba;Ba++)Ma=za[Ba],wb[ub]=Ma.x,wb[ub+1]=Ma.y,ub+=2;0<ub&&(m.bindBuffer(m.ARRAY_BUFFER,I.__webglUVBuffer),m.bufferData(m.ARRAY_BUFFER,wb,sa))}if(Ic&&Jc){L=0;for(Y=N.length;L<Y;L++)if(ka=N[L],ia=Jc[ka],void 0!==ia)for(Ba=0;3>Ba;Ba++)Bb=ia[Ba],hb[vb]=Bb.x,hb[vb+1]=Bb.y,vb+=2;0<vb&&(m.bindBuffer(m.ARRAY_BUFFER,I.__webglUV2Buffer),m.bufferData(m.ARRAY_BUFFER,hb,sa))}if(bb){L=0;for(Y=N.length;L<Y;L++)Tb[Fb]=fb,Tb[Fb+1]=fb+1,Tb[Fb+2]=fb+2,Fb+=3,Ia[Qa]=fb,Ia[Qa+1]=fb+1,Ia[Qa+2]=fb,Ia[Qa+3]=fb+2,Ia[Qa+
4]=fb+1,Ia[Qa+5]=fb+2,Qa+=6,fb+=3;m.bindBuffer(m.ELEMENT_ARRAY_BUFFER,I.__webglFaceBuffer);m.bufferData(m.ELEMENT_ARRAY_BUFFER,Tb,sa);m.bindBuffer(m.ELEMENT_ARRAY_BUFFER,I.__webglLineBuffer);m.bufferData(m.ELEMENT_ARRAY_BUFFER,Ia,sa)}if(eb)for(Ba=0,wa=eb.length;Ba<wa;Ba++)if(z=eb[Ba],z.__original.needsUpdate){D=0;if(1===z.size)if(void 0===z.boundTo||"vertices"===z.boundTo)for(L=0,Y=N.length;L<Y;L++)da=ya[N[L]],z.array[D]=z.value[da.a],z.array[D+1]=z.value[da.b],z.array[D+2]=z.value[da.c],D+=3;else{if("faces"===
z.boundTo)for(L=0,Y=N.length;L<Y;L++)Ha=z.value[N[L]],z.array[D]=Ha,z.array[D+1]=Ha,z.array[D+2]=Ha,D+=3}else if(2===z.size)if(void 0===z.boundTo||"vertices"===z.boundTo)for(L=0,Y=N.length;L<Y;L++)da=ya[N[L]],aa=z.value[da.a],$=z.value[da.b],Z=z.value[da.c],z.array[D]=aa.x,z.array[D+1]=aa.y,z.array[D+2]=$.x,z.array[D+3]=$.y,z.array[D+4]=Z.x,z.array[D+5]=Z.y,D+=6;else{if("faces"===z.boundTo)for(L=0,Y=N.length;L<Y;L++)Z=$=aa=Ha=z.value[N[L]],z.array[D]=aa.x,z.array[D+1]=aa.y,z.array[D+2]=$.x,z.array[D+
0;3>Ba;Ba++)Ma=za[Ba],wb[ub]=Ma.x,wb[ub+1]=Ma.y,ub+=2;0<ub&&(m.bindBuffer(m.ARRAY_BUFFER,I.__webglUVBuffer),m.bufferData(m.ARRAY_BUFFER,wb,sa))}if(Ic&&Jc){L=0;for(Y=N.length;L<Y;L++)if(ka=N[L],ia=Jc[ka],void 0!==ia)for(Ba=0;3>Ba;Ba++)Bb=ia[Ba],hb[vb]=Bb.x,hb[vb+1]=Bb.y,vb+=2;0<vb&&(m.bindBuffer(m.ARRAY_BUFFER,I.__webglUV2Buffer),m.bufferData(m.ARRAY_BUFFER,hb,sa))}if(bb){L=0;for(Y=N.length;L<Y;L++)Tb[Fb]=fb,Tb[Fb+1]=fb+1,Tb[Fb+2]=fb+2,Fb+=3,Ja[Qa]=fb,Ja[Qa+1]=fb+1,Ja[Qa+2]=fb,Ja[Qa+3]=fb+2,Ja[Qa+
4]=fb+1,Ja[Qa+5]=fb+2,Qa+=6,fb+=3;m.bindBuffer(m.ELEMENT_ARRAY_BUFFER,I.__webglFaceBuffer);m.bufferData(m.ELEMENT_ARRAY_BUFFER,Tb,sa);m.bindBuffer(m.ELEMENT_ARRAY_BUFFER,I.__webglLineBuffer);m.bufferData(m.ELEMENT_ARRAY_BUFFER,Ja,sa)}if(eb)for(Ba=0,wa=eb.length;Ba<wa;Ba++)if(z=eb[Ba],z.__original.needsUpdate){D=0;if(1===z.size)if(void 0===z.boundTo||"vertices"===z.boundTo)for(L=0,Y=N.length;L<Y;L++)da=ya[N[L]],z.array[D]=z.value[da.a],z.array[D+1]=z.value[da.b],z.array[D+2]=z.value[da.c],D+=3;else{if("faces"===
z.boundTo)for(L=0,Y=N.length;L<Y;L++)Ia=z.value[N[L]],z.array[D]=Ia,z.array[D+1]=Ia,z.array[D+2]=Ia,D+=3}else if(2===z.size)if(void 0===z.boundTo||"vertices"===z.boundTo)for(L=0,Y=N.length;L<Y;L++)da=ya[N[L]],aa=z.value[da.a],$=z.value[da.b],Z=z.value[da.c],z.array[D]=aa.x,z.array[D+1]=aa.y,z.array[D+2]=$.x,z.array[D+3]=$.y,z.array[D+4]=Z.x,z.array[D+5]=Z.y,D+=6;else{if("faces"===z.boundTo)for(L=0,Y=N.length;L<Y;L++)Z=$=aa=Ia=z.value[N[L]],z.array[D]=aa.x,z.array[D+1]=aa.y,z.array[D+2]=$.x,z.array[D+
3]=$.y,z.array[D+4]=Z.x,z.array[D+5]=Z.y,D+=6}else if(3===z.size){var na;na="c"===z.type?["r","g","b"]:["x","y","z"];if(void 0===z.boundTo||"vertices"===z.boundTo)for(L=0,Y=N.length;L<Y;L++)da=ya[N[L]],aa=z.value[da.a],$=z.value[da.b],Z=z.value[da.c],z.array[D]=aa[na[0]],z.array[D+1]=aa[na[1]],z.array[D+2]=aa[na[2]],z.array[D+3]=$[na[0]],z.array[D+4]=$[na[1]],z.array[D+5]=$[na[2]],z.array[D+6]=Z[na[0]],z.array[D+7]=Z[na[1]],z.array[D+8]=Z[na[2]],D+=9;else if("faces"===z.boundTo)for(L=0,Y=N.length;L<
Y;L++)Z=$=aa=Ha=z.value[N[L]],z.array[D]=aa[na[0]],z.array[D+1]=aa[na[1]],z.array[D+2]=aa[na[2]],z.array[D+3]=$[na[0]],z.array[D+4]=$[na[1]],z.array[D+5]=$[na[2]],z.array[D+6]=Z[na[0]],z.array[D+7]=Z[na[1]],z.array[D+8]=Z[na[2]],D+=9;else if("faceVertices"===z.boundTo)for(L=0,Y=N.length;L<Y;L++)Ha=z.value[N[L]],aa=Ha[0],$=Ha[1],Z=Ha[2],z.array[D]=aa[na[0]],z.array[D+1]=aa[na[1]],z.array[D+2]=aa[na[2]],z.array[D+3]=$[na[0]],z.array[D+4]=$[na[1]],z.array[D+5]=$[na[2]],z.array[D+6]=Z[na[0]],z.array[D+
7]=Z[na[1]],z.array[D+8]=Z[na[2]],D+=9}else if(4===z.size)if(void 0===z.boundTo||"vertices"===z.boundTo)for(L=0,Y=N.length;L<Y;L++)da=ya[N[L]],aa=z.value[da.a],$=z.value[da.b],Z=z.value[da.c],z.array[D]=aa.x,z.array[D+1]=aa.y,z.array[D+2]=aa.z,z.array[D+3]=aa.w,z.array[D+4]=$.x,z.array[D+5]=$.y,z.array[D+6]=$.z,z.array[D+7]=$.w,z.array[D+8]=Z.x,z.array[D+9]=Z.y,z.array[D+10]=Z.z,z.array[D+11]=Z.w,D+=12;else if("faces"===z.boundTo)for(L=0,Y=N.length;L<Y;L++)Z=$=aa=Ha=z.value[N[L]],z.array[D]=aa.x,
z.array[D+1]=aa.y,z.array[D+2]=aa.z,z.array[D+3]=aa.w,z.array[D+4]=$.x,z.array[D+5]=$.y,z.array[D+6]=$.z,z.array[D+7]=$.w,z.array[D+8]=Z.x,z.array[D+9]=Z.y,z.array[D+10]=Z.z,z.array[D+11]=Z.w,D+=12;else if("faceVertices"===z.boundTo)for(L=0,Y=N.length;L<Y;L++)Ha=z.value[N[L]],aa=Ha[0],$=Ha[1],Z=Ha[2],z.array[D]=aa.x,z.array[D+1]=aa.y,z.array[D+2]=aa.z,z.array[D+3]=aa.w,z.array[D+4]=$.x,z.array[D+5]=$.y,z.array[D+6]=$.z,z.array[D+7]=$.w,z.array[D+8]=Z.x,z.array[D+9]=Z.y,z.array[D+10]=Z.z,z.array[D+
Y;L++)Z=$=aa=Ia=z.value[N[L]],z.array[D]=aa[na[0]],z.array[D+1]=aa[na[1]],z.array[D+2]=aa[na[2]],z.array[D+3]=$[na[0]],z.array[D+4]=$[na[1]],z.array[D+5]=$[na[2]],z.array[D+6]=Z[na[0]],z.array[D+7]=Z[na[1]],z.array[D+8]=Z[na[2]],D+=9;else if("faceVertices"===z.boundTo)for(L=0,Y=N.length;L<Y;L++)Ia=z.value[N[L]],aa=Ia[0],$=Ia[1],Z=Ia[2],z.array[D]=aa[na[0]],z.array[D+1]=aa[na[1]],z.array[D+2]=aa[na[2]],z.array[D+3]=$[na[0]],z.array[D+4]=$[na[1]],z.array[D+5]=$[na[2]],z.array[D+6]=Z[na[0]],z.array[D+
7]=Z[na[1]],z.array[D+8]=Z[na[2]],D+=9}else if(4===z.size)if(void 0===z.boundTo||"vertices"===z.boundTo)for(L=0,Y=N.length;L<Y;L++)da=ya[N[L]],aa=z.value[da.a],$=z.value[da.b],Z=z.value[da.c],z.array[D]=aa.x,z.array[D+1]=aa.y,z.array[D+2]=aa.z,z.array[D+3]=aa.w,z.array[D+4]=$.x,z.array[D+5]=$.y,z.array[D+6]=$.z,z.array[D+7]=$.w,z.array[D+8]=Z.x,z.array[D+9]=Z.y,z.array[D+10]=Z.z,z.array[D+11]=Z.w,D+=12;else if("faces"===z.boundTo)for(L=0,Y=N.length;L<Y;L++)Z=$=aa=Ia=z.value[N[L]],z.array[D]=aa.x,
z.array[D+1]=aa.y,z.array[D+2]=aa.z,z.array[D+3]=aa.w,z.array[D+4]=$.x,z.array[D+5]=$.y,z.array[D+6]=$.z,z.array[D+7]=$.w,z.array[D+8]=Z.x,z.array[D+9]=Z.y,z.array[D+10]=Z.z,z.array[D+11]=Z.w,D+=12;else if("faceVertices"===z.boundTo)for(L=0,Y=N.length;L<Y;L++)Ia=z.value[N[L]],aa=Ia[0],$=Ia[1],Z=Ia[2],z.array[D]=aa.x,z.array[D+1]=aa.y,z.array[D+2]=aa.z,z.array[D+3]=aa.w,z.array[D+4]=$.x,z.array[D+5]=$.y,z.array[D+6]=$.z,z.array[D+7]=$.w,z.array[D+8]=Z.x,z.array[D+9]=Z.y,z.array[D+10]=Z.z,z.array[D+
11]=Z.w,D+=12;m.bindBuffer(m.ARRAY_BUFFER,z.buffer);m.bufferData(m.ARRAY_BUFFER,z.array,sa)}T&&(delete I.__inittedArrays,delete I.__colorArray,delete I.__normalArray,delete I.__tangentArray,delete I.__uvArray,delete I.__uv2Array,delete I.__faceArray,delete I.__vertexArray,delete I.__lineArray,delete I.__skinIndexArray,delete I.__skinWeightArray)}}}q.verticesNeedUpdate=!1;q.morphTargetsNeedUpdate=!1;q.elementsNeedUpdate=!1;q.uvsNeedUpdate=!1;q.normalsNeedUpdate=!1;q.colorsNeedUpdate=!1;q.tangentsNeedUpdate=
!1;x.attributes&&A(x)}else if(e instanceof THREE.Line){x=d(e,q);s=x.attributes&&u(x);if(q.verticesNeedUpdate||q.colorsNeedUpdate||q.lineDistancesNeedUpdate||s){var ac=m.DYNAMIC_DRAW,cb,Hb,ib,bc,ha,uc,Cb=q.vertices,Mb=q.colors,Nb=q.lineDistances,Ob=Cb.length,Qb=Mb.length,Zb=Nb.length,jb=q.__vertexArray,kb=q.__colorArray,Rb=q.__lineDistanceArray,$b=q.colorsNeedUpdate,tc=q.lineDistancesNeedUpdate,fc=q.__webglCustomAttributesList,vc,jc,Fa,hc,Wa,pa;if(q.verticesNeedUpdate){for(cb=0;cb<Ob;cb++)bc=Cb[cb],
ha=3*cb,jb[ha]=bc.x,jb[ha+1]=bc.y,jb[ha+2]=bc.z;m.bindBuffer(m.ARRAY_BUFFER,q.__webglVertexBuffer);m.bufferData(m.ARRAY_BUFFER,jb,ac)}if($b){for(Hb=0;Hb<Qb;Hb++)uc=Mb[Hb],ha=3*Hb,kb[ha]=uc.r,kb[ha+1]=uc.g,kb[ha+2]=uc.b;m.bindBuffer(m.ARRAY_BUFFER,q.__webglColorBuffer);m.bufferData(m.ARRAY_BUFFER,kb,ac)}if(tc){for(ib=0;ib<Zb;ib++)Rb[ib]=Nb[ib];m.bindBuffer(m.ARRAY_BUFFER,q.__webglLineDistanceBuffer);m.bufferData(m.ARRAY_BUFFER,Rb,ac)}if(fc)for(vc=0,jc=fc.length;vc<jc;vc++)if(pa=fc[vc],pa.needsUpdate&&
......@@ -482,26 +482,26 @@ db+ga,0<=Za[$a]&&d.numSupportedMorphNormals++;d.uniformsList=[];for(var lb in d.
if(aa||a!==Yb)m.uniformMatrix4fv(qa.projectionMatrix,!1,a.projectionMatrix.elements),Pa&&m.uniform1f(qa.logDepthBufFC,2/(Math.log(a.far+1)/Math.LN2)),a!==Yb&&(Yb=a),(d instanceof THREE.ShaderMaterial||d instanceof THREE.MeshPhongMaterial||d.envMap)&&null!==qa.cameraPosition&&(Oa.setFromMatrixPosition(a.matrixWorld),m.uniform3f(qa.cameraPosition,Oa.x,Oa.y,Oa.z)),(d instanceof THREE.MeshPhongMaterial||d instanceof THREE.MeshLambertMaterial||d instanceof THREE.ShaderMaterial||d.skinning)&&null!==qa.viewMatrix&&
m.uniformMatrix4fv(qa.viewMatrix,!1,a.matrixWorldInverse.elements);if(d.skinning)if(e.bindMatrix&&null!==qa.bindMatrix&&m.uniformMatrix4fv(qa.bindMatrix,!1,e.bindMatrix.elements),e.bindMatrixInverse&&null!==qa.bindMatrixInverse&&m.uniformMatrix4fv(qa.bindMatrixInverse,!1,e.bindMatrixInverse.elements),tc&&e.skeleton&&e.skeleton.useVertexTexture){if(null!==qa.boneTexture){var Kb=E();m.uniform1i(qa.boneTexture,Kb);H.setTexture(e.skeleton.boneTexture,Kb)}null!==qa.boneTextureWidth&&m.uniform1i(qa.boneTextureWidth,
e.skeleton.boneTextureWidth);null!==qa.boneTextureHeight&&m.uniform1i(qa.boneTextureHeight,e.skeleton.boneTextureHeight)}else e.skeleton&&e.skeleton.boneMatrices&&null!==qa.boneGlobalMatrices&&m.uniformMatrix4fv(qa.boneGlobalMatrices,!1,e.skeleton.boneMatrices);if($){c&&d.fog&&(J.fogColor.value=c.color,c instanceof THREE.Fog?(J.fogNear.value=c.near,J.fogFar.value=c.far):c instanceof THREE.FogExp2&&(J.fogDensity.value=c.density));if(d instanceof THREE.MeshPhongMaterial||d instanceof THREE.MeshLambertMaterial||
d.lights){if(gc){var Z=!0,oa,ia,la,Aa=0,Ja=0,Ma=0,Ca,eb,jb,Ga,kb,Ba,wa=Ac,Eb=wa.directional.colors,sb=wa.directional.positions,Cb=wa.point.colors,Na=wa.point.positions,Mb=wa.point.distances,Ya=wa.spot.colors,ab=wa.spot.positions,Nb=wa.spot.distances,Sb=wa.spot.directions,fb=wa.spot.anglesCos,gb=wa.spot.exponents,ub=wa.hemi.skyColors,vb=wa.hemi.groundColors,Fb=wa.hemi.positions,Sa=0,Da=0,Qa=0,Ka=0,ma=0,ua=0,D=0,Ha=0,Ra=0,wb=0,hb=0,Ta=0;oa=0;for(ia=b.length;oa<ia;oa++)la=b[oa],la.onlyShadow||(Ca=la.color,
Ga=la.intensity,Ba=la.distance,la instanceof THREE.AmbientLight?la.visible&&(H.gammaInput?(Aa+=Ca.r*Ca.r,Ja+=Ca.g*Ca.g,Ma+=Ca.b*Ca.b):(Aa+=Ca.r,Ja+=Ca.g,Ma+=Ca.b)):la instanceof THREE.DirectionalLight?(ma+=1,la.visible&&(za.setFromMatrixPosition(la.matrixWorld),Oa.setFromMatrixPosition(la.target.matrixWorld),za.sub(Oa),za.normalize(),Ra=3*Sa,sb[Ra]=za.x,sb[Ra+1]=za.y,sb[Ra+2]=za.z,H.gammaInput?y(Eb,Ra,Ca,Ga*Ga):C(Eb,Ra,Ca,Ga),Sa+=1)):la instanceof THREE.PointLight?(ua+=1,la.visible&&(wb=3*Da,H.gammaInput?
y(Cb,wb,Ca,Ga*Ga):C(Cb,wb,Ca,Ga),Oa.setFromMatrixPosition(la.matrixWorld),Na[wb]=Oa.x,Na[wb+1]=Oa.y,Na[wb+2]=Oa.z,Mb[Da]=Ba,Da+=1)):la instanceof THREE.SpotLight?(D+=1,la.visible&&(hb=3*Qa,H.gammaInput?y(Ya,hb,Ca,Ga*Ga):C(Ya,hb,Ca,Ga),za.setFromMatrixPosition(la.matrixWorld),ab[hb]=za.x,ab[hb+1]=za.y,ab[hb+2]=za.z,Nb[Qa]=Ba,Oa.setFromMatrixPosition(la.target.matrixWorld),za.sub(Oa),za.normalize(),Sb[hb]=za.x,Sb[hb+1]=za.y,Sb[hb+2]=za.z,fb[Qa]=Math.cos(la.angle),gb[Qa]=la.exponent,Qa+=1)):la instanceof
THREE.HemisphereLight&&(Ha+=1,la.visible&&(za.setFromMatrixPosition(la.matrixWorld),za.normalize(),Ta=3*Ka,Fb[Ta]=za.x,Fb[Ta+1]=za.y,Fb[Ta+2]=za.z,eb=la.color,jb=la.groundColor,H.gammaInput?(kb=Ga*Ga,y(ub,Ta,eb,kb),y(vb,Ta,jb,kb)):(C(ub,Ta,eb,Ga),C(vb,Ta,jb,Ga)),Ka+=1)));oa=3*Sa;for(ia=Math.max(Eb.length,3*ma);oa<ia;oa++)Eb[oa]=0;oa=3*Da;for(ia=Math.max(Cb.length,3*ua);oa<ia;oa++)Cb[oa]=0;oa=3*Qa;for(ia=Math.max(Ya.length,3*D);oa<ia;oa++)Ya[oa]=0;oa=3*Ka;for(ia=Math.max(ub.length,3*Ha);oa<ia;oa++)ub[oa]=
0;oa=3*Ka;for(ia=Math.max(vb.length,3*Ha);oa<ia;oa++)vb[oa]=0;wa.directional.length=Sa;wa.point.length=Da;wa.spot.length=Qa;wa.hemi.length=Ka;wa.ambient[0]=Aa;wa.ambient[1]=Ja;wa.ambient[2]=Ma;gc=!1}if(Z){var ra=Ac;J.ambientLightColor.value=ra.ambient;J.directionalLightColor.value=ra.directional.colors;J.directionalLightDirection.value=ra.directional.positions;J.pointLightColor.value=ra.point.colors;J.pointLightPosition.value=ra.point.positions;J.pointLightDistance.value=ra.point.distances;J.spotLightColor.value=
d.lights){if(gc){var Z=!0,oa,ia,la,Aa=0,Ga=0,Ma=0,Ca,eb,jb,Ha,kb,Ba,wa=Ac,Eb=wa.directional.colors,sb=wa.directional.positions,Cb=wa.point.colors,Na=wa.point.positions,Mb=wa.point.distances,Ya=wa.spot.colors,ab=wa.spot.positions,Nb=wa.spot.distances,Sb=wa.spot.directions,fb=wa.spot.anglesCos,gb=wa.spot.exponents,ub=wa.hemi.skyColors,vb=wa.hemi.groundColors,Fb=wa.hemi.positions,Sa=0,Da=0,Qa=0,Ka=0,ma=0,ua=0,D=0,Ia=0,Ra=0,wb=0,hb=0,Ta=0;oa=0;for(ia=b.length;oa<ia;oa++)la=b[oa],la.onlyShadow||(Ca=la.color,
Ha=la.intensity,Ba=la.distance,la instanceof THREE.AmbientLight?la.visible&&(H.gammaInput?(Aa+=Ca.r*Ca.r,Ga+=Ca.g*Ca.g,Ma+=Ca.b*Ca.b):(Aa+=Ca.r,Ga+=Ca.g,Ma+=Ca.b)):la instanceof THREE.DirectionalLight?(ma+=1,la.visible&&(za.setFromMatrixPosition(la.matrixWorld),Oa.setFromMatrixPosition(la.target.matrixWorld),za.sub(Oa),za.normalize(),Ra=3*Sa,sb[Ra]=za.x,sb[Ra+1]=za.y,sb[Ra+2]=za.z,H.gammaInput?y(Eb,Ra,Ca,Ha*Ha):C(Eb,Ra,Ca,Ha),Sa+=1)):la instanceof THREE.PointLight?(ua+=1,la.visible&&(wb=3*Da,H.gammaInput?
y(Cb,wb,Ca,Ha*Ha):C(Cb,wb,Ca,Ha),Oa.setFromMatrixPosition(la.matrixWorld),Na[wb]=Oa.x,Na[wb+1]=Oa.y,Na[wb+2]=Oa.z,Mb[Da]=Ba,Da+=1)):la instanceof THREE.SpotLight?(D+=1,la.visible&&(hb=3*Qa,H.gammaInput?y(Ya,hb,Ca,Ha*Ha):C(Ya,hb,Ca,Ha),za.setFromMatrixPosition(la.matrixWorld),ab[hb]=za.x,ab[hb+1]=za.y,ab[hb+2]=za.z,Nb[Qa]=Ba,Oa.setFromMatrixPosition(la.target.matrixWorld),za.sub(Oa),za.normalize(),Sb[hb]=za.x,Sb[hb+1]=za.y,Sb[hb+2]=za.z,fb[Qa]=Math.cos(la.angle),gb[Qa]=la.exponent,Qa+=1)):la instanceof
THREE.HemisphereLight&&(Ia+=1,la.visible&&(za.setFromMatrixPosition(la.matrixWorld),za.normalize(),Ta=3*Ka,Fb[Ta]=za.x,Fb[Ta+1]=za.y,Fb[Ta+2]=za.z,eb=la.color,jb=la.groundColor,H.gammaInput?(kb=Ha*Ha,y(ub,Ta,eb,kb),y(vb,Ta,jb,kb)):(C(ub,Ta,eb,Ha),C(vb,Ta,jb,Ha)),Ka+=1)));oa=3*Sa;for(ia=Math.max(Eb.length,3*ma);oa<ia;oa++)Eb[oa]=0;oa=3*Da;for(ia=Math.max(Cb.length,3*ua);oa<ia;oa++)Cb[oa]=0;oa=3*Qa;for(ia=Math.max(Ya.length,3*D);oa<ia;oa++)Ya[oa]=0;oa=3*Ka;for(ia=Math.max(ub.length,3*Ia);oa<ia;oa++)ub[oa]=
0;oa=3*Ka;for(ia=Math.max(vb.length,3*Ia);oa<ia;oa++)vb[oa]=0;wa.directional.length=Sa;wa.point.length=Da;wa.spot.length=Qa;wa.hemi.length=Ka;wa.ambient[0]=Aa;wa.ambient[1]=Ga;wa.ambient[2]=Ma;gc=!1}if(Z){var ra=Ac;J.ambientLightColor.value=ra.ambient;J.directionalLightColor.value=ra.directional.colors;J.directionalLightDirection.value=ra.directional.positions;J.pointLightColor.value=ra.point.colors;J.pointLightPosition.value=ra.point.positions;J.pointLightDistance.value=ra.point.distances;J.spotLightColor.value=
ra.spot.colors;J.spotLightPosition.value=ra.spot.positions;J.spotLightDistance.value=ra.spot.distances;J.spotLightDirection.value=ra.spot.directions;J.spotLightAngleCos.value=ra.spot.anglesCos;J.spotLightExponent.value=ra.spot.exponents;J.hemisphereLightSkyColor.value=ra.hemi.skyColors;J.hemisphereLightGroundColor.value=ra.hemi.groundColors;J.hemisphereLightDirection.value=ra.hemi.positions;G(J,!0)}else G(J,!1)}if(d instanceof THREE.MeshBasicMaterial||d instanceof THREE.MeshLambertMaterial||d instanceof
THREE.MeshPhongMaterial){J.opacity.value=d.opacity;H.gammaInput?J.diffuse.value.copyGammaToLinear(d.color):J.diffuse.value=d.color;J.map.value=d.map;J.lightMap.value=d.lightMap;J.specularMap.value=d.specularMap;J.alphaMap.value=d.alphaMap;d.bumpMap&&(J.bumpMap.value=d.bumpMap,J.bumpScale.value=d.bumpScale);d.normalMap&&(J.normalMap.value=d.normalMap,J.normalScale.value.copy(d.normalScale));var La;d.map?La=d.map:d.specularMap?La=d.specularMap:d.normalMap?La=d.normalMap:d.bumpMap?La=d.bumpMap:d.alphaMap&&
(La=d.alphaMap);if(void 0!==La){var Ua=La.offset,Va=La.repeat;J.offsetRepeat.value.set(Ua.x,Ua.y,Va.x,Va.y)}J.envMap.value=d.envMap;J.flipEnvMap.value=d.envMap instanceof THREE.WebGLRenderTargetCube?1:-1;J.reflectivity.value=d.reflectivity;J.refractionRatio.value=d.refractionRatio;J.combine.value=d.combine;J.useRefract.value=d.envMap&&d.envMap.mapping instanceof THREE.CubeRefractionMapping}d instanceof THREE.LineBasicMaterial?(J.diffuse.value=d.color,J.opacity.value=d.opacity):d instanceof THREE.LineDashedMaterial?
(J.diffuse.value=d.color,J.opacity.value=d.opacity,J.dashSize.value=d.dashSize,J.totalSize.value=d.dashSize+d.gapSize,J.scale.value=d.scale):d instanceof THREE.PointCloudMaterial?(J.psColor.value=d.color,J.opacity.value=d.opacity,J.size.value=d.size,J.scale.value=R.height/2,J.map.value=d.map):d instanceof THREE.MeshPhongMaterial?(J.shininess.value=d.shininess,H.gammaInput?(J.ambient.value.copyGammaToLinear(d.ambient),J.emissive.value.copyGammaToLinear(d.emissive),J.specular.value.copyGammaToLinear(d.specular)):
(J.ambient.value=d.ambient,J.emissive.value=d.emissive,J.specular.value=d.specular),d.wrapAround&&J.wrapRGB.value.copy(d.wrapRGB)):d instanceof THREE.MeshLambertMaterial?(H.gammaInput?(J.ambient.value.copyGammaToLinear(d.ambient),J.emissive.value.copyGammaToLinear(d.emissive)):(J.ambient.value=d.ambient,J.emissive.value=d.emissive),d.wrapAround&&J.wrapRGB.value.copy(d.wrapRGB)):d instanceof THREE.MeshDepthMaterial?(J.mNear.value=a.near,J.mFar.value=a.far,J.opacity.value=d.opacity):d instanceof THREE.MeshNormalMaterial&&
(J.opacity.value=d.opacity);if(e.receiveShadow&&!d._shadowPass&&J.shadowMatrix)for(var Gb=0,tb=0,Pb=b.length;tb<Pb;tb++){var z=b[tb];z.castShadow&&(z instanceof THREE.SpotLight||z instanceof THREE.DirectionalLight&&!z.shadowCascade)&&(J.shadowMap.value[Gb]=z.shadowMap,J.shadowMapSize.value[Gb]=z.shadowMapSize,J.shadowMatrix.value[Gb]=z.shadowMatrix,J.shadowDarkness.value[Gb]=z.shadowDarkness,J.shadowBias.value[Gb]=z.shadowBias,Gb++)}for(var Tb=d.uniformsList,Ia,xa,bb,rb=0,Rb=Tb.length;rb<Rb;rb++){var ea=
(J.opacity.value=d.opacity);if(e.receiveShadow&&!d._shadowPass&&J.shadowMatrix)for(var Gb=0,tb=0,Pb=b.length;tb<Pb;tb++){var z=b[tb];z.castShadow&&(z instanceof THREE.SpotLight||z instanceof THREE.DirectionalLight&&!z.shadowCascade)&&(J.shadowMap.value[Gb]=z.shadowMap,J.shadowMapSize.value[Gb]=z.shadowMapSize,J.shadowMatrix.value[Gb]=z.shadowMatrix,J.shadowDarkness.value[Gb]=z.shadowDarkness,J.shadowBias.value[Gb]=z.shadowBias,Gb++)}for(var Tb=d.uniformsList,Ja,xa,bb,rb=0,Rb=Tb.length;rb<Rb;rb++){var ea=
Tb[rb][0];if(!1!==ea.needsUpdate){var Db=ea.type,S=ea.value,fa=Tb[rb][1];switch(Db){case "1i":m.uniform1i(fa,S);break;case "1f":m.uniform1f(fa,S);break;case "2f":m.uniform2f(fa,S[0],S[1]);break;case "3f":m.uniform3f(fa,S[0],S[1],S[2]);break;case "4f":m.uniform4f(fa,S[0],S[1],S[2],S[3]);break;case "1iv":m.uniform1iv(fa,S);break;case "3iv":m.uniform3iv(fa,S);break;case "1fv":m.uniform1fv(fa,S);break;case "2fv":m.uniform2fv(fa,S);break;case "3fv":m.uniform3fv(fa,S);break;case "4fv":m.uniform4fv(fa,S);
break;case "Matrix3fv":m.uniformMatrix3fv(fa,!1,S);break;case "Matrix4fv":m.uniformMatrix4fv(fa,!1,S);break;case "i":m.uniform1i(fa,S);break;case "f":m.uniform1f(fa,S);break;case "v2":m.uniform2f(fa,S.x,S.y);break;case "v3":m.uniform3f(fa,S.x,S.y,S.z);break;case "v4":m.uniform4f(fa,S.x,S.y,S.z,S.w);break;case "c":m.uniform3f(fa,S.r,S.g,S.b);break;case "iv1":m.uniform1iv(fa,S);break;case "iv":m.uniform3iv(fa,S);break;case "fv1":m.uniform1fv(fa,S);break;case "fv":m.uniform3fv(fa,S);break;case "v2v":void 0===
ea._array&&(ea._array=new Float32Array(2*S.length));for(var N=0,ya=S.length;N<ya;N++)bb=2*N,ea._array[bb]=S[N].x,ea._array[bb+1]=S[N].y;m.uniform2fv(fa,ea._array);break;case "v3v":void 0===ea._array&&(ea._array=new Float32Array(3*S.length));N=0;for(ya=S.length;N<ya;N++)bb=3*N,ea._array[bb]=S[N].x,ea._array[bb+1]=S[N].y,ea._array[bb+2]=S[N].z;m.uniform3fv(fa,ea._array);break;case "v4v":void 0===ea._array&&(ea._array=new Float32Array(4*S.length));N=0;for(ya=S.length;N<ya;N++)bb=4*N,ea._array[bb]=S[N].x,
ea._array[bb+1]=S[N].y,ea._array[bb+2]=S[N].z,ea._array[bb+3]=S[N].w;m.uniform4fv(fa,ea._array);break;case "m3":m.uniformMatrix3fv(fa,!1,S.elements);break;case "m3v":void 0===ea._array&&(ea._array=new Float32Array(9*S.length));N=0;for(ya=S.length;N<ya;N++)S[N].flattenToArrayOffset(ea._array,9*N);m.uniformMatrix3fv(fa,!1,ea._array);break;case "m4":m.uniformMatrix4fv(fa,!1,S.elements);break;case "m4v":void 0===ea._array&&(ea._array=new Float32Array(16*S.length));N=0;for(ya=S.length;N<ya;N++)S[N].flattenToArrayOffset(ea._array,
16*N);m.uniformMatrix4fv(fa,!1,ea._array);break;case "t":Ia=S;xa=E();m.uniform1i(fa,xa);if(!Ia)continue;if(Ia instanceof THREE.CubeTexture||Ia.image instanceof Array&&6===Ia.image.length){var va=Ia,Ob=xa;if(6===va.image.length)if(va.needsUpdate){va.image.__webglTextureCube||(va.addEventListener("dispose",jc),va.image.__webglTextureCube=m.createTexture(),H.info.memory.textures++);m.activeTexture(m.TEXTURE0+Ob);m.bindTexture(m.TEXTURE_CUBE_MAP,va.image.__webglTextureCube);m.pixelStorei(m.UNPACK_FLIP_Y_WEBGL,
16*N);m.uniformMatrix4fv(fa,!1,ea._array);break;case "t":Ja=S;xa=E();m.uniform1i(fa,xa);if(!Ja)continue;if(Ja instanceof THREE.CubeTexture||Ja.image instanceof Array&&6===Ja.image.length){var va=Ja,Ob=xa;if(6===va.image.length)if(va.needsUpdate){va.image.__webglTextureCube||(va.addEventListener("dispose",jc),va.image.__webglTextureCube=m.createTexture(),H.info.memory.textures++);m.activeTexture(m.TEXTURE0+Ob);m.bindTexture(m.TEXTURE_CUBE_MAP,va.image.__webglTextureCube);m.pixelStorei(m.UNPACK_FLIP_Y_WEBGL,
va.flipY);for(var Qb=va instanceof THREE.CompressedTexture,Ub=va.image[0]instanceof THREE.DataTexture,mb=[],Ea=0;6>Ea;Ea++)mb[Ea]=!H.autoScaleCubemaps||Qb||Ub?Ub?va.image[Ea].image:va.image[Ea]:M(va.image[Ea],Uc);var na=mb[0],ac=THREE.Math.isPowerOfTwo(na.width)&&THREE.Math.isPowerOfTwo(na.height),cb=I(va.format),Hb=I(va.type);K(m.TEXTURE_CUBE_MAP,va,ac);for(Ea=0;6>Ea;Ea++)if(Qb)for(var ib,bc=mb[Ea].mipmaps,ha=0,Zb=bc.length;ha<Zb;ha++)ib=bc[ha],va.format!==THREE.RGBAFormat&&va.format!==THREE.RGBFormat?
-1<Kc().indexOf(cb)?m.compressedTexImage2D(m.TEXTURE_CUBE_MAP_POSITIVE_X+Ea,ha,cb,ib.width,ib.height,0,ib.data):console.warn("Attempt to load unsupported compressed texture format"):m.texImage2D(m.TEXTURE_CUBE_MAP_POSITIVE_X+Ea,ha,cb,ib.width,ib.height,0,cb,Hb,ib.data);else Ub?m.texImage2D(m.TEXTURE_CUBE_MAP_POSITIVE_X+Ea,0,cb,mb[Ea].width,mb[Ea].height,0,cb,Hb,mb[Ea].data):m.texImage2D(m.TEXTURE_CUBE_MAP_POSITIVE_X+Ea,0,cb,cb,Hb,mb[Ea]);va.generateMipmaps&&ac&&m.generateMipmap(m.TEXTURE_CUBE_MAP);
va.needsUpdate=!1;if(va.onUpdate)va.onUpdate()}else m.activeTexture(m.TEXTURE0+Ob),m.bindTexture(m.TEXTURE_CUBE_MAP,va.image.__webglTextureCube)}else if(Ia instanceof THREE.WebGLRenderTargetCube){var $b=Ia;m.activeTexture(m.TEXTURE0+xa);m.bindTexture(m.TEXTURE_CUBE_MAP,$b.__webglTexture)}else H.setTexture(Ia,xa);break;case "tv":void 0===ea._array&&(ea._array=[]);N=0;for(ya=ea.value.length;N<ya;N++)ea._array[N]=E();m.uniform1iv(fa,ea._array);N=0;for(ya=ea.value.length;N<ya;N++)Ia=ea.value[N],xa=ea._array[N],
Ia&&H.setTexture(Ia,xa);break;default:console.warn("THREE.WebGLRenderer: Unknown uniform type: "+Db)}}}}m.uniformMatrix4fv(qa.modelViewMatrix,!1,e._modelViewMatrix.elements);qa.normalMatrix&&m.uniformMatrix3fv(qa.normalMatrix,!1,e._normalMatrix.elements);null!==qa.modelMatrix&&m.uniformMatrix4fv(qa.modelMatrix,!1,e.matrixWorld.elements);return pb}function G(a,b){a.ambientLightColor.needsUpdate=b;a.directionalLightColor.needsUpdate=b;a.directionalLightDirection.needsUpdate=b;a.pointLightColor.needsUpdate=
va.needsUpdate=!1;if(va.onUpdate)va.onUpdate()}else m.activeTexture(m.TEXTURE0+Ob),m.bindTexture(m.TEXTURE_CUBE_MAP,va.image.__webglTextureCube)}else if(Ja instanceof THREE.WebGLRenderTargetCube){var $b=Ja;m.activeTexture(m.TEXTURE0+xa);m.bindTexture(m.TEXTURE_CUBE_MAP,$b.__webglTexture)}else H.setTexture(Ja,xa);break;case "tv":void 0===ea._array&&(ea._array=[]);N=0;for(ya=ea.value.length;N<ya;N++)ea._array[N]=E();m.uniform1iv(fa,ea._array);N=0;for(ya=ea.value.length;N<ya;N++)Ja=ea.value[N],xa=ea._array[N],
Ja&&H.setTexture(Ja,xa);break;default:console.warn("THREE.WebGLRenderer: Unknown uniform type: "+Db)}}}}m.uniformMatrix4fv(qa.modelViewMatrix,!1,e._modelViewMatrix.elements);qa.normalMatrix&&m.uniformMatrix3fv(qa.normalMatrix,!1,e._normalMatrix.elements);null!==qa.modelMatrix&&m.uniformMatrix4fv(qa.modelMatrix,!1,e.matrixWorld.elements);return pb}function G(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.spotLightColor.needsUpdate=b;a.spotLightPosition.needsUpdate=b;a.spotLightDistance.needsUpdate=b;a.spotLightDirection.needsUpdate=b;a.spotLightAngleCos.needsUpdate=b;a.spotLightExponent.needsUpdate=b;a.hemisphereLightSkyColor.needsUpdate=b;a.hemisphereLightGroundColor.needsUpdate=b;a.hemisphereLightDirection.needsUpdate=b}function E(){var a=Lb;a>=Lc&&console.warn("WebGLRenderer: trying to use "+a+" texture units while this GPU supports only "+
Lc);Lb+=1;return a}function B(a,b){a._modelViewMatrix.multiplyMatrices(b.matrixWorldInverse,a.matrixWorld);a._normalMatrix.getNormalMatrix(a._modelViewMatrix)}function y(a,b,c,d){a[b]=c.r*c.r*d;a[b+1]=c.g*c.g*d;a[b+2]=c.b*c.b*d}function C(a,b,c,d){a[b]=c.r*d;a[b+1]=c.g*d;a[b+2]=c.b*d}function Q(a){a!==Mc&&(m.lineWidth(a),Mc=a)}function F(a,b,c){Nc!==a&&(a?m.enable(m.POLYGON_OFFSET_FILL):m.disable(m.POLYGON_OFFSET_FILL),Nc=a);!a||Oc===b&&Pc===c||(m.polygonOffset(b,c),Oc=b,Pc=c)}function K(a,b,c){c?
(m.texParameteri(a,m.TEXTURE_WRAP_S,I(b.wrapS)),m.texParameteri(a,m.TEXTURE_WRAP_T,I(b.wrapT)),m.texParameteri(a,m.TEXTURE_MAG_FILTER,I(b.magFilter)),m.texParameteri(a,m.TEXTURE_MIN_FILTER,I(b.minFilter))):(m.texParameteri(a,m.TEXTURE_WRAP_S,m.CLAMP_TO_EDGE),m.texParameteri(a,m.TEXTURE_WRAP_T,m.CLAMP_TO_EDGE),m.texParameteri(a,m.TEXTURE_MAG_FILTER,P(b.magFilter)),m.texParameteri(a,m.TEXTURE_MIN_FILTER,P(b.minFilter)));(c=ta.get("EXT_texture_filter_anisotropic"))&&b.type!==THREE.FloatType&&(1<b.anisotropy||
......@@ -516,7 +516,7 @@ if(a===THREE.RGBA_S3TC_DXT1_Format)return b.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(a==
if(a===THREE.RGBA_PVRTC_2BPPV1_Format)return b.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}b=ta.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 R=void 0!==a.canvas?a.canvas:document.createElement("canvas"),ka=void 0!==a.context?a.context:null,X=void 0!==a.precision?a.precision:"highp",ba=void 0!==a.alpha?a.alpha:!1,ga=void 0!==a.depth?a.depth:!0,Aa=void 0!==a.stencil?
a.stencil:!0,O=void 0!==a.antialias?a.antialias:!1,Ma=void 0!==a.premultipliedAlpha?a.premultipliedAlpha:!0,ia=void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:!1,Pa=void 0!==a.logarithmicDepthBuffer?a.logarithmicDepthBuffer:!1,sa=new THREE.Color(0),db=0,Za=[],$a={},lb=[],Kb=[],pb=[];this.domElement=R;this.context=null;this.devicePixelRatio=void 0!==a.devicePixelRatio?a.devicePixelRatio:void 0!==self.devicePixelRatio?self.devicePixelRatio:1;this.sortObjects=this.autoClearStencil=this.autoClearDepth=
this.autoClearColor=this.autoClear=!0;this.shadowMapEnabled=this.gammaOutput=this.gammaInput=!1;this.shadowMapAutoUpdate=!0;this.shadowMapType=THREE.PCFShadowMap;this.shadowMapCullFace=THREE.CullFaceFront;this.shadowMapCascade=this.shadowMapDebug=!1;this.maxMorphTargets=8;this.maxMorphNormals=4;this.autoScaleCubemaps=!0;this.renderPluginsPre=[];this.renderPluginsPost=[];this.info={memory:{programs:0,geometries:0,textures:0},render:{calls:0,vertices:0,faces:0,points:0}};var H=this,qb=[],Ab=null,Cb=
null,Bb=-1,Ja=-1,Yb=null,Lb=0,Mb=-1,Nb=-1,Ob=-1,tb=-1,Pb=-1,rb=-1,Qb=-1,Zb=-1,Nc=null,Oc=null,Pc=null,Mc=null,jb=0,kb=0,Rb=R.width,$b=R.height,pc=0,qc=0,Db=new Uint8Array(16),eb=new Uint8Array(16),Bc=new THREE.Frustum,xc=new THREE.Matrix4,Dc=new THREE.Matrix4,Oa=new THREE.Vector3,za=new THREE.Vector3,gc=!0,Ac={ambient:[0,0,0],directional:{length:0,colors:[],positions:[]},point:{length:0,colors:[],positions:[],distances:[]},spot:{length:0,colors:[],positions:[],distances:[],directions:[],anglesCos:[],
null,Bb=-1,Ga=-1,Yb=null,Lb=0,Mb=-1,Nb=-1,Ob=-1,tb=-1,Pb=-1,rb=-1,Qb=-1,Zb=-1,Nc=null,Oc=null,Pc=null,Mc=null,jb=0,kb=0,Rb=R.width,$b=R.height,pc=0,qc=0,Db=new Uint8Array(16),eb=new Uint8Array(16),Bc=new THREE.Frustum,xc=new THREE.Matrix4,Dc=new THREE.Matrix4,Oa=new THREE.Vector3,za=new THREE.Vector3,gc=!0,Ac={ambient:[0,0,0],directional:{length:0,colors:[],positions:[]},point:{length:0,colors:[],positions:[],distances:[]},spot:{length:0,colors:[],positions:[],distances:[],directions:[],anglesCos:[],
exponents:[]},hemi:{length:0,skyColors:[],groundColors:[],positions:[]}},m;try{var Qc={alpha:ba,depth:ga,stencil:Aa,antialias:O,premultipliedAlpha:Ma,preserveDrawingBuffer:ia};m=ka||R.getContext("webgl",Qc)||R.getContext("experimental-webgl",Qc);if(null===m)throw"Error creating WebGL context.";}catch(Vc){console.error(Vc)}void 0===m.getShaderPrecisionFormat&&(m.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}});var ta=new THREE.WebGLExtensions(m);ta.get("OES_texture_float");
ta.get("OES_texture_float_linear");ta.get("OES_standard_derivatives");Pa&&ta.get("EXT_frag_depth");m.clearColor(0,0,0,1);m.clearDepth(1);m.clearStencil(0);m.enable(m.DEPTH_TEST);m.depthFunc(m.LEQUAL);m.frontFace(m.CCW);m.cullFace(m.BACK);m.enable(m.CULL_FACE);m.enable(m.BLEND);m.blendEquation(m.FUNC_ADD);m.blendFunc(m.SRC_ALPHA,m.ONE_MINUS_SRC_ALPHA);m.viewport(jb,kb,Rb,$b);m.clearColor(sa.r,sa.g,sa.b,db);this.context=m;var Lc=m.getParameter(m.MAX_TEXTURE_IMAGE_UNITS),Wc=m.getParameter(m.MAX_VERTEX_TEXTURE_IMAGE_UNITS),
Xc=m.getParameter(m.MAX_TEXTURE_SIZE),Uc=m.getParameter(m.MAX_CUBE_MAP_TEXTURE_SIZE),fc=0<Wc,tc=fc&&ta.get("OES_texture_float"),Yc=m.getShaderPrecisionFormat(m.VERTEX_SHADER,m.HIGH_FLOAT),Zc=m.getShaderPrecisionFormat(m.VERTEX_SHADER,m.MEDIUM_FLOAT);m.getShaderPrecisionFormat(m.VERTEX_SHADER,m.LOW_FLOAT);var $c=m.getShaderPrecisionFormat(m.FRAGMENT_SHADER,m.HIGH_FLOAT),ad=m.getShaderPrecisionFormat(m.FRAGMENT_SHADER,m.MEDIUM_FLOAT);m.getShaderPrecisionFormat(m.FRAGMENT_SHADER,m.LOW_FLOAT);var Kc=
......@@ -525,20 +525,20 @@ function(){var a;return function(){if(void 0!==a)return a;a=[];if(ta.get("WEBGL_
this.supportsBlendMinMax=function(){return ta.get("EXT_blend_minmax")};this.getMaxAnisotropy=function(){var a;return function(){if(void 0!==a)return a;var b=ta.get("EXT_texture_filter_anisotropic");return a=null!==b?m.getParameter(b.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0}}();this.getPrecision=function(){return X};this.setSize=function(a,b,c){R.width=a*this.devicePixelRatio;R.height=b*this.devicePixelRatio;!1!==c&&(R.style.width=a+"px",R.style.height=b+"px");this.setViewport(0,0,a,b)};this.setViewport=
function(a,b,c,d){jb=a*this.devicePixelRatio;kb=b*this.devicePixelRatio;Rb=c*this.devicePixelRatio;$b=d*this.devicePixelRatio;m.viewport(jb,kb,Rb,$b)};this.setScissor=function(a,b,c,d){m.scissor(a*this.devicePixelRatio,b*this.devicePixelRatio,c*this.devicePixelRatio,d*this.devicePixelRatio)};this.enableScissorTest=function(a){a?m.enable(m.SCISSOR_TEST):m.disable(m.SCISSOR_TEST)};this.setClearColor=function(a,b){sa.set(a);db=void 0!==b?b:1;m.clearColor(sa.r,sa.g,sa.b,db)};this.setClearColorHex=function(a,
b){console.warn("THREE.WebGLRenderer: .setClearColorHex() is being removed. Use .setClearColor() instead.");this.setClearColor(a,b)};this.getClearColor=function(){return sa};this.getClearAlpha=function(){return db};this.clear=function(a,b,c){var d=0;if(void 0===a||a)d|=m.COLOR_BUFFER_BIT;if(void 0===b||b)d|=m.DEPTH_BUFFER_BIT;if(void 0===c||c)d|=m.STENCIL_BUFFER_BIT;m.clear(d)};this.clearColor=function(){m.clear(m.COLOR_BUFFER_BIT)};this.clearDepth=function(){m.clear(m.DEPTH_BUFFER_BIT)};this.clearStencil=
function(){m.clear(m.STENCIL_BUFFER_BIT)};this.clearTarget=function(a,b,c,d){this.setRenderTarget(a);this.clear(b,c,d)};this.addPostPlugin=function(a){a.init(this,Za,$a,lb);this.renderPluginsPost.push(a)};this.addPrePlugin=function(a){a.init(this,Za,$a,lb);this.renderPluginsPre.push(a)};this.resetGLState=function(){Yb=Ab=null;Bb=Ja=Nb=Mb=Zb=Qb=Ob=-1;gc=!0};this.updateShadowMap=function(a,b){Ab=null;Bb=Ja=Zb=Qb=Ob=-1;gc=!0;Nb=Mb=-1;this.shadowMapPlugin.update(a,b)};var Fc=function(a){a.target.traverse(function(a){a.removeEventListener("remove",
function(){m.clear(m.STENCIL_BUFFER_BIT)};this.clearTarget=function(a,b,c,d){this.setRenderTarget(a);this.clear(b,c,d)};this.addPostPlugin=function(a){a.init(this,Za,$a,lb);this.renderPluginsPost.push(a)};this.addPrePlugin=function(a){a.init(this,Za,$a,lb);this.renderPluginsPre.push(a)};this.resetGLState=function(){Yb=Ab=null;Bb=Ga=Nb=Mb=Zb=Qb=Ob=-1;gc=!0};this.updateShadowMap=function(a,b){Ab=null;Bb=Ga=Zb=Qb=Ob=-1;gc=!0;Nb=Mb=-1;this.shadowMapPlugin.update(a,b)};var Fc=function(a){a.target.traverse(function(a){a.removeEventListener("remove",
Fc);if(a instanceof THREE.Mesh||a instanceof THREE.PointCloud||a instanceof THREE.Line)delete $a[a.id];else if(a instanceof THREE.ImmediateRenderObject||a.immediateRenderCallback)for(var b=lb,c=b.length-1;0<=c;c--)b[c].object===a&&b.splice(c,1);delete a.__webglInit;delete a._modelViewMatrix;delete a._normalMatrix;delete a.__webglActive})},Gc=function(a){a=a.target;a.removeEventListener("dispose",Gc);delete a.__webglInit;if(a instanceof THREE.BufferGeometry){for(var b in a.attributes){var c=a.attributes[b];
void 0!==c.buffer&&(m.deleteBuffer(c.buffer),delete c.buffer)}H.info.memory.geometries--}else if(b=sb[a.id],void 0!==b){for(var c=0,d=b.length;c<d;c++){var e=b[c];if(void 0!==e.numMorphTargets){for(var f=0,g=e.numMorphTargets;f<g;f++)m.deleteBuffer(e.__webglMorphTargetsBuffers[f]);delete e.__webglMorphTargetsBuffers}if(void 0!==e.numMorphNormals){f=0;for(g=e.numMorphNormals;f<g;f++)m.deleteBuffer(e.__webglMorphNormalsBuffers[f]);delete e.__webglMorphNormalsBuffers}Sc(e)}delete sb[a.id]}else Sc(a);
Ja=-1},jc=function(a){a=a.target;a.removeEventListener("dispose",jc);a.image&&a.image.__webglTextureCube?(m.deleteTexture(a.image.__webglTextureCube),delete a.image.__webglTextureCube):void 0!==a.__webglInit&&(m.deleteTexture(a.__webglTexture),delete a.__webglTexture,delete a.__webglInit);H.info.memory.textures--},Tc=function(a){a=a.target;a.removeEventListener("dispose",Tc);if(a&&void 0!==a.__webglTexture){m.deleteTexture(a.__webglTexture);delete a.__webglTexture;if(a instanceof THREE.WebGLRenderTargetCube)for(var b=
Ga=-1},jc=function(a){a=a.target;a.removeEventListener("dispose",jc);a.image&&a.image.__webglTextureCube?(m.deleteTexture(a.image.__webglTextureCube),delete a.image.__webglTextureCube):void 0!==a.__webglInit&&(m.deleteTexture(a.__webglTexture),delete a.__webglTexture,delete a.__webglInit);H.info.memory.textures--},Tc=function(a){a=a.target;a.removeEventListener("dispose",Tc);if(a&&void 0!==a.__webglTexture){m.deleteTexture(a.__webglTexture);delete a.__webglTexture;if(a instanceof THREE.WebGLRenderTargetCube)for(var b=
0;6>b;b++)m.deleteFramebuffer(a.__webglFramebuffer[b]),m.deleteRenderbuffer(a.__webglRenderbuffer[b]);else m.deleteFramebuffer(a.__webglFramebuffer),m.deleteRenderbuffer(a.__webglRenderbuffer);delete a.__webglFramebuffer;delete a.__webglRenderbuffer}H.info.memory.textures--},zc=function(a){a=a.target;a.removeEventListener("dispose",zc);sc(a)},Sc=function(a){for(var b="__webglVertexBuffer __webglNormalBuffer __webglTangentBuffer __webglColorBuffer __webglUVBuffer __webglUV2Buffer __webglSkinIndicesBuffer __webglSkinWeightsBuffer __webglFaceBuffer __webglLineBuffer __webglLineDistanceBuffer".split(" "),
c=0,d=b.length;c<d;c++){var e=b[c];void 0!==a[e]&&(m.deleteBuffer(a[e]),delete a[e])}if(void 0!==a.__webglCustomAttributesList){for(e in a.__webglCustomAttributesList)m.deleteBuffer(a.__webglCustomAttributesList[e].buffer);delete a.__webglCustomAttributesList}H.info.memory.geometries--},sc=function(a){var b=a.program.program;if(void 0!==b){a.program=void 0;var c,d,e=!1;a=0;for(c=qb.length;a<c;a++)if(d=qb[a],d.program===b){d.usedTimes--;0===d.usedTimes&&(e=!0);break}if(!0===e){e=[];a=0;for(c=qb.length;a<
c;a++)d=qb[a],d.program!==b&&e.push(d);qb=e;m.deleteProgram(b);H.info.memory.programs--}}};this.renderBufferImmediate=function(a,b,c){g();a.hasPositions&&!a.__webglVertexBuffer&&(a.__webglVertexBuffer=m.createBuffer());a.hasNormals&&!a.__webglNormalBuffer&&(a.__webglNormalBuffer=m.createBuffer());a.hasUvs&&!a.__webglUvBuffer&&(a.__webglUvBuffer=m.createBuffer());a.hasColors&&!a.__webglColorBuffer&&(a.__webglColorBuffer=m.createBuffer());a.hasPositions&&(m.bindBuffer(m.ARRAY_BUFFER,a.__webglVertexBuffer),
m.bufferData(m.ARRAY_BUFFER,a.positionArray,m.DYNAMIC_DRAW),f(b.attributes.position),m.vertexAttribPointer(b.attributes.position,3,m.FLOAT,!1,0,0));if(a.hasNormals){m.bindBuffer(m.ARRAY_BUFFER,a.__webglNormalBuffer);if(c.shading===THREE.FlatShading){var d,e,k,l,n,p,q,r,t,s,u,w=3*a.count;for(u=0;u<w;u+=9)s=a.normalArray,d=s[u],e=s[u+1],k=s[u+2],l=s[u+3],p=s[u+4],r=s[u+5],n=s[u+6],q=s[u+7],t=s[u+8],d=(d+l+n)/3,e=(e+p+q)/3,k=(k+r+t)/3,s[u]=d,s[u+1]=e,s[u+2]=k,s[u+3]=d,s[u+4]=e,s[u+5]=k,s[u+6]=d,s[u+
7]=e,s[u+8]=k}m.bufferData(m.ARRAY_BUFFER,a.normalArray,m.DYNAMIC_DRAW);f(b.attributes.normal);m.vertexAttribPointer(b.attributes.normal,3,m.FLOAT,!1,0,0)}a.hasUvs&&c.map&&(m.bindBuffer(m.ARRAY_BUFFER,a.__webglUvBuffer),m.bufferData(m.ARRAY_BUFFER,a.uvArray,m.DYNAMIC_DRAW),f(b.attributes.uv),m.vertexAttribPointer(b.attributes.uv,2,m.FLOAT,!1,0,0));a.hasColors&&c.vertexColors!==THREE.NoColors&&(m.bindBuffer(m.ARRAY_BUFFER,a.__webglColorBuffer),m.bufferData(m.ARRAY_BUFFER,a.colorArray,m.DYNAMIC_DRAW),
f(b.attributes.color),m.vertexAttribPointer(b.attributes.color,3,m.FLOAT,!1,0,0));h();m.drawArrays(m.TRIANGLES,0,a.count);a.count=0};this.renderBufferDirect=function(a,b,c,d,f,h){if(!1!==d.visible)if(a=x(a,b,c,d,h),b=!1,c=16777215*f.id+2*a.id+(d.wireframe?1:0),c!==Ja&&(Ja=c,b=!0),b&&g(),h instanceof THREE.Mesh)if(h=!0===d.wireframe?m.LINES:m.TRIANGLES,c=f.attributes.index){var k,l;c.array instanceof Uint32Array&&ta.get("OES_element_index_uint")?(k=m.UNSIGNED_INT,l=4):(k=m.UNSIGNED_SHORT,l=2);var n=
f(b.attributes.color),m.vertexAttribPointer(b.attributes.color,3,m.FLOAT,!1,0,0));h();m.drawArrays(m.TRIANGLES,0,a.count);a.count=0};this.renderBufferDirect=function(a,b,c,d,f,h){if(!1!==d.visible)if(a=x(a,b,c,d,h),b=!1,c=16777215*f.id+2*a.id+(d.wireframe?1:0),c!==Ga&&(Ga=c,b=!0),b&&g(),h instanceof THREE.Mesh)if(h=!0===d.wireframe?m.LINES:m.TRIANGLES,c=f.attributes.index){var k,l;c.array instanceof Uint32Array&&ta.get("OES_element_index_uint")?(k=m.UNSIGNED_INT,l=4):(k=m.UNSIGNED_SHORT,l=2);var n=
f.offsets;if(0===n.length)b&&(e(d,a,f,0),m.bindBuffer(m.ELEMENT_ARRAY_BUFFER,c.buffer)),m.drawElements(h,c.array.length,k,0),H.info.render.calls++,H.info.render.vertices+=c.array.length,H.info.render.faces+=c.array.length/3;else{b=!0;for(var p=0,q=n.length;p<q;p++){var r=n[p].index;b&&(e(d,a,f,r),m.bindBuffer(m.ELEMENT_ARRAY_BUFFER,c.buffer));m.drawElements(h,n[p].count,k,n[p].start*l);H.info.render.calls++;H.info.render.vertices+=n[p].count;H.info.render.faces+=n[p].count/3}}}else b&&e(d,a,f,0),
d=f.attributes.position,m.drawArrays(h,0,d.array.length/3),H.info.render.calls++,H.info.render.vertices+=d.array.length/3,H.info.render.faces+=d.array.length/9;else if(h instanceof THREE.PointCloud)b&&e(d,a,f,0),d=f.attributes.position,m.drawArrays(m.POINTS,0,d.array.length/3),H.info.render.calls++,H.info.render.points+=d.array.length/3;else if(h instanceof THREE.Line)if(h=h.type===THREE.LineStrip?m.LINE_STRIP:m.LINES,Q(d.linewidth),c=f.attributes.index)if(c.array instanceof Uint32Array?(k=m.UNSIGNED_INT,
l=4):(k=m.UNSIGNED_SHORT,l=2),n=f.offsets,0===n.length)b&&(e(d,a,f,0),m.bindBuffer(m.ELEMENT_ARRAY_BUFFER,c.buffer)),m.drawElements(h,c.array.length,k,0),H.info.render.calls++,H.info.render.vertices+=c.array.length;else for(1<n.length&&(b=!0),p=0,q=n.length;p<q;p++)r=n[p].index,b&&(e(d,a,f,r),m.bindBuffer(m.ELEMENT_ARRAY_BUFFER,c.buffer)),m.drawElements(h,n[p].count,k,n[p].start*l),H.info.render.calls++,H.info.render.vertices+=n[p].count;else b&&e(d,a,f,0),d=f.attributes.position,m.drawArrays(h,0,
d.array.length/3),H.info.render.calls++,H.info.render.points+=d.array.length/3};this.renderBuffer=function(a,b,c,d,e,k){if(!1!==d.visible){c=x(a,b,c,d,k);b=c.attributes;a=!1;c=16777215*e.id+2*c.id+(d.wireframe?1:0);c!==Ja&&(Ja=c,a=!0);a&&g();if(!d.morphTargets&&0<=b.position)a&&(m.bindBuffer(m.ARRAY_BUFFER,e.__webglVertexBuffer),f(b.position),m.vertexAttribPointer(b.position,3,m.FLOAT,!1,0,0));else if(k.morphTargetBase){c=d.program.attributes;-1!==k.morphTargetBase&&0<=c.position?(m.bindBuffer(m.ARRAY_BUFFER,
d.array.length/3),H.info.render.calls++,H.info.render.points+=d.array.length/3};this.renderBuffer=function(a,b,c,d,e,k){if(!1!==d.visible){c=x(a,b,c,d,k);b=c.attributes;a=!1;c=16777215*e.id+2*c.id+(d.wireframe?1:0);c!==Ga&&(Ga=c,a=!0);a&&g();if(!d.morphTargets&&0<=b.position)a&&(m.bindBuffer(m.ARRAY_BUFFER,e.__webglVertexBuffer),f(b.position),m.vertexAttribPointer(b.position,3,m.FLOAT,!1,0,0));else if(k.morphTargetBase){c=d.program.attributes;-1!==k.morphTargetBase&&0<=c.position?(m.bindBuffer(m.ARRAY_BUFFER,
e.__webglMorphTargetsBuffers[k.morphTargetBase]),f(c.position),m.vertexAttribPointer(c.position,3,m.FLOAT,!1,0,0)):0<=c.position&&(m.bindBuffer(m.ARRAY_BUFFER,e.__webglVertexBuffer),f(c.position),m.vertexAttribPointer(c.position,3,m.FLOAT,!1,0,0));if(k.morphTargetForcedOrder.length)for(var l=0,n=k.morphTargetForcedOrder,q=k.morphTargetInfluences;l<d.numSupportedMorphTargets&&l<n.length;)0<=c["morphTarget"+l]&&(m.bindBuffer(m.ARRAY_BUFFER,e.__webglMorphTargetsBuffers[n[l]]),f(c["morphTarget"+l]),m.vertexAttribPointer(c["morphTarget"+
l],3,m.FLOAT,!1,0,0)),0<=c["morphNormal"+l]&&d.morphNormals&&(m.bindBuffer(m.ARRAY_BUFFER,e.__webglMorphNormalsBuffers[n[l]]),f(c["morphNormal"+l]),m.vertexAttribPointer(c["morphNormal"+l],3,m.FLOAT,!1,0,0)),k.__webglMorphTargetInfluences[l]=q[n[l]],l++;else{var n=[],q=k.morphTargetInfluences,r,t=q.length;for(r=0;r<t;r++)l=q[r],0<l&&n.push([l,r]);n.length>d.numSupportedMorphTargets?(n.sort(p),n.length=d.numSupportedMorphTargets):n.length>d.numSupportedMorphNormals?n.sort(p):0===n.length&&n.push([0,
0]);for(l=0;l<d.numSupportedMorphTargets;)n[l]?(r=n[l][1],0<=c["morphTarget"+l]&&(m.bindBuffer(m.ARRAY_BUFFER,e.__webglMorphTargetsBuffers[r]),f(c["morphTarget"+l]),m.vertexAttribPointer(c["morphTarget"+l],3,m.FLOAT,!1,0,0)),0<=c["morphNormal"+l]&&d.morphNormals&&(m.bindBuffer(m.ARRAY_BUFFER,e.__webglMorphNormalsBuffers[r]),f(c["morphNormal"+l]),m.vertexAttribPointer(c["morphNormal"+l],3,m.FLOAT,!1,0,0)),k.__webglMorphTargetInfluences[l]=q[r]):k.__webglMorphTargetInfluences[l]=0,l++}null!==d.program.uniforms.morphTargetInfluences&&
......@@ -547,10 +547,10 @@ f(b.color),m.vertexAttribPointer(b.color,3,m.FLOAT,!1,0,0)):void 0!==d.defaultAt
m.vertexAttribPointer(b.uv,2,m.FLOAT,!1,0,0)):void 0!==d.defaultAttributeValues&&m.vertexAttrib2fv(b.uv,d.defaultAttributeValues.uv));0<=b.uv2&&(k.geometry.faceVertexUvs[1]?(m.bindBuffer(m.ARRAY_BUFFER,e.__webglUV2Buffer),f(b.uv2),m.vertexAttribPointer(b.uv2,2,m.FLOAT,!1,0,0)):void 0!==d.defaultAttributeValues&&m.vertexAttrib2fv(b.uv2,d.defaultAttributeValues.uv2));d.skinning&&0<=b.skinIndex&&0<=b.skinWeight&&(m.bindBuffer(m.ARRAY_BUFFER,e.__webglSkinIndicesBuffer),f(b.skinIndex),m.vertexAttribPointer(b.skinIndex,
4,m.FLOAT,!1,0,0),m.bindBuffer(m.ARRAY_BUFFER,e.__webglSkinWeightsBuffer),f(b.skinWeight),m.vertexAttribPointer(b.skinWeight,4,m.FLOAT,!1,0,0));0<=b.lineDistance&&(m.bindBuffer(m.ARRAY_BUFFER,e.__webglLineDistanceBuffer),f(b.lineDistance),m.vertexAttribPointer(b.lineDistance,1,m.FLOAT,!1,0,0))}h();k instanceof THREE.Mesh?(k=e.__typeArray===Uint32Array?m.UNSIGNED_INT:m.UNSIGNED_SHORT,d.wireframe?(Q(d.wireframeLinewidth),a&&m.bindBuffer(m.ELEMENT_ARRAY_BUFFER,e.__webglLineBuffer),m.drawElements(m.LINES,
e.__webglLineCount,k,0)):(a&&m.bindBuffer(m.ELEMENT_ARRAY_BUFFER,e.__webglFaceBuffer),m.drawElements(m.TRIANGLES,e.__webglFaceCount,k,0)),H.info.render.calls++,H.info.render.vertices+=e.__webglFaceCount,H.info.render.faces+=e.__webglFaceCount/3):k instanceof THREE.Line?(k=k.type===THREE.LineStrip?m.LINE_STRIP:m.LINES,Q(d.linewidth),m.drawArrays(k,0,e.__webglLineCount),H.info.render.calls++):k instanceof THREE.PointCloud&&(m.drawArrays(m.POINTS,0,e.__webglParticleCount),H.info.render.calls++,H.info.render.points+=
e.__webglParticleCount)}};this.render=function(a,b,c,d){if(!1===b instanceof THREE.Camera)console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");else{var e=a.fog;Bb=-1;Yb=null;gc=!0;!0===a.autoUpdate&&a.updateMatrixWorld();void 0===b.parent&&b.updateMatrixWorld();a.traverse(function(a){a instanceof THREE.SkinnedMesh&&a.skeleton.update()});b.matrixWorldInverse.getInverse(b.matrixWorld);xc.multiplyMatrices(b.projectionMatrix,b.matrixWorldInverse);Bc.setFromMatrix(xc);
e.__webglParticleCount)}};this.render=function(a,b,c,d){if(!1===b instanceof THREE.Camera)console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");else{var e=a.fog;Bb=Ga=-1;Yb=null;gc=!0;!0===a.autoUpdate&&a.updateMatrixWorld();void 0===b.parent&&b.updateMatrixWorld();a.traverse(function(a){a instanceof THREE.SkinnedMesh&&a.skeleton.update()});b.matrixWorldInverse.getInverse(b.matrixWorld);xc.multiplyMatrices(b.projectionMatrix,b.matrixWorldInverse);Bc.setFromMatrix(xc);
Za.length=0;Kb.length=0;pb.length=0;l(a,a);!0===H.sortObjects&&(Kb.sort(k),pb.sort(n));r(this.renderPluginsPre,a,b);H.info.render.calls=0;H.info.render.vertices=0;H.info.render.faces=0;H.info.render.points=0;this.setRenderTarget(c);(this.autoClear||d)&&this.clear(this.autoClearColor,this.autoClearDepth,this.autoClearStencil);d=0;for(var f=lb.length;d<f;d++){var g=lb[d],h=g.object;h.visible&&(B(h,b),s(g))}a.overrideMaterial?(d=a.overrideMaterial,this.setBlending(d.blending,d.blendEquation,d.blendSrc,
d.blendDst),this.setDepthTest(d.depthTest),this.setDepthWrite(d.depthWrite),F(d.polygonOffset,d.polygonOffsetFactor,d.polygonOffsetUnits),q(Kb,b,Za,e,!0,d),q(pb,b,Za,e,!0,d),t(lb,"",b,Za,e,!1,d)):(d=null,this.setBlending(THREE.NoBlending),q(Kb,b,Za,e,!1,d),t(lb,"opaque",b,Za,e,!1,d),q(pb,b,Za,e,!0,d),t(lb,"transparent",b,Za,e,!0,d));r(this.renderPluginsPost,a,b);c&&c.generateMipmaps&&c.minFilter!==THREE.NearestFilter&&c.minFilter!==THREE.LinearFilter&&T(c);this.setDepthTest(!0);this.setDepthWrite(!0)}};
this.renderImmediateObject=function(a,b,c,d,e){var f=x(a,b,c,d,e);Ja=-1;H.setMaterialFaces(d);e.immediateRenderCallback?e.immediateRenderCallback(f,m,Bc):e.render(function(a){H.renderBufferImmediate(a,f,d)})};var sb={},rc=0;this.initMaterial=function(){console.warn("THREE.WebGLRenderer: .initMaterial() has been removed.")};this.setFaceCulling=function(a,b){a===THREE.CullFaceNone?m.disable(m.CULL_FACE):(b===THREE.FrontFaceDirectionCW?m.frontFace(m.CW):m.frontFace(m.CCW),a===THREE.CullFaceBack?m.cullFace(m.BACK):
this.renderImmediateObject=function(a,b,c,d,e){var f=x(a,b,c,d,e);Ga=-1;H.setMaterialFaces(d);e.immediateRenderCallback?e.immediateRenderCallback(f,m,Bc):e.render(function(a){H.renderBufferImmediate(a,f,d)})};var sb={},rc=0;this.initMaterial=function(){console.warn("THREE.WebGLRenderer: .initMaterial() has been removed.")};this.setFaceCulling=function(a,b){a===THREE.CullFaceNone?m.disable(m.CULL_FACE):(b===THREE.FrontFaceDirectionCW?m.frontFace(m.CW):m.frontFace(m.CCW),a===THREE.CullFaceBack?m.cullFace(m.BACK):
a===THREE.CullFaceFront?m.cullFace(m.FRONT):m.cullFace(m.FRONT_AND_BACK),m.enable(m.CULL_FACE))};this.setMaterialFaces=function(a){var b=a.side===THREE.DoubleSide;a=a.side===THREE.BackSide;Mb!==b&&(b?m.disable(m.CULL_FACE):m.enable(m.CULL_FACE),Mb=b);Nb!==a&&(a?m.frontFace(m.CW):m.frontFace(m.CCW),Nb=a)};this.setDepthTest=function(a){Qb!==a&&(a?m.enable(m.DEPTH_TEST):m.disable(m.DEPTH_TEST),Qb=a)};this.setDepthWrite=function(a){Zb!==a&&(m.depthMask(a),Zb=a)};this.setBlending=function(a,b,c,d){a!==
Ob&&(a===THREE.NoBlending?m.disable(m.BLEND):a===THREE.AdditiveBlending?(m.enable(m.BLEND),m.blendEquation(m.FUNC_ADD),m.blendFunc(m.SRC_ALPHA,m.ONE)):a===THREE.SubtractiveBlending?(m.enable(m.BLEND),m.blendEquation(m.FUNC_ADD),m.blendFunc(m.ZERO,m.ONE_MINUS_SRC_COLOR)):a===THREE.MultiplyBlending?(m.enable(m.BLEND),m.blendEquation(m.FUNC_ADD),m.blendFunc(m.ZERO,m.SRC_COLOR)):a===THREE.CustomBlending?m.enable(m.BLEND):(m.enable(m.BLEND),m.blendEquationSeparate(m.FUNC_ADD,m.FUNC_ADD),m.blendFuncSeparate(m.SRC_ALPHA,
m.ONE_MINUS_SRC_ALPHA,m.ONE,m.ONE_MINUS_SRC_ALPHA)),Ob=a);if(a===THREE.CustomBlending){if(b!==tb&&(m.blendEquation(I(b)),tb=b),c!==Pb||d!==rb)m.blendFunc(I(c),I(d)),Pb=c,rb=d}else rb=Pb=tb=null};this.uploadTexture=function(a){void 0===a.__webglInit&&(a.__webglInit=!0,a.addEventListener("dispose",jc),a.__webglTexture=m.createTexture(),H.info.memory.textures++);m.bindTexture(m.TEXTURE_2D,a.__webglTexture);m.pixelStorei(m.UNPACK_FLIP_Y_WEBGL,a.flipY);m.pixelStorei(m.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultiplyAlpha);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册