|
@@ -189,10 +189,10 @@ b||0===b.length)this.boundingBox.min.set(0,0,0),this.boundingBox.max.set(0,0,0);
|
|
|
if(c){a.makeEmpty();for(var d=this.boundingSphere.center,e=0,g=c.length;e<g;e+=3)b.set(c[e],c[e+1],c[e+2]),a.expandByPoint(b);a.center(d);for(var f=0,e=0,g=c.length;e<g;e+=3)b.set(c[e],c[e+1],c[e+2]),f=Math.max(f,d.distanceToSquared(b));this.boundingSphere.radius=Math.sqrt(f);isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.')}}}(),computeFaceNormals:function(){},computeVertexNormals:function(){var a=
|
|
|
this.attributes;if(a.position){var b=a.position.array;if(void 0===a.normal)this.addAttribute("normal",new THREE.BufferAttribute(new Float32Array(b.length),3));else for(var c=a.normal.array,d=0,e=c.length;d<e;d++)c[d]=0;var c=a.normal.array,g,f,h,k,n,p,l=new THREE.Vector3,t=new THREE.Vector3,q=new THREE.Vector3,s=new THREE.Vector3,r=new THREE.Vector3;if(a.index)for(var v=a.index.array,w=0<this.offsets.length?this.offsets:[{start:0,count:v.length,index:0}],u=0,A=w.length;u<A;++u){e=w[u].start;g=w[u].count;
|
|
|
for(var x=w[u].index,d=e,e=e+g;d<e;d+=3)g=3*(x+v[d]),f=3*(x+v[d+1]),h=3*(x+v[d+2]),k=b[g],n=b[g+1],p=b[g+2],l.set(k,n,p),k=b[f],n=b[f+1],p=b[f+2],t.set(k,n,p),k=b[h],n=b[h+1],p=b[h+2],q.set(k,n,p),s.subVectors(q,t),r.subVectors(l,t),s.cross(r),c[g]+=s.x,c[g+1]+=s.y,c[g+2]+=s.z,c[f]+=s.x,c[f+1]+=s.y,c[f+2]+=s.z,c[h]+=s.x,c[h+1]+=s.y,c[h+2]+=s.z}else for(d=0,e=b.length;d<e;d+=9)k=b[d],n=b[d+1],p=b[d+2],l.set(k,n,p),k=b[d+3],n=b[d+4],p=b[d+5],t.set(k,n,p),k=b[d+6],n=b[d+7],p=b[d+8],q.set(k,n,p),s.subVectors(q,
|
|
|
-t),r.subVectors(l,t),s.cross(r),c[d]=s.x,c[d+1]=s.y,c[d+2]=s.z,c[d+3]=s.x,c[d+4]=s.y,c[d+5]=s.z,c[d+6]=s.x,c[d+7]=s.y,c[d+8]=s.z;this.normalizeNormals();a.normal.needsUpdate=!0}},computeTangents:function(){function a(a,b,c){l=d[3*a];t=d[3*a+1];q=d[3*a+2];s=d[3*b];r=d[3*b+1];v=d[3*b+2];w=d[3*c];u=d[3*c+1];A=d[3*c+2];x=g[2*a];F=g[2*a+1];E=g[2*b];B=g[2*b+1];y=g[2*c];D=g[2*c+1];Q=s-l;G=w-l;L=r-t;N=u-t;X=v-q;U=A-q;P=E-x;T=y-x;O=B-F;sa=D-F;Y=1/(P*sa-T*O);ca.set((sa*Q-O*G)*Y,(sa*L-O*N)*Y,(sa*X-O*U)*Y);ia.set((P*
|
|
|
-G-T*Q)*Y,(P*N-T*L)*Y,(P*U-T*X)*Y);k[a].add(ca);k[b].add(ca);k[c].add(ca);n[a].add(ia);n[b].add(ia);n[c].add(ia)}function b(a){Ia.x=e[3*a];Ia.y=e[3*a+1];Ia.z=e[3*a+2];nb.copy(Ia);H=k[a];Ea.copy(H);Ea.sub(Ia.multiplyScalar(Ia.dot(H))).normalize();cb.crossVectors(nb,H);Ra=cb.dot(n[a]);ob=0>Ra?-1:1;h[4*a]=Ea.x;h[4*a+1]=Ea.y;h[4*a+2]=Ea.z;h[4*a+3]=ob}if(void 0===this.attributes.index||void 0===this.attributes.position||void 0===this.attributes.normal||void 0===this.attributes.uv)console.warn("Missing required attributes (index, position, normal or uv) in BufferGeometry.computeTangents()");
|
|
|
-else{var c=this.attributes.index.array,d=this.attributes.position.array,e=this.attributes.normal.array,g=this.attributes.uv.array,f=d.length/3;void 0===this.attributes.tangent&&this.addAttribute("tangent",new THREE.BufferAttribute(new Float32Array(4*f),4));for(var h=this.attributes.tangent.array,k=[],n=[],p=0;p<f;p++)k[p]=new THREE.Vector3,n[p]=new THREE.Vector3;var l,t,q,s,r,v,w,u,A,x,F,E,B,y,D,Q,G,L,N,X,U,P,T,O,sa,Y,ca=new THREE.Vector3,ia=new THREE.Vector3,ta,I,ja,ya,Oa;0===this.drawcalls.length&&
|
|
|
-this.addDrawCall(0,c.length,0);var S=this.drawcalls,p=0;for(I=S.length;p<I;++p){ta=S[p].start;ja=S[p].count;var Ja=S[p].index,f=ta;for(ta+=ja;f<ta;f+=3)ja=Ja+c[f],ya=Ja+c[f+1],Oa=Ja+c[f+2],a(ja,ya,Oa)}var Ea=new THREE.Vector3,cb=new THREE.Vector3,Ia=new THREE.Vector3,nb=new THREE.Vector3,ob,H,Ra,p=0;for(I=S.length;p<I;++p)for(ta=S[p].start,ja=S[p].count,Ja=S[p].index,f=ta,ta+=ja;f<ta;f+=3)ja=Ja+c[f],ya=Ja+c[f+1],Oa=Ja+c[f+2],b(ja),b(ya),b(Oa)}},computeOffsets:function(a){var b=a;void 0===a&&(b=65535);
|
|
|
+t),r.subVectors(l,t),s.cross(r),c[d]=s.x,c[d+1]=s.y,c[d+2]=s.z,c[d+3]=s.x,c[d+4]=s.y,c[d+5]=s.z,c[d+6]=s.x,c[d+7]=s.y,c[d+8]=s.z;this.normalizeNormals();a.normal.needsUpdate=!0}},computeTangents:function(){function a(a,b,c){l=d[3*a];t=d[3*a+1];q=d[3*a+2];s=d[3*b];r=d[3*b+1];v=d[3*b+2];w=d[3*c];u=d[3*c+1];A=d[3*c+2];x=g[2*a];F=g[2*a+1];E=g[2*b];B=g[2*b+1];y=g[2*c];D=g[2*c+1];Q=s-l;G=w-l;L=r-t;N=u-t;X=v-q;U=A-q;P=E-x;T=y-x;O=B-F;ta=D-F;Y=1/(P*ta-T*O);ca.set((ta*Q-O*G)*Y,(ta*L-O*N)*Y,(ta*X-O*U)*Y);ia.set((P*
|
|
|
+G-T*Q)*Y,(P*N-T*L)*Y,(P*U-T*X)*Y);k[a].add(ca);k[b].add(ca);k[c].add(ca);n[a].add(ia);n[b].add(ia);n[c].add(ia)}function b(a){Ia.x=e[3*a];Ia.y=e[3*a+1];Ia.z=e[3*a+2];bb.copy(Ia);H=k[a];Ea.copy(H);Ea.sub(Ia.multiplyScalar(Ia.dot(H))).normalize();db.crossVectors(bb,H);Ra=db.dot(n[a]);ob=0>Ra?-1:1;h[4*a]=Ea.x;h[4*a+1]=Ea.y;h[4*a+2]=Ea.z;h[4*a+3]=ob}if(void 0===this.attributes.index||void 0===this.attributes.position||void 0===this.attributes.normal||void 0===this.attributes.uv)console.warn("Missing required attributes (index, position, normal or uv) in BufferGeometry.computeTangents()");
|
|
|
+else{var c=this.attributes.index.array,d=this.attributes.position.array,e=this.attributes.normal.array,g=this.attributes.uv.array,f=d.length/3;void 0===this.attributes.tangent&&this.addAttribute("tangent",new THREE.BufferAttribute(new Float32Array(4*f),4));for(var h=this.attributes.tangent.array,k=[],n=[],p=0;p<f;p++)k[p]=new THREE.Vector3,n[p]=new THREE.Vector3;var l,t,q,s,r,v,w,u,A,x,F,E,B,y,D,Q,G,L,N,X,U,P,T,O,ta,Y,ca=new THREE.Vector3,ia=new THREE.Vector3,xa,I,ua,ja,Oa;0===this.drawcalls.length&&
|
|
|
+this.addDrawCall(0,c.length,0);var S=this.drawcalls,p=0;for(I=S.length;p<I;++p){xa=S[p].start;ua=S[p].count;var Ja=S[p].index,f=xa;for(xa+=ua;f<xa;f+=3)ua=Ja+c[f],ja=Ja+c[f+1],Oa=Ja+c[f+2],a(ua,ja,Oa)}var Ea=new THREE.Vector3,db=new THREE.Vector3,Ia=new THREE.Vector3,bb=new THREE.Vector3,ob,H,Ra,p=0;for(I=S.length;p<I;++p)for(xa=S[p].start,ua=S[p].count,Ja=S[p].index,f=xa,xa+=ua;f<xa;f+=3)ua=Ja+c[f],ja=Ja+c[f+1],Oa=Ja+c[f+2],b(ua),b(ja),b(Oa)}},computeOffsets:function(a){var b=a;void 0===a&&(b=65535);
|
|
|
Date.now();a=this.attributes.index.array;for(var c=this.attributes.position.array,d=a.length/3,e=new Uint16Array(a.length),g=0,f=0,h=[{start:0,count:0,index:0}],k=h[0],n=0,p=0,l=new Int32Array(6),t=new Int32Array(c.length),q=new Int32Array(c.length),s=0;s<c.length;s++)t[s]=-1,q[s]=-1;for(c=0;c<d;c++){for(var r=p=0;3>r;r++)s=a[3*c+r],-1==t[s]?(l[2*r]=s,l[2*r+1]=-1,p++):t[s]<k.index?(l[2*r]=s,l[2*r+1]=-1,n++):(l[2*r]=s,l[2*r+1]=t[s]);if(f+p>k.index+b)for(k={start:g,count:0,index:f},h.push(k),p=0;6>
|
|
|
p;p+=2)r=l[p+1],-1<r&&r<k.index&&(l[p+1]=-1);for(p=0;6>p;p+=2)s=l[p],r=l[p+1],-1===r&&(r=f++),t[s]=r,q[r]=s,e[g++]=r-k.index,k.count++}this.reorderBuffers(e,q,f);return this.offsets=h},merge:function(){console.log("BufferGeometry.merge(): TODO")},normalizeNormals:function(){for(var a=this.attributes.normal.array,b,c,d,e=0,g=a.length;e<g;e+=3)b=a[e],c=a[e+1],d=a[e+2],b=1/Math.sqrt(b*b+c*c+d*d),a[e]*=b,a[e+1]*=b,a[e+2]*=b},reorderBuffers:function(a,b,c){var d={},e;for(e in this.attributes)"index"!=
|
|
|
e&&(d[e]=new this.attributes[e].array.constructor(this.attributes[e].itemSize*c));for(var g=0;g<c;g++){var f=b[g];for(e in this.attributes)if("index"!=e)for(var h=this.attributes[e].array,k=this.attributes[e].itemSize,n=d[e],p=0;p<k;p++)n[g*k+p]=h[f*k+p]}this.attributes.index.array=a;for(e in this.attributes)"index"!=e&&(this.attributes[e].array=d[e],this.attributes[e].numItems=this.attributes[e].itemSize*c)},toJSON:function(){var a={metadata:{version:4,type:"BufferGeometry",generator:"BufferGeometryExporter"},
|
|
@@ -430,33 +430,33 @@ THREE.ShaderChunk.logdepthbuf_vertex,"}"].join("\n"),fragmentShader:["uniform sa
|
|
|
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){var b=a.geometry;a=a.material;var c=b.vertices.length;if(a.attributes){void 0===b.__webglCustomAttributesList&&(b.__webglCustomAttributesList=[]);for(var d in a.attributes){var e=a.attributes[d];if(!e.__webglInitialized||e.createUniqueBuffers){e.__webglInitialized=!0;var f=1;"v2"===e.type?f=2:"v3"===e.type?f=3:"v4"===e.type?f=4:"c"===e.type&&(f=3);e.size=f;e.array=new Float32Array(c*f);e.buffer=m.createBuffer();e.buffer.belongsToAttribute=d;e.needsUpdate=
|
|
|
!0}b.__webglCustomAttributesList.push(e)}}}function c(a,b){var c=b.geometry,e=a.faces3,f=3*e.length,g=1*e.length,h=3*e.length,e=d(b,a);a.__vertexArray=new Float32Array(3*f);a.__normalArray=new Float32Array(3*f);a.__colorArray=new Float32Array(3*f);a.__uvArray=new Float32Array(2*f);1<c.faceVertexUvs.length&&(a.__uv2Array=new Float32Array(2*f));c.hasTangents&&(a.__tangentArray=new Float32Array(4*f));b.geometry.skinWeights.length&&b.geometry.skinIndices.length&&(a.__skinIndexArray=new Float32Array(4*
|
|
|
-f),a.__skinWeightArray=new Float32Array(4*f));c=null!==ua.get("OES_element_index_uint")&&21845<g?Uint32Array:Uint16Array;a.__typeArray=c;a.__faceArray=new c(3*g);a.__lineArray=new c(2*h);var k;if(a.numMorphTargets)for(a.__morphTargetsArrays=[],c=0,k=a.numMorphTargets;c<k;c++)a.__morphTargetsArrays.push(new Float32Array(3*f));if(a.numMorphNormals)for(a.__morphNormalsArrays=[],c=0,k=a.numMorphNormals;c<k;c++)a.__morphNormalsArrays.push(new Float32Array(3*f));a.__webglFaceCount=3*g;a.__webglLineCount=
|
|
|
+f),a.__skinWeightArray=new Float32Array(4*f));c=null!==sa.get("OES_element_index_uint")&&21845<g?Uint32Array:Uint16Array;a.__typeArray=c;a.__faceArray=new c(3*g);a.__lineArray=new c(2*h);var k;if(a.numMorphTargets)for(a.__morphTargetsArrays=[],c=0,k=a.numMorphTargets;c<k;c++)a.__morphTargetsArrays.push(new Float32Array(3*f));if(a.numMorphNormals)for(a.__morphNormalsArrays=[],c=0,k=a.numMorphNormals;c<k;c++)a.__morphNormalsArrays.push(new Float32Array(3*f));a.__webglFaceCount=3*g;a.__webglLineCount=
|
|
|
2*h;if(e.attributes){void 0===a.__webglCustomAttributesList&&(a.__webglCustomAttributesList=[]);for(var l in e.attributes){var g=e.attributes[l],h={},n;for(n in g)h[n]=g[n];if(!h.__webglInitialized||h.createUniqueBuffers)h.__webglInitialized=!0,c=1,"v2"===h.type?c=2:"v3"===h.type?c=3:"v4"===h.type?c=4:"c"===h.type&&(c=3),h.size=c,h.array=new Float32Array(f*c),h.buffer=m.createBuffer(),h.buffer.belongsToAttribute=l,g.needsUpdate=!0,h.__original=g;a.__webglCustomAttributesList.push(h)}}a.__inittedArrays=
|
|
|
!0}function d(a,b){return a.material instanceof THREE.MeshFaceMaterial?a.material.materials[b.materialIndex]:a.material}function e(a,b,c,d){c=c.attributes;var e=b.attributes;b=b.attributesKeys;for(var g=0,k=b.length;g<k;g++){var l=b[g],n=e[l];if(0<=n){var p=c[l];void 0!==p?(l=p.itemSize,m.bindBuffer(m.ARRAY_BUFFER,p.buffer),f(n),m.vertexAttribPointer(n,l,m.FLOAT,!1,0,d*l*4)):void 0!==a.defaultAttributeValues&&(2===a.defaultAttributeValues[l].length?m.vertexAttrib2fv(n,a.defaultAttributeValues[l]):
|
|
|
-3===a.defaultAttributeValues[l].length&&m.vertexAttrib3fv(n,a.defaultAttributeValues[l]))}}h()}function g(){for(var a=0,b=tb.length;a<b;a++)tb[a]=0}function f(a){tb[a]=1;0===gb[a]&&(m.enableVertexAttribArray(a),gb[a]=1)}function h(){for(var a=0,b=gb.length;a<b;a++)gb[a]!==tb[a]&&(m.disableVertexAttribArray(a),gb[a]=0)}function k(a,b){return a.material.id!==b.material.id?b.material.id-a.material.id:a.z!==b.z?b.z-a.z:a.id-b.id}function n(a,b){return a.z!==b.z?a.z-b.z:a.id-b.id}function p(a,b){return b[0]-
|
|
|
+3===a.defaultAttributeValues[l].length&&m.vertexAttrib3fv(n,a.defaultAttributeValues[l]))}}h()}function g(){for(var a=0,b=tb.length;a<b;a++)tb[a]=0}function f(a){tb[a]=1;0===hb[a]&&(m.enableVertexAttribArray(a),hb[a]=1)}function h(){for(var a=0,b=hb.length;a<b;a++)hb[a]!==tb[a]&&(m.disableVertexAttribArray(a),hb[a]=0)}function k(a,b){return a.material.id!==b.material.id?b.material.id-a.material.id:a.z!==b.z?b.z-a.z:a.id-b.id}function n(a,b){return a.z!==b.z?a.z-b.z:a.id-b.id}function p(a,b){return b[0]-
|
|
|
a[0]}function l(a,e){if(!1!==e.visible){e instanceof THREE.Light&&Ea.push(e);if(!(e instanceof THREE.Scene||e instanceof THREE.Group)){void 0===e.__webglInit&&(e.__webglInit=!0,e._modelViewMatrix=new THREE.Matrix4,e._normalMatrix=new THREE.Matrix3,e.addEventListener("removed",Fc));var f=e.geometry;if(void 0!==f&&void 0===f.__webglInit&&(f.__webglInit=!0,f.addEventListener("dispose",Gc),!(f instanceof THREE.BufferGeometry)))if(e instanceof THREE.Mesh)v(a,e,f);else if(e instanceof THREE.Line){if(void 0===
|
|
|
f.__webglVertexBuffer){f.__webglVertexBuffer=m.createBuffer();f.__webglColorBuffer=m.createBuffer();f.__webglLineDistanceBuffer=m.createBuffer();H.info.memory.geometries++;var g=f.vertices.length;f.__vertexArray=new Float32Array(3*g);f.__colorArray=new Float32Array(3*g);f.__lineDistanceArray=new Float32Array(1*g);f.__webglLineCount=g;b(e);f.verticesNeedUpdate=!0;f.colorsNeedUpdate=!0;f.lineDistancesNeedUpdate=!0}}else if(e instanceof THREE.PointCloud&&void 0===f.__webglVertexBuffer){f.__webglVertexBuffer=
|
|
|
-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(cb,f,e);else{if(f instanceof THREE.Geometry)for(var k=Fb[f.id],n=0,s=k.length;n<s;n++)w(cb,k[n],e)}else e instanceof
|
|
|
-THREE.Line||e instanceof THREE.PointCloud?w(cb,f,e):(e instanceof THREE.ImmediateRenderObject||e.immediateRenderCallback)&&Ia.push({id:null,object:e,opaque:null,transparent:null,z:0});var t=cb[e.id];if(t&&(!1===e.frustumCulled||!0===Bc.intersectsObject(e))){var q=e.geometry,r,x;if(q instanceof THREE.BufferGeometry)for(var y=q.attributes,B=q.attributesKeys,F=0,D=B.length;F<D;F++){var E=B[F],G=y[E];void 0===G.buffer&&(G.buffer=m.createBuffer(),G.needsUpdate=!0);if(!0===G.needsUpdate){var L="index"===
|
|
|
+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(db,f,e);else{if(f instanceof THREE.Geometry)for(var k=Fb[f.id],n=0,s=k.length;n<s;n++)w(db,k[n],e)}else e instanceof
|
|
|
+THREE.Line||e instanceof THREE.PointCloud?w(db,f,e):(e instanceof THREE.ImmediateRenderObject||e.immediateRenderCallback)&&Ia.push({id:null,object:e,opaque:null,transparent:null,z:0});var t=db[e.id];if(t&&(!1===e.frustumCulled||!0===Bc.intersectsObject(e))){var q=e.geometry,r,x;if(q instanceof THREE.BufferGeometry)for(var y=q.attributes,B=q.attributesKeys,F=0,D=B.length;F<D;F++){var E=B[F],G=y[E];void 0===G.buffer&&(G.buffer=m.createBuffer(),G.needsUpdate=!0);if(!0===G.needsUpdate){var L="index"===
|
|
|
E?m.ELEMENT_ARRAY_BUFFER:m.ARRAY_BUFFER;m.bindBuffer(L,G.buffer);m.bufferData(L,G.array,m.STATIC_DRAW);G.needsUpdate=!1}}else if(e instanceof THREE.Mesh){!0===q.groupsNeedUpdate&&v(a,e,q);for(var O=Fb[q.id],Q=0,N=O.length;Q<N;Q++){var I=O[Q];x=d(e,I);!0===q.groupsNeedUpdate&&c(I,e);r=x.attributes&&u(x);if(q.verticesNeedUpdate||q.morphTargetsNeedUpdate||q.elementsNeedUpdate||q.uvsNeedUpdate||q.normalsNeedUpdate||q.colorsNeedUpdate||q.tangentsNeedUpdate||r){var S=I,P=e,T=m.DYNAMIC_DRAW,U=!q.dynamic,
|
|
|
-Y=x;if(S.__inittedArrays){var X=Y&&void 0!==Y.shading&&Y.shading===THREE.SmoothShading,K=void 0,Z=void 0,Ja=void 0,ea=void 0,ca=void 0,sa=void 0,Ra=void 0,ia=void 0,xa=void 0,ta=void 0,ua=void 0,ba=void 0,aa=void 0,$=void 0,ya=void 0,qa=void 0,J=void 0,ja=void 0,oa=void 0,mc=void 0,la=void 0,Oa=void 0,wb=void 0,ub=void 0,Da=void 0,Na=void 0,nc=void 0,Ka=void 0,oc=void 0,Ca=void 0,za=void 0,Gb=void 0,xb=void 0,Rb=void 0,Sa=void 0,Yb=void 0,bb=void 0,db=void 0,Mb=void 0,Sb=void 0,hb=0,ib=0,yb=0,zb=
|
|
|
-0,Hb=0,Wa=0,Fa=0,Ua=0,Pa=0,ma=0,va=0,C=0,La=void 0,Va=S.__vertexArray,Ab=S.__uvArray,jb=S.__uv2Array,Xa=S.__normalArray,ra=S.__tangentArray,Qa=S.__colorArray,Ya=S.__skinIndexArray,Za=S.__skinWeightArray,Ib=S.__morphTargetsArrays,Hc=S.__morphNormalsArrays,gb=S.__webglCustomAttributesList,z=void 0,Tb=S.__faceArray,Ma=S.__lineArray,Aa=P.geometry,eb=Aa.elementsNeedUpdate,Ic=Aa.uvsNeedUpdate,hc=Aa.normalsNeedUpdate,fa=Aa.tangentsNeedUpdate,ac=Aa.colorsNeedUpdate,R=Aa.morphTargetsNeedUpdate,ga=Aa.vertices,
|
|
|
-M=S.faces3,Ba=Aa.faces,wa=Aa.faceVertexUvs[0],Jc=Aa.faceVertexUvs[1],Cc=Aa.skinIndices,Ub=Aa.skinWeights,pb=Aa.morphTargets,Ga=Aa.morphNormals;if(Aa.verticesNeedUpdate){K=0;for(Z=M.length;K<Z;K++)ea=Ba[M[K]],ba=ga[ea.a],aa=ga[ea.b],$=ga[ea.c],Va[ib]=ba.x,Va[ib+1]=ba.y,Va[ib+2]=ba.z,Va[ib+3]=aa.x,Va[ib+4]=aa.y,Va[ib+5]=aa.z,Va[ib+6]=$.x,Va[ib+7]=$.y,Va[ib+8]=$.z,ib+=9;m.bindBuffer(m.ARRAY_BUFFER,S.__webglVertexBuffer);m.bufferData(m.ARRAY_BUFFER,Va,T)}if(R)for(Sa=0,Yb=pb.length;Sa<Yb;Sa++){K=va=0;
|
|
|
-for(Z=M.length;K<Z;K++)Mb=M[K],ea=Ba[Mb],ba=pb[Sa].vertices[ea.a],aa=pb[Sa].vertices[ea.b],$=pb[Sa].vertices[ea.c],bb=Ib[Sa],bb[va]=ba.x,bb[va+1]=ba.y,bb[va+2]=ba.z,bb[va+3]=aa.x,bb[va+4]=aa.y,bb[va+5]=aa.z,bb[va+6]=$.x,bb[va+7]=$.y,bb[va+8]=$.z,Y.morphNormals&&(X?(Sb=Ga[Sa].vertexNormals[Mb],ja=Sb.a,oa=Sb.b,mc=Sb.c):mc=oa=ja=Ga[Sa].faceNormals[Mb],db=Hc[Sa],db[va]=ja.x,db[va+1]=ja.y,db[va+2]=ja.z,db[va+3]=oa.x,db[va+4]=oa.y,db[va+5]=oa.z,db[va+6]=mc.x,db[va+7]=mc.y,db[va+8]=mc.z),va+=9;m.bindBuffer(m.ARRAY_BUFFER,
|
|
|
-S.__webglMorphTargetsBuffers[Sa]);m.bufferData(m.ARRAY_BUFFER,Ib[Sa],T);Y.morphNormals&&(m.bindBuffer(m.ARRAY_BUFFER,S.__webglMorphNormalsBuffers[Sa]),m.bufferData(m.ARRAY_BUFFER,Hc[Sa],T))}if(Ub.length){K=0;for(Z=M.length;K<Z;K++)ea=Ba[M[K]],ub=Ub[ea.a],Da=Ub[ea.b],Na=Ub[ea.c],Za[ma]=ub.x,Za[ma+1]=ub.y,Za[ma+2]=ub.z,Za[ma+3]=ub.w,Za[ma+4]=Da.x,Za[ma+5]=Da.y,Za[ma+6]=Da.z,Za[ma+7]=Da.w,Za[ma+8]=Na.x,Za[ma+9]=Na.y,Za[ma+10]=Na.z,Za[ma+11]=Na.w,nc=Cc[ea.a],Ka=Cc[ea.b],oc=Cc[ea.c],Ya[ma]=nc.x,Ya[ma+
|
|
|
-1]=nc.y,Ya[ma+2]=nc.z,Ya[ma+3]=nc.w,Ya[ma+4]=Ka.x,Ya[ma+5]=Ka.y,Ya[ma+6]=Ka.z,Ya[ma+7]=Ka.w,Ya[ma+8]=oc.x,Ya[ma+9]=oc.y,Ya[ma+10]=oc.z,Ya[ma+11]=oc.w,ma+=12;0<ma&&(m.bindBuffer(m.ARRAY_BUFFER,S.__webglSkinIndicesBuffer),m.bufferData(m.ARRAY_BUFFER,Ya,T),m.bindBuffer(m.ARRAY_BUFFER,S.__webglSkinWeightsBuffer),m.bufferData(m.ARRAY_BUFFER,Za,T))}if(ac){K=0;for(Z=M.length;K<Z;K++)ea=Ba[M[K]],Ra=ea.vertexColors,ia=ea.color,3===Ra.length&&Y.vertexColors===THREE.VertexColors?(la=Ra[0],Oa=Ra[1],wb=Ra[2]):
|
|
|
-wb=Oa=la=ia,Qa[Pa]=la.r,Qa[Pa+1]=la.g,Qa[Pa+2]=la.b,Qa[Pa+3]=Oa.r,Qa[Pa+4]=Oa.g,Qa[Pa+5]=Oa.b,Qa[Pa+6]=wb.r,Qa[Pa+7]=wb.g,Qa[Pa+8]=wb.b,Pa+=9;0<Pa&&(m.bindBuffer(m.ARRAY_BUFFER,S.__webglColorBuffer),m.bufferData(m.ARRAY_BUFFER,Qa,T))}if(fa&&Aa.hasTangents){K=0;for(Z=M.length;K<Z;K++)ea=Ba[M[K]],xa=ea.vertexTangents,ya=xa[0],qa=xa[1],J=xa[2],ra[Fa]=ya.x,ra[Fa+1]=ya.y,ra[Fa+2]=ya.z,ra[Fa+3]=ya.w,ra[Fa+4]=qa.x,ra[Fa+5]=qa.y,ra[Fa+6]=qa.z,ra[Fa+7]=qa.w,ra[Fa+8]=J.x,ra[Fa+9]=J.y,ra[Fa+10]=J.z,ra[Fa+11]=
|
|
|
-J.w,Fa+=12;m.bindBuffer(m.ARRAY_BUFFER,S.__webglTangentBuffer);m.bufferData(m.ARRAY_BUFFER,ra,T)}if(hc){K=0;for(Z=M.length;K<Z;K++)if(ea=Ba[M[K]],ca=ea.vertexNormals,sa=ea.normal,3===ca.length&&X)for(Ca=0;3>Ca;Ca++)Gb=ca[Ca],Xa[Wa]=Gb.x,Xa[Wa+1]=Gb.y,Xa[Wa+2]=Gb.z,Wa+=3;else for(Ca=0;3>Ca;Ca++)Xa[Wa]=sa.x,Xa[Wa+1]=sa.y,Xa[Wa+2]=sa.z,Wa+=3;m.bindBuffer(m.ARRAY_BUFFER,S.__webglNormalBuffer);m.bufferData(m.ARRAY_BUFFER,Xa,T)}if(Ic&&wa){K=0;for(Z=M.length;K<Z;K++)if(Ja=M[K],ta=wa[Ja],void 0!==ta)for(Ca=
|
|
|
-0;3>Ca;Ca++)xb=ta[Ca],Ab[yb]=xb.x,Ab[yb+1]=xb.y,yb+=2;0<yb&&(m.bindBuffer(m.ARRAY_BUFFER,S.__webglUVBuffer),m.bufferData(m.ARRAY_BUFFER,Ab,T))}if(Ic&&Jc){K=0;for(Z=M.length;K<Z;K++)if(Ja=M[K],ua=Jc[Ja],void 0!==ua)for(Ca=0;3>Ca;Ca++)Rb=ua[Ca],jb[zb]=Rb.x,jb[zb+1]=Rb.y,zb+=2;0<zb&&(m.bindBuffer(m.ARRAY_BUFFER,S.__webglUV2Buffer),m.bufferData(m.ARRAY_BUFFER,jb,T))}if(eb){K=0;for(Z=M.length;K<Z;K++)Tb[Hb]=hb,Tb[Hb+1]=hb+1,Tb[Hb+2]=hb+2,Hb+=3,Ma[Ua]=hb,Ma[Ua+1]=hb+1,Ma[Ua+2]=hb,Ma[Ua+3]=hb+2,Ma[Ua+4]=
|
|
|
-hb+1,Ma[Ua+5]=hb+2,Ua+=6,hb+=3;m.bindBuffer(m.ELEMENT_ARRAY_BUFFER,S.__webglFaceBuffer);m.bufferData(m.ELEMENT_ARRAY_BUFFER,Tb,T);m.bindBuffer(m.ELEMENT_ARRAY_BUFFER,S.__webglLineBuffer);m.bufferData(m.ELEMENT_ARRAY_BUFFER,Ma,T)}if(gb)for(Ca=0,za=gb.length;Ca<za;Ca++)if(z=gb[Ca],z.__original.needsUpdate){C=0;if(1===z.size)if(void 0===z.boundTo||"vertices"===z.boundTo)for(K=0,Z=M.length;K<Z;K++)ea=Ba[M[K]],z.array[C]=z.value[ea.a],z.array[C+1]=z.value[ea.b],z.array[C+2]=z.value[ea.c],C+=3;else{if("faces"===
|
|
|
-z.boundTo)for(K=0,Z=M.length;K<Z;K++)La=z.value[M[K]],z.array[C]=La,z.array[C+1]=La,z.array[C+2]=La,C+=3}else if(2===z.size)if(void 0===z.boundTo||"vertices"===z.boundTo)for(K=0,Z=M.length;K<Z;K++)ea=Ba[M[K]],ba=z.value[ea.a],aa=z.value[ea.b],$=z.value[ea.c],z.array[C]=ba.x,z.array[C+1]=ba.y,z.array[C+2]=aa.x,z.array[C+3]=aa.y,z.array[C+4]=$.x,z.array[C+5]=$.y,C+=6;else{if("faces"===z.boundTo)for(K=0,Z=M.length;K<Z;K++)$=aa=ba=La=z.value[M[K]],z.array[C]=ba.x,z.array[C+1]=ba.y,z.array[C+2]=aa.x,z.array[C+
|
|
|
-3]=aa.y,z.array[C+4]=$.x,z.array[C+5]=$.y,C+=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(K=0,Z=M.length;K<Z;K++)ea=Ba[M[K]],ba=z.value[ea.a],aa=z.value[ea.b],$=z.value[ea.c],z.array[C]=ba[na[0]],z.array[C+1]=ba[na[1]],z.array[C+2]=ba[na[2]],z.array[C+3]=aa[na[0]],z.array[C+4]=aa[na[1]],z.array[C+5]=aa[na[2]],z.array[C+6]=$[na[0]],z.array[C+7]=$[na[1]],z.array[C+8]=$[na[2]],C+=9;else if("faces"===z.boundTo)for(K=0,Z=M.length;K<
|
|
|
+Y=x;if(S.__inittedArrays){var X=Y&&void 0!==Y.shading&&Y.shading===THREE.SmoothShading,K=void 0,Z=void 0,Ja=void 0,ea=void 0,ca=void 0,ta=void 0,Ra=void 0,ia=void 0,sa=void 0,Ba=void 0,xa=void 0,ba=void 0,aa=void 0,$=void 0,ja=void 0,qa=void 0,J=void 0,ua=void 0,oa=void 0,mc=void 0,la=void 0,Oa=void 0,wb=void 0,ub=void 0,Da=void 0,Na=void 0,nc=void 0,Ka=void 0,oc=void 0,Ca=void 0,ya=void 0,Gb=void 0,xb=void 0,Rb=void 0,Sa=void 0,Yb=void 0,cb=void 0,eb=void 0,Mb=void 0,Sb=void 0,ib=0,jb=0,yb=0,zb=
|
|
|
+0,Hb=0,Wa=0,Fa=0,Ua=0,Pa=0,ma=0,va=0,C=0,La=void 0,Va=S.__vertexArray,Ab=S.__uvArray,kb=S.__uv2Array,Xa=S.__normalArray,ra=S.__tangentArray,Qa=S.__colorArray,Ya=S.__skinIndexArray,Za=S.__skinWeightArray,Ib=S.__morphTargetsArrays,Hc=S.__morphNormalsArrays,hb=S.__webglCustomAttributesList,z=void 0,Tb=S.__faceArray,Ma=S.__lineArray,za=P.geometry,fb=za.elementsNeedUpdate,Ic=za.uvsNeedUpdate,hc=za.normalsNeedUpdate,fa=za.tangentsNeedUpdate,ac=za.colorsNeedUpdate,R=za.morphTargetsNeedUpdate,ga=za.vertices,
|
|
|
+M=S.faces3,Aa=za.faces,wa=za.faceVertexUvs[0],Jc=za.faceVertexUvs[1],Cc=za.skinIndices,Ub=za.skinWeights,pb=za.morphTargets,Ga=za.morphNormals;if(za.verticesNeedUpdate){K=0;for(Z=M.length;K<Z;K++)ea=Aa[M[K]],ba=ga[ea.a],aa=ga[ea.b],$=ga[ea.c],Va[jb]=ba.x,Va[jb+1]=ba.y,Va[jb+2]=ba.z,Va[jb+3]=aa.x,Va[jb+4]=aa.y,Va[jb+5]=aa.z,Va[jb+6]=$.x,Va[jb+7]=$.y,Va[jb+8]=$.z,jb+=9;m.bindBuffer(m.ARRAY_BUFFER,S.__webglVertexBuffer);m.bufferData(m.ARRAY_BUFFER,Va,T)}if(R)for(Sa=0,Yb=pb.length;Sa<Yb;Sa++){K=va=0;
|
|
|
+for(Z=M.length;K<Z;K++)Mb=M[K],ea=Aa[Mb],ba=pb[Sa].vertices[ea.a],aa=pb[Sa].vertices[ea.b],$=pb[Sa].vertices[ea.c],cb=Ib[Sa],cb[va]=ba.x,cb[va+1]=ba.y,cb[va+2]=ba.z,cb[va+3]=aa.x,cb[va+4]=aa.y,cb[va+5]=aa.z,cb[va+6]=$.x,cb[va+7]=$.y,cb[va+8]=$.z,Y.morphNormals&&(X?(Sb=Ga[Sa].vertexNormals[Mb],ua=Sb.a,oa=Sb.b,mc=Sb.c):mc=oa=ua=Ga[Sa].faceNormals[Mb],eb=Hc[Sa],eb[va]=ua.x,eb[va+1]=ua.y,eb[va+2]=ua.z,eb[va+3]=oa.x,eb[va+4]=oa.y,eb[va+5]=oa.z,eb[va+6]=mc.x,eb[va+7]=mc.y,eb[va+8]=mc.z),va+=9;m.bindBuffer(m.ARRAY_BUFFER,
|
|
|
+S.__webglMorphTargetsBuffers[Sa]);m.bufferData(m.ARRAY_BUFFER,Ib[Sa],T);Y.morphNormals&&(m.bindBuffer(m.ARRAY_BUFFER,S.__webglMorphNormalsBuffers[Sa]),m.bufferData(m.ARRAY_BUFFER,Hc[Sa],T))}if(Ub.length){K=0;for(Z=M.length;K<Z;K++)ea=Aa[M[K]],ub=Ub[ea.a],Da=Ub[ea.b],Na=Ub[ea.c],Za[ma]=ub.x,Za[ma+1]=ub.y,Za[ma+2]=ub.z,Za[ma+3]=ub.w,Za[ma+4]=Da.x,Za[ma+5]=Da.y,Za[ma+6]=Da.z,Za[ma+7]=Da.w,Za[ma+8]=Na.x,Za[ma+9]=Na.y,Za[ma+10]=Na.z,Za[ma+11]=Na.w,nc=Cc[ea.a],Ka=Cc[ea.b],oc=Cc[ea.c],Ya[ma]=nc.x,Ya[ma+
|
|
|
+1]=nc.y,Ya[ma+2]=nc.z,Ya[ma+3]=nc.w,Ya[ma+4]=Ka.x,Ya[ma+5]=Ka.y,Ya[ma+6]=Ka.z,Ya[ma+7]=Ka.w,Ya[ma+8]=oc.x,Ya[ma+9]=oc.y,Ya[ma+10]=oc.z,Ya[ma+11]=oc.w,ma+=12;0<ma&&(m.bindBuffer(m.ARRAY_BUFFER,S.__webglSkinIndicesBuffer),m.bufferData(m.ARRAY_BUFFER,Ya,T),m.bindBuffer(m.ARRAY_BUFFER,S.__webglSkinWeightsBuffer),m.bufferData(m.ARRAY_BUFFER,Za,T))}if(ac){K=0;for(Z=M.length;K<Z;K++)ea=Aa[M[K]],Ra=ea.vertexColors,ia=ea.color,3===Ra.length&&Y.vertexColors===THREE.VertexColors?(la=Ra[0],Oa=Ra[1],wb=Ra[2]):
|
|
|
+wb=Oa=la=ia,Qa[Pa]=la.r,Qa[Pa+1]=la.g,Qa[Pa+2]=la.b,Qa[Pa+3]=Oa.r,Qa[Pa+4]=Oa.g,Qa[Pa+5]=Oa.b,Qa[Pa+6]=wb.r,Qa[Pa+7]=wb.g,Qa[Pa+8]=wb.b,Pa+=9;0<Pa&&(m.bindBuffer(m.ARRAY_BUFFER,S.__webglColorBuffer),m.bufferData(m.ARRAY_BUFFER,Qa,T))}if(fa&&za.hasTangents){K=0;for(Z=M.length;K<Z;K++)ea=Aa[M[K]],sa=ea.vertexTangents,ja=sa[0],qa=sa[1],J=sa[2],ra[Fa]=ja.x,ra[Fa+1]=ja.y,ra[Fa+2]=ja.z,ra[Fa+3]=ja.w,ra[Fa+4]=qa.x,ra[Fa+5]=qa.y,ra[Fa+6]=qa.z,ra[Fa+7]=qa.w,ra[Fa+8]=J.x,ra[Fa+9]=J.y,ra[Fa+10]=J.z,ra[Fa+11]=
|
|
|
+J.w,Fa+=12;m.bindBuffer(m.ARRAY_BUFFER,S.__webglTangentBuffer);m.bufferData(m.ARRAY_BUFFER,ra,T)}if(hc){K=0;for(Z=M.length;K<Z;K++)if(ea=Aa[M[K]],ca=ea.vertexNormals,ta=ea.normal,3===ca.length&&X)for(Ca=0;3>Ca;Ca++)Gb=ca[Ca],Xa[Wa]=Gb.x,Xa[Wa+1]=Gb.y,Xa[Wa+2]=Gb.z,Wa+=3;else for(Ca=0;3>Ca;Ca++)Xa[Wa]=ta.x,Xa[Wa+1]=ta.y,Xa[Wa+2]=ta.z,Wa+=3;m.bindBuffer(m.ARRAY_BUFFER,S.__webglNormalBuffer);m.bufferData(m.ARRAY_BUFFER,Xa,T)}if(Ic&&wa){K=0;for(Z=M.length;K<Z;K++)if(Ja=M[K],Ba=wa[Ja],void 0!==Ba)for(Ca=
|
|
|
+0;3>Ca;Ca++)xb=Ba[Ca],Ab[yb]=xb.x,Ab[yb+1]=xb.y,yb+=2;0<yb&&(m.bindBuffer(m.ARRAY_BUFFER,S.__webglUVBuffer),m.bufferData(m.ARRAY_BUFFER,Ab,T))}if(Ic&&Jc){K=0;for(Z=M.length;K<Z;K++)if(Ja=M[K],xa=Jc[Ja],void 0!==xa)for(Ca=0;3>Ca;Ca++)Rb=xa[Ca],kb[zb]=Rb.x,kb[zb+1]=Rb.y,zb+=2;0<zb&&(m.bindBuffer(m.ARRAY_BUFFER,S.__webglUV2Buffer),m.bufferData(m.ARRAY_BUFFER,kb,T))}if(fb){K=0;for(Z=M.length;K<Z;K++)Tb[Hb]=ib,Tb[Hb+1]=ib+1,Tb[Hb+2]=ib+2,Hb+=3,Ma[Ua]=ib,Ma[Ua+1]=ib+1,Ma[Ua+2]=ib,Ma[Ua+3]=ib+2,Ma[Ua+4]=
|
|
|
+ib+1,Ma[Ua+5]=ib+2,Ua+=6,ib+=3;m.bindBuffer(m.ELEMENT_ARRAY_BUFFER,S.__webglFaceBuffer);m.bufferData(m.ELEMENT_ARRAY_BUFFER,Tb,T);m.bindBuffer(m.ELEMENT_ARRAY_BUFFER,S.__webglLineBuffer);m.bufferData(m.ELEMENT_ARRAY_BUFFER,Ma,T)}if(hb)for(Ca=0,ya=hb.length;Ca<ya;Ca++)if(z=hb[Ca],z.__original.needsUpdate){C=0;if(1===z.size)if(void 0===z.boundTo||"vertices"===z.boundTo)for(K=0,Z=M.length;K<Z;K++)ea=Aa[M[K]],z.array[C]=z.value[ea.a],z.array[C+1]=z.value[ea.b],z.array[C+2]=z.value[ea.c],C+=3;else{if("faces"===
|
|
|
+z.boundTo)for(K=0,Z=M.length;K<Z;K++)La=z.value[M[K]],z.array[C]=La,z.array[C+1]=La,z.array[C+2]=La,C+=3}else if(2===z.size)if(void 0===z.boundTo||"vertices"===z.boundTo)for(K=0,Z=M.length;K<Z;K++)ea=Aa[M[K]],ba=z.value[ea.a],aa=z.value[ea.b],$=z.value[ea.c],z.array[C]=ba.x,z.array[C+1]=ba.y,z.array[C+2]=aa.x,z.array[C+3]=aa.y,z.array[C+4]=$.x,z.array[C+5]=$.y,C+=6;else{if("faces"===z.boundTo)for(K=0,Z=M.length;K<Z;K++)$=aa=ba=La=z.value[M[K]],z.array[C]=ba.x,z.array[C+1]=ba.y,z.array[C+2]=aa.x,z.array[C+
|
|
|
+3]=aa.y,z.array[C+4]=$.x,z.array[C+5]=$.y,C+=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(K=0,Z=M.length;K<Z;K++)ea=Aa[M[K]],ba=z.value[ea.a],aa=z.value[ea.b],$=z.value[ea.c],z.array[C]=ba[na[0]],z.array[C+1]=ba[na[1]],z.array[C+2]=ba[na[2]],z.array[C+3]=aa[na[0]],z.array[C+4]=aa[na[1]],z.array[C+5]=aa[na[2]],z.array[C+6]=$[na[0]],z.array[C+7]=$[na[1]],z.array[C+8]=$[na[2]],C+=9;else if("faces"===z.boundTo)for(K=0,Z=M.length;K<
|
|
|
Z;K++)$=aa=ba=La=z.value[M[K]],z.array[C]=ba[na[0]],z.array[C+1]=ba[na[1]],z.array[C+2]=ba[na[2]],z.array[C+3]=aa[na[0]],z.array[C+4]=aa[na[1]],z.array[C+5]=aa[na[2]],z.array[C+6]=$[na[0]],z.array[C+7]=$[na[1]],z.array[C+8]=$[na[2]],C+=9;else if("faceVertices"===z.boundTo)for(K=0,Z=M.length;K<Z;K++)La=z.value[M[K]],ba=La[0],aa=La[1],$=La[2],z.array[C]=ba[na[0]],z.array[C+1]=ba[na[1]],z.array[C+2]=ba[na[2]],z.array[C+3]=aa[na[0]],z.array[C+4]=aa[na[1]],z.array[C+5]=aa[na[2]],z.array[C+6]=$[na[0]],
|
|
|
-z.array[C+7]=$[na[1]],z.array[C+8]=$[na[2]],C+=9}else if(4===z.size)if(void 0===z.boundTo||"vertices"===z.boundTo)for(K=0,Z=M.length;K<Z;K++)ea=Ba[M[K]],ba=z.value[ea.a],aa=z.value[ea.b],$=z.value[ea.c],z.array[C]=ba.x,z.array[C+1]=ba.y,z.array[C+2]=ba.z,z.array[C+3]=ba.w,z.array[C+4]=aa.x,z.array[C+5]=aa.y,z.array[C+6]=aa.z,z.array[C+7]=aa.w,z.array[C+8]=$.x,z.array[C+9]=$.y,z.array[C+10]=$.z,z.array[C+11]=$.w,C+=12;else if("faces"===z.boundTo)for(K=0,Z=M.length;K<Z;K++)$=aa=ba=La=z.value[M[K]],
|
|
|
+z.array[C+7]=$[na[1]],z.array[C+8]=$[na[2]],C+=9}else if(4===z.size)if(void 0===z.boundTo||"vertices"===z.boundTo)for(K=0,Z=M.length;K<Z;K++)ea=Aa[M[K]],ba=z.value[ea.a],aa=z.value[ea.b],$=z.value[ea.c],z.array[C]=ba.x,z.array[C+1]=ba.y,z.array[C+2]=ba.z,z.array[C+3]=ba.w,z.array[C+4]=aa.x,z.array[C+5]=aa.y,z.array[C+6]=aa.z,z.array[C+7]=aa.w,z.array[C+8]=$.x,z.array[C+9]=$.y,z.array[C+10]=$.z,z.array[C+11]=$.w,C+=12;else if("faces"===z.boundTo)for(K=0,Z=M.length;K<Z;K++)$=aa=ba=La=z.value[M[K]],
|
|
|
z.array[C]=ba.x,z.array[C+1]=ba.y,z.array[C+2]=ba.z,z.array[C+3]=ba.w,z.array[C+4]=aa.x,z.array[C+5]=aa.y,z.array[C+6]=aa.z,z.array[C+7]=aa.w,z.array[C+8]=$.x,z.array[C+9]=$.y,z.array[C+10]=$.z,z.array[C+11]=$.w,C+=12;else if("faceVertices"===z.boundTo)for(K=0,Z=M.length;K<Z;K++)La=z.value[M[K]],ba=La[0],aa=La[1],$=La[2],z.array[C]=ba.x,z.array[C+1]=ba.y,z.array[C+2]=ba.z,z.array[C+3]=ba.w,z.array[C+4]=aa.x,z.array[C+5]=aa.y,z.array[C+6]=aa.z,z.array[C+7]=aa.w,z.array[C+8]=$.x,z.array[C+9]=$.y,z.array[C+
|
|
|
10]=$.z,z.array[C+11]=$.w,C+=12;m.bindBuffer(m.ARRAY_BUFFER,z.buffer);m.bufferData(m.ARRAY_BUFFER,z.array,T)}U&&(delete S.__inittedArrays,delete S.__colorArray,delete S.__normalArray,delete S.__tangentArray,delete S.__uvArray,delete S.__uv2Array,delete S.__faceArray,delete S.__vertexArray,delete S.__lineArray,delete S.__skinIndexArray,delete S.__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);r=x.attributes&&u(x);if(q.verticesNeedUpdate||q.colorsNeedUpdate||q.lineDistancesNeedUpdate||r){var bc=m.DYNAMIC_DRAW,fb,Jb,kb,cc,ha,uc,tb=q.vertices,Nb=q.colors,vb=q.lineDistances,Ob=tb.length,Zb=Nb.length,$b=vb.length,lb=q.__vertexArray,mb=q.__colorArray,Eb=q.__lineDistanceArray,lc=q.colorsNeedUpdate,tc=q.lineDistancesNeedUpdate,gc=q.__webglCustomAttributesList,vc,kc,Ha,ic,$a,pa;if(q.verticesNeedUpdate){for(fb=
|
|
|
-0;fb<Ob;fb++)cc=tb[fb],ha=3*fb,lb[ha]=cc.x,lb[ha+1]=cc.y,lb[ha+2]=cc.z;m.bindBuffer(m.ARRAY_BUFFER,q.__webglVertexBuffer);m.bufferData(m.ARRAY_BUFFER,lb,bc)}if(lc){for(Jb=0;Jb<Zb;Jb++)uc=Nb[Jb],ha=3*Jb,mb[ha]=uc.r,mb[ha+1]=uc.g,mb[ha+2]=uc.b;m.bindBuffer(m.ARRAY_BUFFER,q.__webglColorBuffer);m.bufferData(m.ARRAY_BUFFER,mb,bc)}if(tc){for(kb=0;kb<$b;kb++)Eb[kb]=vb[kb];m.bindBuffer(m.ARRAY_BUFFER,q.__webglLineDistanceBuffer);m.bufferData(m.ARRAY_BUFFER,Eb,bc)}if(gc)for(vc=0,kc=gc.length;vc<kc;vc++)if(pa=
|
|
|
+!1;q.tangentsNeedUpdate=!1;x.attributes&&A(x)}else if(e instanceof THREE.Line){x=d(e,q);r=x.attributes&&u(x);if(q.verticesNeedUpdate||q.colorsNeedUpdate||q.lineDistancesNeedUpdate||r){var bc=m.DYNAMIC_DRAW,gb,Jb,lb,cc,ha,uc,tb=q.vertices,Nb=q.colors,vb=q.lineDistances,Ob=tb.length,Zb=Nb.length,$b=vb.length,mb=q.__vertexArray,nb=q.__colorArray,Eb=q.__lineDistanceArray,lc=q.colorsNeedUpdate,tc=q.lineDistancesNeedUpdate,gc=q.__webglCustomAttributesList,vc,kc,Ha,ic,$a,pa;if(q.verticesNeedUpdate){for(gb=
|
|
|
+0;gb<Ob;gb++)cc=tb[gb],ha=3*gb,mb[ha]=cc.x,mb[ha+1]=cc.y,mb[ha+2]=cc.z;m.bindBuffer(m.ARRAY_BUFFER,q.__webglVertexBuffer);m.bufferData(m.ARRAY_BUFFER,mb,bc)}if(lc){for(Jb=0;Jb<Zb;Jb++)uc=Nb[Jb],ha=3*Jb,nb[ha]=uc.r,nb[ha+1]=uc.g,nb[ha+2]=uc.b;m.bindBuffer(m.ARRAY_BUFFER,q.__webglColorBuffer);m.bufferData(m.ARRAY_BUFFER,nb,bc)}if(tc){for(lb=0;lb<$b;lb++)Eb[lb]=vb[lb];m.bindBuffer(m.ARRAY_BUFFER,q.__webglLineDistanceBuffer);m.bufferData(m.ARRAY_BUFFER,Eb,bc)}if(gc)for(vc=0,kc=gc.length;vc<kc;vc++)if(pa=
|
|
|
gc[vc],pa.needsUpdate&&(void 0===pa.boundTo||"vertices"===pa.boundTo)){ha=0;ic=pa.value.length;if(1===pa.size)for(Ha=0;Ha<ic;Ha++)pa.array[Ha]=pa.value[Ha];else if(2===pa.size)for(Ha=0;Ha<ic;Ha++)$a=pa.value[Ha],pa.array[ha]=$a.x,pa.array[ha+1]=$a.y,ha+=2;else if(3===pa.size)if("c"===pa.type)for(Ha=0;Ha<ic;Ha++)$a=pa.value[Ha],pa.array[ha]=$a.r,pa.array[ha+1]=$a.g,pa.array[ha+2]=$a.b,ha+=3;else for(Ha=0;Ha<ic;Ha++)$a=pa.value[Ha],pa.array[ha]=$a.x,pa.array[ha+1]=$a.y,pa.array[ha+2]=$a.z,ha+=3;else if(4===
|
|
|
pa.size)for(Ha=0;Ha<ic;Ha++)$a=pa.value[Ha],pa.array[ha]=$a.x,pa.array[ha+1]=$a.y,pa.array[ha+2]=$a.z,pa.array[ha+3]=$a.w,ha+=4;m.bindBuffer(m.ARRAY_BUFFER,pa.buffer);m.bufferData(m.ARRAY_BUFFER,pa.array,bc)}}q.verticesNeedUpdate=!1;q.colorsNeedUpdate=!1;q.lineDistancesNeedUpdate=!1;x.attributes&&A(x)}else if(e instanceof THREE.PointCloud){x=d(e,q);r=x.attributes&&u(x);if(q.verticesNeedUpdate||q.colorsNeedUpdate||e.sortParticles||r){var Pb=m.DYNAMIC_DRAW,ab,Bb,Cb,W,Db,Vb,wc=q.vertices,sb=wc.length,
|
|
|
Qb=q.colors,pc=Qb.length,dc=q.__vertexArray,ec=q.__colorArray,Kb=q.__sortArray,qc=q.verticesNeedUpdate,rc=q.colorsNeedUpdate,Lb=q.__webglCustomAttributesList,qb,jc,da,rb,ka,V;if(e.sortParticles){Dc.copy(xc);Dc.multiply(e.matrixWorld);for(ab=0;ab<sb;ab++)Cb=wc[ab],Ta.copy(Cb),Ta.applyProjection(Dc),Kb[ab]=[Ta.z,ab];Kb.sort(p);for(ab=0;ab<sb;ab++)Cb=wc[Kb[ab][1]],W=3*ab,dc[W]=Cb.x,dc[W+1]=Cb.y,dc[W+2]=Cb.z;for(Bb=0;Bb<pc;Bb++)W=3*Bb,Vb=Qb[Kb[Bb][1]],ec[W]=Vb.r,ec[W+1]=Vb.g,ec[W+2]=Vb.b;if(Lb)for(qb=
|
|
@@ -464,102 +464,102 @@ Qb=q.colors,pc=Qb.length,dc=q.__vertexArray,ec=q.__colorArray,Kb=q.__sortArray,q
|
|
|
ka.y,V.array[W+2]=ka.z,W+=3;else if(4===V.size)for(da=0;da<rb;da++)Db=Kb[da][1],ka=V.value[Db],V.array[W]=ka.x,V.array[W+1]=ka.y,V.array[W+2]=ka.z,V.array[W+3]=ka.w,W+=4}else{if(qc)for(ab=0;ab<sb;ab++)Cb=wc[ab],W=3*ab,dc[W]=Cb.x,dc[W+1]=Cb.y,dc[W+2]=Cb.z;if(rc)for(Bb=0;Bb<pc;Bb++)Vb=Qb[Bb],W=3*Bb,ec[W]=Vb.r,ec[W+1]=Vb.g,ec[W+2]=Vb.b;if(Lb)for(qb=0,jc=Lb.length;qb<jc;qb++)if(V=Lb[qb],V.needsUpdate&&(void 0===V.boundTo||"vertices"===V.boundTo))if(rb=V.value.length,W=0,1===V.size)for(da=0;da<rb;da++)V.array[da]=
|
|
|
V.value[da];else if(2===V.size)for(da=0;da<rb;da++)ka=V.value[da],V.array[W]=ka.x,V.array[W+1]=ka.y,W+=2;else if(3===V.size)if("c"===V.type)for(da=0;da<rb;da++)ka=V.value[da],V.array[W]=ka.r,V.array[W+1]=ka.g,V.array[W+2]=ka.b,W+=3;else for(da=0;da<rb;da++)ka=V.value[da],V.array[W]=ka.x,V.array[W+1]=ka.y,V.array[W+2]=ka.z,W+=3;else if(4===V.size)for(da=0;da<rb;da++)ka=V.value[da],V.array[W]=ka.x,V.array[W+1]=ka.y,V.array[W+2]=ka.z,V.array[W+3]=ka.w,W+=4}if(qc||e.sortParticles)m.bindBuffer(m.ARRAY_BUFFER,
|
|
|
q.__webglVertexBuffer),m.bufferData(m.ARRAY_BUFFER,dc,Pb);if(rc||e.sortParticles)m.bindBuffer(m.ARRAY_BUFFER,q.__webglColorBuffer),m.bufferData(m.ARRAY_BUFFER,ec,Pb);if(Lb)for(qb=0,jc=Lb.length;qb<jc;qb++)if(V=Lb[qb],V.needsUpdate||e.sortParticles)m.bindBuffer(m.ARRAY_BUFFER,V.buffer),m.bufferData(m.ARRAY_BUFFER,V.array,Pb)}q.verticesNeedUpdate=!1;q.colorsNeedUpdate=!1;x.attributes&&A(x)}for(var fc=0,Ec=t.length;fc<Ec;fc++){var yc=t[fc],Wb=yc,sc=Wb.object,zc=Wb.buffer,Ac=sc.geometry,Xb=sc.material;
|
|
|
-Xb instanceof THREE.MeshFaceMaterial?(Xb=Xb.materials[Ac instanceof THREE.BufferGeometry?0:zc.materialIndex],Wb.material=Xb,Xb.transparent?ob.push(Wb):nb.push(Wb)):Xb&&(Wb.material=Xb,Xb.transparent?ob.push(Wb):nb.push(Wb));yc.render=!0;!0===H.sortObjects&&(null!==e.renderDepth?yc.z=e.renderDepth:(Ta.setFromMatrixPosition(e.matrixWorld),Ta.applyProjection(xc),yc.z=Ta.z))}}}fc=0;for(Ec=e.children.length;fc<Ec;fc++)l(a,e.children[fc])}}function t(a,b,c){if(0!==a.length)for(var d=0,e=a.length;d<e;d++)a[d].render(b,
|
|
|
+Xb instanceof THREE.MeshFaceMaterial?(Xb=Xb.materials[Ac instanceof THREE.BufferGeometry?0:zc.materialIndex],Wb.material=Xb,Xb.transparent?ob.push(Wb):bb.push(Wb)):Xb&&(Wb.material=Xb,Xb.transparent?ob.push(Wb):bb.push(Wb));yc.render=!0;!0===H.sortObjects&&(null!==e.renderDepth?yc.z=e.renderDepth:(Ta.setFromMatrixPosition(e.matrixWorld),Ta.applyProjection(xc),yc.z=Ta.z))}}}fc=0;for(Ec=e.children.length;fc<Ec;fc++)l(a,e.children[fc])}}function t(a,b,c){if(0!==a.length)for(var d=0,e=a.length;d<e;d++)a[d].render(b,
|
|
|
c,pc,qc)}function q(a,b,c,d,e,f){for(var g,h,k,m=a.length-1;-1!==m;m--){g=a[m];h=g.object;k=g.buffer;B(h,b);if(f)g=f;else{g=g.material;if(!g)continue;e&&H.setBlending(g.blending,g.blendEquation,g.blendSrc,g.blendDst);H.setDepthTest(g.depthTest);H.setDepthWrite(g.depthWrite);G(g.polygonOffset,g.polygonOffsetFactor,g.polygonOffsetUnits)}H.setMaterialFaces(g);k instanceof THREE.BufferGeometry?H.renderBufferDirect(b,c,d,g,k,h):H.renderBuffer(b,c,d,g,k,h)}}function s(a,b,c,d,e,f,g){for(var h,k,m=0,l=a.length;m<
|
|
|
-l;m++)if(h=a[m],k=h.object,k.visible){if(g)h=g;else{h=h[b];if(!h)continue;f&&H.setBlending(h.blending,h.blendEquation,h.blendSrc,h.blendDst);H.setDepthTest(h.depthTest);H.setDepthWrite(h.depthWrite);G(h.polygonOffset,h.polygonOffsetFactor,h.polygonOffsetUnits)}H.renderImmediateObject(c,d,e,h,k)}}function r(a){var b=a.object.material;b.transparent?(a.transparent=b,a.opaque=null):(a.opaque=b,a.transparent=null)}function v(a,b,d){var e=b.material,f=!1;if(void 0===Fb[d.id]||!0===d.groupsNeedUpdate){delete cb[b.id];
|
|
|
-a=Fb;for(var g=d.id,e=e instanceof THREE.MeshFaceMaterial,h=ua.get("OES_element_index_uint")?4294967296:65535,k,f={},l=d.morphTargets.length,n=d.morphNormals.length,p,q={},s=[],t=0,r=d.faces.length;t<r;t++){k=d.faces[t];var u=e?k.materialIndex:0;u in f||(f[u]={hash:u,counter:0});k=f[u].hash+"_"+f[u].counter;k in q||(p={id:rc++,faces3:[],materialIndex:u,vertices:0,numMorphTargets:l,numMorphNormals:n},q[k]=p,s.push(p));q[k].vertices+3>h&&(f[u].counter+=1,k=f[u].hash+"_"+f[u].counter,k in q||(p={id:rc++,
|
|
|
+l;m++)if(h=a[m],k=h.object,k.visible){if(g)h=g;else{h=h[b];if(!h)continue;f&&H.setBlending(h.blending,h.blendEquation,h.blendSrc,h.blendDst);H.setDepthTest(h.depthTest);H.setDepthWrite(h.depthWrite);G(h.polygonOffset,h.polygonOffsetFactor,h.polygonOffsetUnits)}H.renderImmediateObject(c,d,e,h,k)}}function r(a){var b=a.object.material;b.transparent?(a.transparent=b,a.opaque=null):(a.opaque=b,a.transparent=null)}function v(a,b,d){var e=b.material,f=!1;if(void 0===Fb[d.id]||!0===d.groupsNeedUpdate){delete db[b.id];
|
|
|
+a=Fb;for(var g=d.id,e=e instanceof THREE.MeshFaceMaterial,h=sa.get("OES_element_index_uint")?4294967296:65535,k,f={},l=d.morphTargets.length,n=d.morphNormals.length,p,q={},s=[],t=0,r=d.faces.length;t<r;t++){k=d.faces[t];var u=e?k.materialIndex:0;u in f||(f[u]={hash:u,counter:0});k=f[u].hash+"_"+f[u].counter;k in q||(p={id:rc++,faces3:[],materialIndex:u,vertices:0,numMorphTargets:l,numMorphNormals:n},q[k]=p,s.push(p));q[k].vertices+3>h&&(f[u].counter+=1,k=f[u].hash+"_"+f[u].counter,k in q||(p={id:rc++,
|
|
|
faces3:[],materialIndex:u,vertices:0,numMorphTargets:l,numMorphNormals:n},q[k]=p,s.push(p)));q[k].faces3.push(t);q[k].vertices+=3}a[g]=s;d.groupsNeedUpdate=!1}a=Fb[d.id];g=0;for(e=a.length;g<e;g++){h=a[g];if(void 0===h.__webglVertexBuffer){f=h;f.__webglVertexBuffer=m.createBuffer();f.__webglNormalBuffer=m.createBuffer();f.__webglTangentBuffer=m.createBuffer();f.__webglColorBuffer=m.createBuffer();f.__webglUVBuffer=m.createBuffer();f.__webglUV2Buffer=m.createBuffer();f.__webglSkinIndicesBuffer=m.createBuffer();
|
|
|
f.__webglSkinWeightsBuffer=m.createBuffer();f.__webglFaceBuffer=m.createBuffer();f.__webglLineBuffer=m.createBuffer();n=l=void 0;if(f.numMorphTargets)for(f.__webglMorphTargetsBuffers=[],l=0,n=f.numMorphTargets;l<n;l++)f.__webglMorphTargetsBuffers.push(m.createBuffer());if(f.numMorphNormals)for(f.__webglMorphNormalsBuffers=[],l=0,n=f.numMorphNormals;l<n;l++)f.__webglMorphNormalsBuffers.push(m.createBuffer());H.info.memory.geometries++;c(h,b);d.verticesNeedUpdate=!0;d.morphTargetsNeedUpdate=!0;d.elementsNeedUpdate=
|
|
|
-!0;d.uvsNeedUpdate=!0;d.normalsNeedUpdate=!0;d.tangentsNeedUpdate=!0;f=d.colorsNeedUpdate=!0}else f=!1;(f||void 0===b.__webglActive)&&w(cb,h,b)}b.__webglActive=!0}function w(a,b,c){var d=c.id;a[d]=a[d]||[];a[d].push({id:d,buffer:b,object:c,material:null,z:0})}function u(a){for(var b in a.attributes)if(a.attributes[b].needsUpdate)return!0;return!1}function A(a){for(var b in a.attributes)a.attributes[b].needsUpdate=!1}function x(a,b,c,d,e){var f,g,h,k;Mb=0;if(d.needsUpdate){d.program&&sc(d);d.addEventListener("dispose",
|
|
|
+!0;d.uvsNeedUpdate=!0;d.normalsNeedUpdate=!0;d.tangentsNeedUpdate=!0;f=d.colorsNeedUpdate=!0}else f=!1;(f||void 0===b.__webglActive)&&w(db,h,b)}b.__webglActive=!0}function w(a,b,c){var d=c.id;a[d]=a[d]||[];a[d].push({id:d,buffer:b,object:c,material:null,z:0})}function u(a){for(var b in a.attributes)if(a.attributes[b].needsUpdate)return!0;return!1}function A(a){for(var b in a.attributes)a.attributes[b].needsUpdate=!1}function x(a,b,c,d,e){var f,g,h,k;Mb=0;if(d.needsUpdate){d.program&&sc(d);d.addEventListener("dispose",
|
|
|
zc);var l;d instanceof THREE.MeshDepthMaterial?l="depth":d instanceof THREE.MeshNormalMaterial?l="normal":d instanceof THREE.MeshBasicMaterial?l="basic":d instanceof THREE.MeshLambertMaterial?l="lambert":d instanceof THREE.MeshPhongMaterial?l="phong":d instanceof THREE.LineBasicMaterial?l="basic":d instanceof THREE.LineDashedMaterial?l="dashed":d instanceof THREE.PointCloudMaterial&&(l="particle_basic");if(l){var n=THREE.ShaderLib[l];d.__webglShader={uniforms:THREE.UniformsUtils.clone(n.uniforms),
|
|
|
vertexShader:n.vertexShader,fragmentShader:n.fragmentShader}}else d.__webglShader={uniforms:d.uniforms,vertexShader:d.vertexShader,fragmentShader:d.fragmentShader};for(var p=0,q=0,t=0,s=0,r=0,u=b.length;r<u;r++){var w=b[r];w.onlyShadow||!1===w.visible||(w instanceof THREE.DirectionalLight&&p++,w instanceof THREE.PointLight&&q++,w instanceof THREE.SpotLight&&t++,w instanceof THREE.HemisphereLight&&s++)}f=p;g=q;h=t;k=s;for(var v,x=0,A=0,B=b.length;A<B;A++){var S=b[A];S.castShadow&&(S instanceof THREE.SpotLight&&
|
|
|
x++,S instanceof THREE.DirectionalLight&&!S.shadowCascade&&x++)}v=x;var G;if(tc&&e&&e.skeleton&&e.skeleton.useVertexTexture)G=1024;else{var Q=m.getParameter(m.MAX_VERTEX_UNIFORM_VECTORS),I=Math.floor((Q-20)/4);void 0!==e&&e instanceof THREE.SkinnedMesh&&(I=Math.min(e.skeleton.bones.length,I),I<e.skeleton.bones.length&&console.warn("WebGLRenderer: too many bones - "+e.skeleton.bones.length+", this GPU supports just "+I+" (try OpenGL instead of ANGLE)"));G=I}var P={precision:Y,supportsVertexTextures:gc,
|
|
|
map:!!d.map,envMap:!!d.envMap,lightMap:!!d.lightMap,bumpMap:!!d.bumpMap,normalMap:!!d.normalMap,specularMap:!!d.specularMap,alphaMap:!!d.alphaMap,vertexColors:d.vertexColors,fog:c,useFog:d.fog,fogExp:c instanceof THREE.FogExp2,sizeAttenuation:d.sizeAttenuation,logarithmicDepthBuffer:Oa,skinning:d.skinning,maxBones:G,useVertexTexture:tc&&e&&e.skeleton&&e.skeleton.useVertexTexture,morphTargets:d.morphTargets,morphNormals:d.morphNormals,maxMorphTargets:H.maxMorphTargets,maxMorphNormals:H.maxMorphNormals,
|
|
|
maxDirLights:f,maxPointLights:g,maxSpotLights:h,maxHemiLights:k,maxShadows:v,shadowMapEnabled:H.shadowMapEnabled&&e.receiveShadow&&0<v,shadowMapType:H.shadowMapType,shadowMapDebug:H.shadowMapDebug,shadowMapCascade:H.shadowMapCascade,alphaTest:d.alphaTest,metal:d.metal,wrapAround:d.wrapAround,doubleSided:d.side===THREE.DoubleSide,flipSided:d.side===THREE.BackSide},U=[];l?U.push(l):(U.push(d.fragmentShader),U.push(d.vertexShader));if(void 0!==d.defines)for(var X in d.defines)U.push(X),U.push(d.defines[X]);
|
|
|
-for(X in P)U.push(X),U.push(P[X]);for(var K=U.join(),Z,Ea=0,cb=Ra.length;Ea<cb;Ea++){var Ja=Ra[Ea];if(Ja.code===K){Z=Ja;Z.usedTimes++;break}}void 0===Z&&(Z=new THREE.WebGLProgram(H,K,d,P),Ra.push(Z),H.info.memory.programs=Ra.length);d.program=Z;var sa=Z.attributes;if(d.morphTargets){d.numSupportedMorphTargets=0;for(var ca,Ia="morphTarget",ia=0;ia<H.maxMorphTargets;ia++)ca=Ia+ia,0<=sa[ca]&&d.numSupportedMorphTargets++}if(d.morphNormals)for(d.numSupportedMorphNormals=0,Ia="morphNormal",ia=0;ia<H.maxMorphNormals;ia++)ca=
|
|
|
-Ia+ia,0<=sa[ca]&&d.numSupportedMorphNormals++;d.uniformsList=[];for(var ob in d.__webglShader.uniforms){var nb=d.program.uniforms[ob];nb&&d.uniformsList.push([d.__webglShader.uniforms[ob],nb])}d.needsUpdate=!1}d.morphTargets&&!e.__webglMorphTargetInfluences&&(e.__webglMorphTargetInfluences=new Float32Array(H.maxMorphTargets));var ba=!1,aa=!1,$=!1,ta=d.program,qa=ta.uniforms,J=d.__webglShader.uniforms;ta.id!==wb&&(m.useProgram(ta.program),wb=ta.id,$=aa=ba=!0);d.id!==xb&&(-1===xb&&($=!0),xb=d.id,aa=
|
|
|
+for(X in P)U.push(X),U.push(P[X]);for(var K=U.join(),Z,Ea=0,db=Ra.length;Ea<db;Ea++){var Ja=Ra[Ea];if(Ja.code===K){Z=Ja;Z.usedTimes++;break}}void 0===Z&&(Z=new THREE.WebGLProgram(H,K,d,P),Ra.push(Z),H.info.memory.programs=Ra.length);d.program=Z;var ta=Z.attributes;if(d.morphTargets){d.numSupportedMorphTargets=0;for(var ca,Ia="morphTarget",ia=0;ia<H.maxMorphTargets;ia++)ca=Ia+ia,0<=ta[ca]&&d.numSupportedMorphTargets++}if(d.morphNormals)for(d.numSupportedMorphNormals=0,Ia="morphNormal",ia=0;ia<H.maxMorphNormals;ia++)ca=
|
|
|
+Ia+ia,0<=ta[ca]&&d.numSupportedMorphNormals++;d.uniformsList=[];for(var ob in d.__webglShader.uniforms){var sa=d.program.uniforms[ob];sa&&d.uniformsList.push([d.__webglShader.uniforms[ob],sa])}d.needsUpdate=!1}d.morphTargets&&!e.__webglMorphTargetInfluences&&(e.__webglMorphTargetInfluences=new Float32Array(H.maxMorphTargets));var ba=!1,aa=!1,$=!1,bb=d.program,qa=bb.uniforms,J=d.__webglShader.uniforms;bb.id!==wb&&(m.useProgram(bb.program),wb=bb.id,$=aa=ba=!0);d.id!==xb&&(-1===xb&&($=!0),xb=d.id,aa=
|
|
|
!0);if(ba||a!==Yb)m.uniformMatrix4fv(qa.projectionMatrix,!1,a.projectionMatrix.elements),Oa&&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&&(Ta.setFromMatrixPosition(a.matrixWorld),m.uniform3f(qa.cameraPosition,Ta.x,Ta.y,Ta.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 ya=E();m.uniform1i(qa.boneTexture,ya);H.setTexture(e.skeleton.boneTexture,ya)}null!==qa.boneTextureWidth&&m.uniform1i(qa.boneTextureWidth,
|
|
|
+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 xa=E();m.uniform1i(qa.boneTexture,xa);H.setTexture(e.skeleton.boneTexture,xa)}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(aa){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(hc){var $=!0,oa,ja,la,ua=0,Na=0,ub=0,Da,gb,lb,Ka,mb,Ca,za=Ac,Gb=za.directional.colors,tb=za.directional.positions,Rb=za.point.colors,Sa=za.point.positions,Fb=za.point.distances,bb=za.spot.colors,db=za.spot.positions,Nb=za.spot.distances,Sb=za.spot.directions,hb=za.spot.anglesCos,ib=za.spot.exponents,yb=za.hemi.skyColors,zb=za.hemi.groundColors,Hb=za.hemi.positions,Wa=0,Fa=0,Ua=0,Pa=0,ma=0,va=0,C=0,La=0,Va=0,Ab=0,jb=0,Xa=0;oa=0;for(ja=b.length;oa<ja;oa++)la=b[oa],la.onlyShadow||(Da=la.color,
|
|
|
-Ka=la.intensity,Ca=la.distance,la instanceof THREE.AmbientLight?la.visible&&(H.gammaInput?(ua+=Da.r*Da.r,Na+=Da.g*Da.g,ub+=Da.b*Da.b):(ua+=Da.r,Na+=Da.g,ub+=Da.b)):la instanceof THREE.DirectionalLight?(ma+=1,la.visible&&(xa.setFromMatrixPosition(la.matrixWorld),Ta.setFromMatrixPosition(la.target.matrixWorld),xa.sub(Ta),xa.normalize(),Va=3*Wa,tb[Va]=xa.x,tb[Va+1]=xa.y,tb[Va+2]=xa.z,H.gammaInput?y(Gb,Va,Da,Ka*Ka):D(Gb,Va,Da,Ka),Wa+=1)):la instanceof THREE.PointLight?(va+=1,la.visible&&(Ab=3*Fa,H.gammaInput?
|
|
|
-y(Rb,Ab,Da,Ka*Ka):D(Rb,Ab,Da,Ka),Ta.setFromMatrixPosition(la.matrixWorld),Sa[Ab]=Ta.x,Sa[Ab+1]=Ta.y,Sa[Ab+2]=Ta.z,Fb[Fa]=Ca,Fa+=1)):la instanceof THREE.SpotLight?(C+=1,la.visible&&(jb=3*Ua,H.gammaInput?y(bb,jb,Da,Ka*Ka):D(bb,jb,Da,Ka),xa.setFromMatrixPosition(la.matrixWorld),db[jb]=xa.x,db[jb+1]=xa.y,db[jb+2]=xa.z,Nb[Ua]=Ca,Ta.setFromMatrixPosition(la.target.matrixWorld),xa.sub(Ta),xa.normalize(),Sb[jb]=xa.x,Sb[jb+1]=xa.y,Sb[jb+2]=xa.z,hb[Ua]=Math.cos(la.angle),ib[Ua]=la.exponent,Ua+=1)):la instanceof
|
|
|
-THREE.HemisphereLight&&(La+=1,la.visible&&(xa.setFromMatrixPosition(la.matrixWorld),xa.normalize(),Xa=3*Pa,Hb[Xa]=xa.x,Hb[Xa+1]=xa.y,Hb[Xa+2]=xa.z,gb=la.color,lb=la.groundColor,H.gammaInput?(mb=Ka*Ka,y(yb,Xa,gb,mb),y(zb,Xa,lb,mb)):(D(yb,Xa,gb,Ka),D(zb,Xa,lb,Ka)),Pa+=1)));oa=3*Wa;for(ja=Math.max(Gb.length,3*ma);oa<ja;oa++)Gb[oa]=0;oa=3*Fa;for(ja=Math.max(Rb.length,3*va);oa<ja;oa++)Rb[oa]=0;oa=3*Ua;for(ja=Math.max(bb.length,3*C);oa<ja;oa++)bb[oa]=0;oa=3*Pa;for(ja=Math.max(yb.length,3*La);oa<ja;oa++)yb[oa]=
|
|
|
-0;oa=3*Pa;for(ja=Math.max(zb.length,3*La);oa<ja;oa++)zb[oa]=0;za.directional.length=Wa;za.point.length=Fa;za.spot.length=Ua;za.hemi.length=Pa;za.ambient[0]=ua;za.ambient[1]=Na;za.ambient[2]=ub;hc=!1}if($){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(hc){var $=!0,oa,ja,la,ua=0,Na=0,ub=0,Da,hb,mb,Ka,nb,Ca,ya=Ac,Gb=ya.directional.colors,tb=ya.directional.positions,Rb=ya.point.colors,Sa=ya.point.positions,Fb=ya.point.distances,cb=ya.spot.colors,eb=ya.spot.positions,Nb=ya.spot.distances,Sb=ya.spot.directions,ib=ya.spot.anglesCos,jb=ya.spot.exponents,yb=ya.hemi.skyColors,zb=ya.hemi.groundColors,Hb=ya.hemi.positions,Wa=0,Fa=0,Ua=0,Pa=0,ma=0,va=0,C=0,La=0,Va=0,Ab=0,kb=0,Xa=0;oa=0;for(ja=b.length;oa<ja;oa++)la=b[oa],la.onlyShadow||(Da=la.color,
|
|
|
+Ka=la.intensity,Ca=la.distance,la instanceof THREE.AmbientLight?la.visible&&(H.gammaInput?(ua+=Da.r*Da.r,Na+=Da.g*Da.g,ub+=Da.b*Da.b):(ua+=Da.r,Na+=Da.g,ub+=Da.b)):la instanceof THREE.DirectionalLight?(ma+=1,la.visible&&(Ba.setFromMatrixPosition(la.matrixWorld),Ta.setFromMatrixPosition(la.target.matrixWorld),Ba.sub(Ta),Ba.normalize(),Va=3*Wa,tb[Va]=Ba.x,tb[Va+1]=Ba.y,tb[Va+2]=Ba.z,H.gammaInput?y(Gb,Va,Da,Ka*Ka):D(Gb,Va,Da,Ka),Wa+=1)):la instanceof THREE.PointLight?(va+=1,la.visible&&(Ab=3*Fa,H.gammaInput?
|
|
|
+y(Rb,Ab,Da,Ka*Ka):D(Rb,Ab,Da,Ka),Ta.setFromMatrixPosition(la.matrixWorld),Sa[Ab]=Ta.x,Sa[Ab+1]=Ta.y,Sa[Ab+2]=Ta.z,Fb[Fa]=Ca,Fa+=1)):la instanceof THREE.SpotLight?(C+=1,la.visible&&(kb=3*Ua,H.gammaInput?y(cb,kb,Da,Ka*Ka):D(cb,kb,Da,Ka),Ba.setFromMatrixPosition(la.matrixWorld),eb[kb]=Ba.x,eb[kb+1]=Ba.y,eb[kb+2]=Ba.z,Nb[Ua]=Ca,Ta.setFromMatrixPosition(la.target.matrixWorld),Ba.sub(Ta),Ba.normalize(),Sb[kb]=Ba.x,Sb[kb+1]=Ba.y,Sb[kb+2]=Ba.z,ib[Ua]=Math.cos(la.angle),jb[Ua]=la.exponent,Ua+=1)):la instanceof
|
|
|
+THREE.HemisphereLight&&(La+=1,la.visible&&(Ba.setFromMatrixPosition(la.matrixWorld),Ba.normalize(),Xa=3*Pa,Hb[Xa]=Ba.x,Hb[Xa+1]=Ba.y,Hb[Xa+2]=Ba.z,hb=la.color,mb=la.groundColor,H.gammaInput?(nb=Ka*Ka,y(yb,Xa,hb,nb),y(zb,Xa,mb,nb)):(D(yb,Xa,hb,Ka),D(zb,Xa,mb,Ka)),Pa+=1)));oa=3*Wa;for(ja=Math.max(Gb.length,3*ma);oa<ja;oa++)Gb[oa]=0;oa=3*Fa;for(ja=Math.max(Rb.length,3*va);oa<ja;oa++)Rb[oa]=0;oa=3*Ua;for(ja=Math.max(cb.length,3*C);oa<ja;oa++)cb[oa]=0;oa=3*Pa;for(ja=Math.max(yb.length,3*La);oa<ja;oa++)yb[oa]=
|
|
|
+0;oa=3*Pa;for(ja=Math.max(zb.length,3*La);oa<ja;oa++)zb[oa]=0;ya.directional.length=Wa;ya.point.length=Fa;ya.spot.length=Ua;ya.hemi.length=Pa;ya.ambient[0]=ua;ya.ambient[1]=Na;ya.ambient[2]=ub;hc=!1}if($){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;F(J,!0)}else F(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 Qa;d.map?Qa=d.map:d.specularMap?Qa=d.specularMap:d.normalMap?Qa=d.normalMap:d.bumpMap?Qa=d.bumpMap:d.alphaMap&&
|
|
|
(Qa=d.alphaMap);if(void 0!==Qa){var Ya=Qa.offset,Za=Qa.repeat;J.offsetRepeat.value.set(Ya.x,Ya.y,Za.x,Za.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=O.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 Ib=0,vb=0,Pb=b.length;vb<Pb;vb++){var z=b[vb];z.castShadow&&(z instanceof THREE.SpotLight||z instanceof THREE.DirectionalLight&&!z.shadowCascade)&&(J.shadowMap.value[Ib]=z.shadowMap,J.shadowMapSize.value[Ib]=z.shadowMapSize,J.shadowMatrix.value[Ib]=z.shadowMatrix,J.shadowDarkness.value[Ib]=z.shadowDarkness,J.shadowBias.value[Ib]=z.shadowBias,Ib++)}for(var Tb=d.uniformsList,Ma,Aa,eb,sb=0,Qb=Tb.length;sb<Qb;sb++){var fa=
|
|
|
+(J.opacity.value=d.opacity);if(e.receiveShadow&&!d._shadowPass&&J.shadowMatrix)for(var Ib=0,vb=0,Pb=b.length;vb<Pb;vb++){var z=b[vb];z.castShadow&&(z instanceof THREE.SpotLight||z instanceof THREE.DirectionalLight&&!z.shadowCascade)&&(J.shadowMap.value[Ib]=z.shadowMap,J.shadowMapSize.value[Ib]=z.shadowMapSize,J.shadowMatrix.value[Ib]=z.shadowMatrix,J.shadowDarkness.value[Ib]=z.shadowDarkness,J.shadowBias.value[Ib]=z.shadowBias,Ib++)}for(var Tb=d.uniformsList,Ma,za,fb,sb=0,Qb=Tb.length;sb<Qb;sb++){var fa=
|
|
|
Tb[sb][0];if(!1!==fa.needsUpdate){var Eb=fa.type,R=fa.value,ga=Tb[sb][1];switch(Eb){case "1i":m.uniform1i(ga,R);break;case "1f":m.uniform1f(ga,R);break;case "2f":m.uniform2f(ga,R[0],R[1]);break;case "3f":m.uniform3f(ga,R[0],R[1],R[2]);break;case "4f":m.uniform4f(ga,R[0],R[1],R[2],R[3]);break;case "1iv":m.uniform1iv(ga,R);break;case "3iv":m.uniform3iv(ga,R);break;case "1fv":m.uniform1fv(ga,R);break;case "2fv":m.uniform2fv(ga,R);break;case "3fv":m.uniform3fv(ga,R);break;case "4fv":m.uniform4fv(ga,R);
|
|
|
break;case "Matrix3fv":m.uniformMatrix3fv(ga,!1,R);break;case "Matrix4fv":m.uniformMatrix4fv(ga,!1,R);break;case "i":m.uniform1i(ga,R);break;case "f":m.uniform1f(ga,R);break;case "v2":m.uniform2f(ga,R.x,R.y);break;case "v3":m.uniform3f(ga,R.x,R.y,R.z);break;case "v4":m.uniform4f(ga,R.x,R.y,R.z,R.w);break;case "c":m.uniform3f(ga,R.r,R.g,R.b);break;case "iv1":m.uniform1iv(ga,R);break;case "iv":m.uniform3iv(ga,R);break;case "fv1":m.uniform1fv(ga,R);break;case "fv":m.uniform3fv(ga,R);break;case "v2v":void 0===
|
|
|
-fa._array&&(fa._array=new Float32Array(2*R.length));for(var M=0,Ba=R.length;M<Ba;M++)eb=2*M,fa._array[eb]=R[M].x,fa._array[eb+1]=R[M].y;m.uniform2fv(ga,fa._array);break;case "v3v":void 0===fa._array&&(fa._array=new Float32Array(3*R.length));M=0;for(Ba=R.length;M<Ba;M++)eb=3*M,fa._array[eb]=R[M].x,fa._array[eb+1]=R[M].y,fa._array[eb+2]=R[M].z;m.uniform3fv(ga,fa._array);break;case "v4v":void 0===fa._array&&(fa._array=new Float32Array(4*R.length));M=0;for(Ba=R.length;M<Ba;M++)eb=4*M,fa._array[eb]=R[M].x,
|
|
|
-fa._array[eb+1]=R[M].y,fa._array[eb+2]=R[M].z,fa._array[eb+3]=R[M].w;m.uniform4fv(ga,fa._array);break;case "m3":m.uniformMatrix3fv(ga,!1,R.elements);break;case "m3v":void 0===fa._array&&(fa._array=new Float32Array(9*R.length));M=0;for(Ba=R.length;M<Ba;M++)R[M].flattenToArrayOffset(fa._array,9*M);m.uniformMatrix3fv(ga,!1,fa._array);break;case "m4":m.uniformMatrix4fv(ga,!1,R.elements);break;case "m4v":void 0===fa._array&&(fa._array=new Float32Array(16*R.length));M=0;for(Ba=R.length;M<Ba;M++)R[M].flattenToArrayOffset(fa._array,
|
|
|
-16*M);m.uniformMatrix4fv(ga,!1,fa._array);break;case "t":Ma=R;Aa=E();m.uniform1i(ga,Aa);if(!Ma)continue;if(Ma instanceof THREE.CubeTexture||Ma.image instanceof Array&&6===Ma.image.length){var wa=Ma,ac=Aa;if(6===wa.image.length)if(wa.needsUpdate){wa.image.__webglTextureCube||(wa.addEventListener("dispose",kc),wa.image.__webglTextureCube=m.createTexture(),H.info.memory.textures++);m.activeTexture(m.TEXTURE0+ac);m.bindTexture(m.TEXTURE_CUBE_MAP,wa.image.__webglTextureCube);m.pixelStorei(m.UNPACK_FLIP_Y_WEBGL,
|
|
|
-wa.flipY);for(var Ob=wa instanceof THREE.CompressedTexture,Ub=wa.image[0]instanceof THREE.DataTexture,pb=[],Ga=0;6>Ga;Ga++)pb[Ga]=!H.autoScaleCubemaps||Ob||Ub?Ub?wa.image[Ga].image:wa.image[Ga]:N(wa.image[Ga],Uc);var na=pb[0],bc=THREE.Math.isPowerOfTwo(na.width)&&THREE.Math.isPowerOfTwo(na.height),fb=T(wa.format),Jb=T(wa.type);L(m.TEXTURE_CUBE_MAP,wa,bc);for(Ga=0;6>Ga;Ga++)if(Ob)for(var kb,cc=pb[Ga].mipmaps,ha=0,Zb=cc.length;ha<Zb;ha++)kb=cc[ha],wa.format!==THREE.RGBAFormat&&wa.format!==THREE.RGBFormat?
|
|
|
--1<Kc().indexOf(fb)?m.compressedTexImage2D(m.TEXTURE_CUBE_MAP_POSITIVE_X+Ga,ha,fb,kb.width,kb.height,0,kb.data):console.warn("Attempt to load unsupported compressed texture format"):m.texImage2D(m.TEXTURE_CUBE_MAP_POSITIVE_X+Ga,ha,fb,kb.width,kb.height,0,fb,Jb,kb.data);else Ub?m.texImage2D(m.TEXTURE_CUBE_MAP_POSITIVE_X+Ga,0,fb,pb[Ga].width,pb[Ga].height,0,fb,Jb,pb[Ga].data):m.texImage2D(m.TEXTURE_CUBE_MAP_POSITIVE_X+Ga,0,fb,fb,Jb,pb[Ga]);wa.generateMipmaps&&bc&&m.generateMipmap(m.TEXTURE_CUBE_MAP);
|
|
|
-wa.needsUpdate=!1;if(wa.onUpdate)wa.onUpdate()}else m.activeTexture(m.TEXTURE0+ac),m.bindTexture(m.TEXTURE_CUBE_MAP,wa.image.__webglTextureCube)}else if(Ma instanceof THREE.WebGLRenderTargetCube){var $b=Ma;m.activeTexture(m.TEXTURE0+Aa);m.bindTexture(m.TEXTURE_CUBE_MAP,$b.__webglTexture)}else H.setTexture(Ma,Aa);break;case "tv":void 0===fa._array&&(fa._array=[]);M=0;for(Ba=fa.value.length;M<Ba;M++)fa._array[M]=E();m.uniform1iv(ga,fa._array);M=0;for(Ba=fa.value.length;M<Ba;M++)Ma=fa.value[M],Aa=fa._array[M],
|
|
|
-Ma&&H.setTexture(Ma,Aa);break;default:console.warn("THREE.WebGLRenderer: Unknown uniform type: "+Eb)}}}}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 ta}function F(a,b){a.ambientLightColor.needsUpdate=b;a.directionalLightColor.needsUpdate=b;a.directionalLightDirection.needsUpdate=b;a.pointLightColor.needsUpdate=
|
|
|
+fa._array&&(fa._array=new Float32Array(2*R.length));for(var M=0,Aa=R.length;M<Aa;M++)fb=2*M,fa._array[fb]=R[M].x,fa._array[fb+1]=R[M].y;m.uniform2fv(ga,fa._array);break;case "v3v":void 0===fa._array&&(fa._array=new Float32Array(3*R.length));M=0;for(Aa=R.length;M<Aa;M++)fb=3*M,fa._array[fb]=R[M].x,fa._array[fb+1]=R[M].y,fa._array[fb+2]=R[M].z;m.uniform3fv(ga,fa._array);break;case "v4v":void 0===fa._array&&(fa._array=new Float32Array(4*R.length));M=0;for(Aa=R.length;M<Aa;M++)fb=4*M,fa._array[fb]=R[M].x,
|
|
|
+fa._array[fb+1]=R[M].y,fa._array[fb+2]=R[M].z,fa._array[fb+3]=R[M].w;m.uniform4fv(ga,fa._array);break;case "m3":m.uniformMatrix3fv(ga,!1,R.elements);break;case "m3v":void 0===fa._array&&(fa._array=new Float32Array(9*R.length));M=0;for(Aa=R.length;M<Aa;M++)R[M].flattenToArrayOffset(fa._array,9*M);m.uniformMatrix3fv(ga,!1,fa._array);break;case "m4":m.uniformMatrix4fv(ga,!1,R.elements);break;case "m4v":void 0===fa._array&&(fa._array=new Float32Array(16*R.length));M=0;for(Aa=R.length;M<Aa;M++)R[M].flattenToArrayOffset(fa._array,
|
|
|
+16*M);m.uniformMatrix4fv(ga,!1,fa._array);break;case "t":Ma=R;za=E();m.uniform1i(ga,za);if(!Ma)continue;if(Ma instanceof THREE.CubeTexture||Ma.image instanceof Array&&6===Ma.image.length){var wa=Ma,ac=za;if(6===wa.image.length)if(wa.needsUpdate){wa.image.__webglTextureCube||(wa.addEventListener("dispose",kc),wa.image.__webglTextureCube=m.createTexture(),H.info.memory.textures++);m.activeTexture(m.TEXTURE0+ac);m.bindTexture(m.TEXTURE_CUBE_MAP,wa.image.__webglTextureCube);m.pixelStorei(m.UNPACK_FLIP_Y_WEBGL,
|
|
|
+wa.flipY);for(var Ob=wa instanceof THREE.CompressedTexture,Ub=wa.image[0]instanceof THREE.DataTexture,pb=[],Ga=0;6>Ga;Ga++)pb[Ga]=!H.autoScaleCubemaps||Ob||Ub?Ub?wa.image[Ga].image:wa.image[Ga]:N(wa.image[Ga],Uc);var na=pb[0],bc=THREE.Math.isPowerOfTwo(na.width)&&THREE.Math.isPowerOfTwo(na.height),gb=T(wa.format),Jb=T(wa.type);L(m.TEXTURE_CUBE_MAP,wa,bc);for(Ga=0;6>Ga;Ga++)if(Ob)for(var lb,cc=pb[Ga].mipmaps,ha=0,Zb=cc.length;ha<Zb;ha++)lb=cc[ha],wa.format!==THREE.RGBAFormat&&wa.format!==THREE.RGBFormat?
|
|
|
+-1<Kc().indexOf(gb)?m.compressedTexImage2D(m.TEXTURE_CUBE_MAP_POSITIVE_X+Ga,ha,gb,lb.width,lb.height,0,lb.data):console.warn("Attempt to load unsupported compressed texture format"):m.texImage2D(m.TEXTURE_CUBE_MAP_POSITIVE_X+Ga,ha,gb,lb.width,lb.height,0,gb,Jb,lb.data);else Ub?m.texImage2D(m.TEXTURE_CUBE_MAP_POSITIVE_X+Ga,0,gb,pb[Ga].width,pb[Ga].height,0,gb,Jb,pb[Ga].data):m.texImage2D(m.TEXTURE_CUBE_MAP_POSITIVE_X+Ga,0,gb,gb,Jb,pb[Ga]);wa.generateMipmaps&&bc&&m.generateMipmap(m.TEXTURE_CUBE_MAP);
|
|
|
+wa.needsUpdate=!1;if(wa.onUpdate)wa.onUpdate()}else m.activeTexture(m.TEXTURE0+ac),m.bindTexture(m.TEXTURE_CUBE_MAP,wa.image.__webglTextureCube)}else if(Ma instanceof THREE.WebGLRenderTargetCube){var $b=Ma;m.activeTexture(m.TEXTURE0+za);m.bindTexture(m.TEXTURE_CUBE_MAP,$b.__webglTexture)}else H.setTexture(Ma,za);break;case "tv":void 0===fa._array&&(fa._array=[]);M=0;for(Aa=fa.value.length;M<Aa;M++)fa._array[M]=E();m.uniform1iv(ga,fa._array);M=0;for(Aa=fa.value.length;M<Aa;M++)Ma=fa.value[M],za=fa._array[M],
|
|
|
+Ma&&H.setTexture(Ma,za);break;default:console.warn("THREE.WebGLRenderer: Unknown uniform type: "+Eb)}}}}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 bb}function F(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=Mb;a>=Lc&&console.warn("WebGLRenderer: trying to use "+a+" texture units while this GPU supports only "+
|
|
|
Lc);Mb+=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 D(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 G(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 L(a,b,c){c?
|
|
|
-(m.texParameteri(a,m.TEXTURE_WRAP_S,T(b.wrapS)),m.texParameteri(a,m.TEXTURE_WRAP_T,T(b.wrapT)),m.texParameteri(a,m.TEXTURE_MAG_FILTER,T(b.magFilter)),m.texParameteri(a,m.TEXTURE_MIN_FILTER,T(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=ua.get("EXT_texture_filter_anisotropic"))&&b.type!==THREE.FloatType&&(1<b.anisotropy||
|
|
|
+(m.texParameteri(a,m.TEXTURE_WRAP_S,T(b.wrapS)),m.texParameteri(a,m.TEXTURE_WRAP_T,T(b.wrapT)),m.texParameteri(a,m.TEXTURE_MAG_FILTER,T(b.magFilter)),m.texParameteri(a,m.TEXTURE_MIN_FILTER,T(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=sa.get("EXT_texture_filter_anisotropic"))&&b.type!==THREE.FloatType&&(1<b.anisotropy||
|
|
|
b.__oldAnisotropy)&&(m.texParameterf(a,c.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(b.anisotropy,H.getMaxAnisotropy())),b.__oldAnisotropy=b.anisotropy)}function N(a,b){if(a.width>b||a.height>b){var c=b/Math.max(a.width,a.height),d=document.createElement("canvas");d.width=Math.floor(a.width*c);d.height=Math.floor(a.height*c);d.getContext("2d").drawImage(a,0,0,a.width,a.height,0,0,d.width,d.height);console.log("THREE.WebGLRenderer:",a,"is too big ("+a.width+"x"+a.height+"). Resized to "+d.width+"x"+d.height+
|
|
|
".");return d}return a}function X(a,b){m.bindRenderbuffer(m.RENDERBUFFER,a);b.depthBuffer&&!b.stencilBuffer?(m.renderbufferStorage(m.RENDERBUFFER,m.DEPTH_COMPONENT16,b.width,b.height),m.framebufferRenderbuffer(m.FRAMEBUFFER,m.DEPTH_ATTACHMENT,m.RENDERBUFFER,a)):b.depthBuffer&&b.stencilBuffer?(m.renderbufferStorage(m.RENDERBUFFER,m.DEPTH_STENCIL,b.width,b.height),m.framebufferRenderbuffer(m.FRAMEBUFFER,m.DEPTH_STENCIL_ATTACHMENT,m.RENDERBUFFER,a)):m.renderbufferStorage(m.RENDERBUFFER,m.RGBA4,b.width,
|
|
|
b.height)}function U(a){a instanceof THREE.WebGLRenderTargetCube?(m.bindTexture(m.TEXTURE_CUBE_MAP,a.__webglTexture),m.generateMipmap(m.TEXTURE_CUBE_MAP),m.bindTexture(m.TEXTURE_CUBE_MAP,null)):(m.bindTexture(m.TEXTURE_2D,a.__webglTexture),m.generateMipmap(m.TEXTURE_2D),m.bindTexture(m.TEXTURE_2D,null))}function P(a){return a===THREE.NearestFilter||a===THREE.NearestMipMapNearestFilter||a===THREE.NearestMipMapLinearFilter?m.NEAREST:m.LINEAR}function T(a){var b;if(a===THREE.RepeatWrapping)return m.REPEAT;
|
|
|
if(a===THREE.ClampToEdgeWrapping)return m.CLAMP_TO_EDGE;if(a===THREE.MirroredRepeatWrapping)return m.MIRRORED_REPEAT;if(a===THREE.NearestFilter)return m.NEAREST;if(a===THREE.NearestMipMapNearestFilter)return m.NEAREST_MIPMAP_NEAREST;if(a===THREE.NearestMipMapLinearFilter)return m.NEAREST_MIPMAP_LINEAR;if(a===THREE.LinearFilter)return m.LINEAR;if(a===THREE.LinearMipMapNearestFilter)return m.LINEAR_MIPMAP_NEAREST;if(a===THREE.LinearMipMapLinearFilter)return m.LINEAR_MIPMAP_LINEAR;if(a===THREE.UnsignedByteType)return m.UNSIGNED_BYTE;
|
|
|
if(a===THREE.UnsignedShort4444Type)return m.UNSIGNED_SHORT_4_4_4_4;if(a===THREE.UnsignedShort5551Type)return m.UNSIGNED_SHORT_5_5_5_1;if(a===THREE.UnsignedShort565Type)return m.UNSIGNED_SHORT_5_6_5;if(a===THREE.ByteType)return m.BYTE;if(a===THREE.ShortType)return m.SHORT;if(a===THREE.UnsignedShortType)return m.UNSIGNED_SHORT;if(a===THREE.IntType)return m.INT;if(a===THREE.UnsignedIntType)return m.UNSIGNED_INT;if(a===THREE.FloatType)return m.FLOAT;if(a===THREE.AlphaFormat)return m.ALPHA;if(a===THREE.RGBFormat)return m.RGB;
|
|
|
if(a===THREE.RGBAFormat)return m.RGBA;if(a===THREE.LuminanceFormat)return m.LUMINANCE;if(a===THREE.LuminanceAlphaFormat)return m.LUMINANCE_ALPHA;if(a===THREE.AddEquation)return m.FUNC_ADD;if(a===THREE.SubtractEquation)return m.FUNC_SUBTRACT;if(a===THREE.ReverseSubtractEquation)return m.FUNC_REVERSE_SUBTRACT;if(a===THREE.ZeroFactor)return m.ZERO;if(a===THREE.OneFactor)return m.ONE;if(a===THREE.SrcColorFactor)return m.SRC_COLOR;if(a===THREE.OneMinusSrcColorFactor)return m.ONE_MINUS_SRC_COLOR;if(a===
|
|
|
-THREE.SrcAlphaFactor)return m.SRC_ALPHA;if(a===THREE.OneMinusSrcAlphaFactor)return m.ONE_MINUS_SRC_ALPHA;if(a===THREE.DstAlphaFactor)return m.DST_ALPHA;if(a===THREE.OneMinusDstAlphaFactor)return m.ONE_MINUS_DST_ALPHA;if(a===THREE.DstColorFactor)return m.DST_COLOR;if(a===THREE.OneMinusDstColorFactor)return m.ONE_MINUS_DST_COLOR;if(a===THREE.SrcAlphaSaturateFactor)return m.SRC_ALPHA_SATURATE;b=ua.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=ua.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=ua.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 O=void 0!==a.canvas?a.canvas:document.createElement("canvas"),sa=void 0!==a.context?a.context:null,Y=void 0!==a.precision?a.precision:"highp",ca=void 0!==a.alpha?a.alpha:!1,ia=void 0!==a.depth?a.depth:!0,ta=void 0!==a.stencil?
|
|
|
-a.stencil:!0,I=void 0!==a.antialias?a.antialias:!1,ja=void 0!==a.premultipliedAlpha?a.premultipliedAlpha:!0,ya=void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:!1,Oa=void 0!==a.logarithmicDepthBuffer?a.logarithmicDepthBuffer:!1,S=new THREE.Color(0),Ja=0,Ea=[],cb={},Ia=[],nb=[],ob=[];this.domElement=O;this.context=null;this.devicePixelRatio=void 0!==a.devicePixelRatio?a.devicePixelRatio:void 0!==self.devicePixelRatio?self.devicePixelRatio:1;this.sortObjects=this.autoClearStencil=this.autoClearDepth=
|
|
|
+THREE.SrcAlphaFactor)return m.SRC_ALPHA;if(a===THREE.OneMinusSrcAlphaFactor)return m.ONE_MINUS_SRC_ALPHA;if(a===THREE.DstAlphaFactor)return m.DST_ALPHA;if(a===THREE.OneMinusDstAlphaFactor)return m.ONE_MINUS_DST_ALPHA;if(a===THREE.DstColorFactor)return m.DST_COLOR;if(a===THREE.OneMinusDstColorFactor)return m.ONE_MINUS_DST_COLOR;if(a===THREE.SrcAlphaSaturateFactor)return m.SRC_ALPHA_SATURATE;b=sa.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=sa.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=sa.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 O=void 0!==a.canvas?a.canvas:document.createElement("canvas"),ta=void 0!==a.context?a.context:null,Y=void 0!==a.precision?a.precision:"highp",ca=void 0!==a.alpha?a.alpha:!1,ia=void 0!==a.depth?a.depth:!0,xa=void 0!==a.stencil?
|
|
|
+a.stencil:!0,I=void 0!==a.antialias?a.antialias:!1,ua=void 0!==a.premultipliedAlpha?a.premultipliedAlpha:!0,ja=void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:!1,Oa=void 0!==a.logarithmicDepthBuffer?a.logarithmicDepthBuffer:!1,S=new THREE.Color(0),Ja=0,Ea=[],db={},Ia=[],bb=[],ob=[];this.domElement=O;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,Ra=[],wb=null,ac=
|
|
|
-null,xb=-1,Na=null,Yb=null,Mb=0,Nb=-1,vb=-1,Ob=-1,Pb=-1,sb=-1,Qb=-1,Zb=-1,$b=-1,Nc=null,Oc=null,Pc=null,Mc=null,lb=0,mb=0,Eb=O.width,lc=O.height,pc=0,qc=0,tb=new Uint8Array(16),gb=new Uint8Array(16),Bc=new THREE.Frustum,xc=new THREE.Matrix4,Dc=new THREE.Matrix4,Ta=new THREE.Vector3,xa=new THREE.Vector3,hc=!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:ca,depth:ia,stencil:ta,antialias:I,premultipliedAlpha:ja,preserveDrawingBuffer:ya};m=sa||O.getContext("webgl",Qc)||O.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 ua=new THREE.WebGLExtensions(m);Oa&&ua.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(lb,mb,Eb,lc);m.clearColor(S.r,S.g,S.b,Ja);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),
|
|
|
-gc=0<Wc,tc=gc&&ua.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=function(){var a;return function(){if(void 0!==a)return a;a=[];if(ua.get("WEBGL_compressed_texture_pvrtc")||
|
|
|
-ua.get("WEBGL_compressed_texture_s3tc"))for(var b=m.getParameter(m.COMPRESSED_TEXTURE_FORMATS),c=0;c<b.length;c++)a.push(b[c]);return a}}(),bd=0<Yc.precision&&0<$c.precision,Rc=0<Zc.precision&&0<ad.precision;"highp"!==Y||bd||(Rc?(Y="mediump",console.warn("THREE.WebGLRenderer: highp not supported, using mediump.")):(Y="lowp",console.warn("THREE.WebGLRenderer: highp and mediump not supported, using lowp.")));"mediump"!==Y||Rc||(Y="lowp",console.warn("THREE.WebGLRenderer: mediump not supported, using lowp."));
|
|
|
-this.getContext=function(){return m};this.supportsVertexTextures=function(){return gc};this.supportsFloatTextures=function(){return ua.get("OES_texture_float")};this.supportsStandardDerivatives=function(){return ua.get("OES_standard_derivatives")};this.supportsCompressedTextureS3TC=function(){return ua.get("WEBGL_compressed_texture_s3tc")};this.supportsCompressedTexturePVRTC=function(){return ua.get("WEBGL_compressed_texture_pvrtc")};this.supportsBlendMinMax=function(){return ua.get("EXT_blend_minmax")};
|
|
|
-this.getMaxAnisotropy=function(){var a;return function(){if(void 0!==a)return a;var b=ua.get("EXT_texture_filter_anisotropic");return a=null!==b?m.getParameter(b.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0}}();this.getPrecision=function(){return Y};this.setSize=function(a,b,c){O.width=a*this.devicePixelRatio;O.height=b*this.devicePixelRatio;!1!==c&&(O.style.width=a+"px",O.style.height=b+"px");this.setViewport(0,0,a,b)};this.setViewport=function(a,b,c,d){lb=a*this.devicePixelRatio;mb=b*this.devicePixelRatio;
|
|
|
-Eb=c*this.devicePixelRatio;lc=d*this.devicePixelRatio;m.viewport(lb,mb,Eb,lc)};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){S.set(a);Ja=void 0!==b?b:1;m.clearColor(S.r,S.g,S.b,Ja)};this.setClearColorHex=function(a,b){console.warn("THREE.WebGLRenderer: .setClearColorHex() is being removed. Use .setClearColor() instead.");
|
|
|
-this.setClearColor(a,b)};this.getClearColor=function(){return S};this.getClearAlpha=function(){return Ja};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,Ea,cb,Ia);this.renderPluginsPost.push(a)};this.addPrePlugin=function(a){a.init(this,Ea,cb,Ia);this.renderPluginsPre.push(a)};this.resetGLState=function(){Yb=wb=null;xb=Na=vb=Nb=$b=Zb=Ob=-1;hc=!0};this.updateShadowMap=function(a,b){wb=null;xb=Na=$b=Zb=Ob=-1;hc=!0;vb=Nb=-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 cb[a.id];else if(a instanceof THREE.ImmediateRenderObject||a.immediateRenderCallback)for(var b=Ia,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=
|
|
|
-Fb[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 Fb[a.id]}else Sc(a);Na=-1},kc=function(a){a=a.target;a.removeEventListener("dispose",kc);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(" "),
|
|
|
+null,xb=-1,Na=null,Yb=null,Mb=0,Nb=-1,vb=-1,Ob=-1,Pb=-1,sb=-1,Qb=-1,Zb=-1,$b=-1,Nc=null,Oc=null,Pc=null,Mc=null,mb=0,nb=0,Eb=O.width,lc=O.height,pc=0,qc=0,tb=new Uint8Array(16),hb=new Uint8Array(16),Bc=new THREE.Frustum,xc=new THREE.Matrix4,Dc=new THREE.Matrix4,Ta=new THREE.Vector3,Ba=new THREE.Vector3,hc=!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:ca,depth:ia,stencil:xa,antialias:I,premultipliedAlpha:ua,preserveDrawingBuffer:ja};m=ta||O.getContext("webgl",Qc)||O.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 sa=new THREE.WebGLExtensions(m);sa.get("OES_texture_float");
|
|
|
+sa.get("OES_texture_float_linear");sa.get("OES_standard_derivatives");Oa&&sa.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(mb,nb,Eb,lc);m.clearColor(S.r,S.g,S.b,Ja);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),gc=0<Wc,tc=gc&&sa.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=
|
|
|
+function(){var a;return function(){if(void 0!==a)return a;a=[];if(sa.get("WEBGL_compressed_texture_pvrtc")||sa.get("WEBGL_compressed_texture_s3tc"))for(var b=m.getParameter(m.COMPRESSED_TEXTURE_FORMATS),c=0;c<b.length;c++)a.push(b[c]);return a}}(),bd=0<Yc.precision&&0<$c.precision,Rc=0<Zc.precision&&0<ad.precision;"highp"!==Y||bd||(Rc?(Y="mediump",console.warn("THREE.WebGLRenderer: highp not supported, using mediump.")):(Y="lowp",console.warn("THREE.WebGLRenderer: highp and mediump not supported, using lowp.")));
|
|
|
+"mediump"!==Y||Rc||(Y="lowp",console.warn("THREE.WebGLRenderer: mediump not supported, using lowp."));this.getContext=function(){return m};this.supportsVertexTextures=function(){return gc};this.supportsFloatTextures=function(){return sa.get("OES_texture_float")};this.supportsStandardDerivatives=function(){return sa.get("OES_standard_derivatives")};this.supportsCompressedTextureS3TC=function(){return sa.get("WEBGL_compressed_texture_s3tc")};this.supportsCompressedTexturePVRTC=function(){return sa.get("WEBGL_compressed_texture_pvrtc")};
|
|
|
+this.supportsBlendMinMax=function(){return sa.get("EXT_blend_minmax")};this.getMaxAnisotropy=function(){var a;return function(){if(void 0!==a)return a;var b=sa.get("EXT_texture_filter_anisotropic");return a=null!==b?m.getParameter(b.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0}}();this.getPrecision=function(){return Y};this.setSize=function(a,b,c){O.width=a*this.devicePixelRatio;O.height=b*this.devicePixelRatio;!1!==c&&(O.style.width=a+"px",O.style.height=b+"px");this.setViewport(0,0,a,b)};this.setViewport=
|
|
|
+function(a,b,c,d){mb=a*this.devicePixelRatio;nb=b*this.devicePixelRatio;Eb=c*this.devicePixelRatio;lc=d*this.devicePixelRatio;m.viewport(mb,nb,Eb,lc)};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){S.set(a);Ja=void 0!==b?b:1;m.clearColor(S.r,S.g,S.b,Ja)};this.setClearColorHex=function(a,
|
|
|
+b){console.warn("THREE.WebGLRenderer: .setClearColorHex() is being removed. Use .setClearColor() instead.");this.setClearColor(a,b)};this.getClearColor=function(){return S};this.getClearAlpha=function(){return Ja};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,Ea,db,Ia);this.renderPluginsPost.push(a)};this.addPrePlugin=function(a){a.init(this,Ea,db,Ia);this.renderPluginsPre.push(a)};this.resetGLState=function(){Yb=wb=null;xb=Na=vb=Nb=$b=Zb=Ob=-1;hc=!0};this.updateShadowMap=function(a,b){wb=null;xb=Na=$b=Zb=Ob=-1;hc=!0;vb=Nb=-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 db[a.id];else if(a instanceof THREE.ImmediateRenderObject||a.immediateRenderCallback)for(var b=Ia,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=Fb[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 Fb[a.id]}else Sc(a);
|
|
|
+Na=-1},kc=function(a){a=a.target;a.removeEventListener("dispose",kc);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=Ra.length;a<c;a++)if(d=Ra[a],d.program===b){d.usedTimes--;0===d.usedTimes&&(e=!0);break}if(!0===e){e=[];a=0;for(c=Ra.length;a<
|
|
|
c;a++)d=Ra[a],d.program!==b&&e.push(d);Ra=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,t,s,r,u,w=3*a.count;for(u=0;u<w;u+=9)r=a.normalArray,d=r[u],e=r[u+1],k=r[u+2],l=r[u+3],p=r[u+4],t=r[u+5],n=r[u+6],q=r[u+7],s=r[u+8],d=(d+l+n)/3,e=(e+p+q)/3,k=(k+t+s)/3,r[u]=d,r[u+1]=e,r[u+2]=k,r[u+3]=d,r[u+4]=e,r[u+5]=k,r[u+6]=d,r[u+
|
|
|
7]=e,r[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!==Na&&(Na=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?(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 t=n[p].index;b&&(e(d,a,f,t),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++)t=n[p].index,b&&(e(d,a,f,t),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){var l,n;c=x(a,b,c,d,k);b=c.attributes;a=!1;c=16777215*e.id+2*c.id+(d.wireframe?1:0);c!==Na&&(Na=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){var q=0;n=k.morphTargetForcedOrder;for(l=k.morphTargetInfluences;q<d.numSupportedMorphTargets&&q<n.length;)0<=c["morphTarget"+q]&&(m.bindBuffer(m.ARRAY_BUFFER,e.__webglMorphTargetsBuffers[n[q]]),f(c["morphTarget"+q]),m.vertexAttribPointer(c["morphTarget"+q],3,m.FLOAT,
|
|
|
-!1,0,0)),0<=c["morphNormal"+q]&&d.morphNormals&&(m.bindBuffer(m.ARRAY_BUFFER,e.__webglMorphNormalsBuffers[n[q]]),f(c["morphNormal"+q]),m.vertexAttribPointer(c["morphNormal"+q],3,m.FLOAT,!1,0,0)),k.__webglMorphTargetInfluences[q]=l[n[q]],q++}else{n=[];l=k.morphTargetInfluences;var t,s=l.length;for(t=0;t<s;t++)q=l[t],0<q&&n.push([q,t]);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(q=0;q<
|
|
|
-d.numSupportedMorphTargets;)n[q]?(t=n[q][1],0<=c["morphTarget"+q]&&(m.bindBuffer(m.ARRAY_BUFFER,e.__webglMorphTargetsBuffers[t]),f(c["morphTarget"+q]),m.vertexAttribPointer(c["morphTarget"+q],3,m.FLOAT,!1,0,0)),0<=c["morphNormal"+q]&&d.morphNormals&&(m.bindBuffer(m.ARRAY_BUFFER,e.__webglMorphNormalsBuffers[t]),f(c["morphNormal"+q]),m.vertexAttribPointer(c["morphNormal"+q],3,m.FLOAT,!1,0,0)),k.__webglMorphTargetInfluences[q]=l[t]):k.__webglMorphTargetInfluences[q]=0,q++}null!==d.program.uniforms.morphTargetInfluences&&
|
|
|
-m.uniform1fv(d.program.uniforms.morphTargetInfluences,k.__webglMorphTargetInfluences)}if(a){if(e.__webglCustomAttributesList)for(l=0,n=e.__webglCustomAttributesList.length;l<n;l++)c=e.__webglCustomAttributesList[l],0<=b[c.buffer.belongsToAttribute]&&(m.bindBuffer(m.ARRAY_BUFFER,c.buffer),f(b[c.buffer.belongsToAttribute]),m.vertexAttribPointer(b[c.buffer.belongsToAttribute],c.size,m.FLOAT,!1,0,0));0<=b.color&&(0<k.geometry.colors.length||0<k.geometry.faces.length?(m.bindBuffer(m.ARRAY_BUFFER,e.__webglColorBuffer),
|
|
|
-f(b.color),m.vertexAttribPointer(b.color,3,m.FLOAT,!1,0,0)):void 0!==d.defaultAttributeValues&&m.vertexAttrib3fv(b.color,d.defaultAttributeValues.color));0<=b.normal&&(m.bindBuffer(m.ARRAY_BUFFER,e.__webglNormalBuffer),f(b.normal),m.vertexAttribPointer(b.normal,3,m.FLOAT,!1,0,0));0<=b.tangent&&(m.bindBuffer(m.ARRAY_BUFFER,e.__webglTangentBuffer),f(b.tangent),m.vertexAttribPointer(b.tangent,4,m.FLOAT,!1,0,0));0<=b.uv&&(k.geometry.faceVertexUvs[0]?(m.bindBuffer(m.ARRAY_BUFFER,e.__webglUVBuffer),f(b.uv),
|
|
|
-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,f,g,h=a.fog;xb=-1;Yb=null;hc=!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);
|
|
|
-Ea.length=0;nb.length=0;ob.length=0;l(a,a);!0===H.sortObjects&&(nb.sort(k),ob.sort(n));t(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(e=Ia.length;d<e;d++)f=Ia[d],g=f.object,g.visible&&(B(g,b),r(f));a.overrideMaterial?(d=a.overrideMaterial,this.setBlending(d.blending,d.blendEquation,d.blendSrc,d.blendDst),
|
|
|
-this.setDepthTest(d.depthTest),this.setDepthWrite(d.depthWrite),G(d.polygonOffset,d.polygonOffsetFactor,d.polygonOffsetUnits),q(nb,b,Ea,h,!0,d),q(ob,b,Ea,h,!0,d),s(Ia,"",b,Ea,h,!1,d)):(d=null,this.setBlending(THREE.NoBlending),q(nb,b,Ea,h,!1,d),s(Ia,"opaque",b,Ea,h,!1,d),q(ob,b,Ea,h,!0,d),s(Ia,"transparent",b,Ea,h,!0,d));t(this.renderPluginsPost,a,b);c&&c.generateMipmaps&&c.minFilter!==THREE.NearestFilter&&c.minFilter!==THREE.LinearFilter&&U(c);this.setDepthTest(!0);this.setDepthWrite(!0)}};this.renderImmediateObject=
|
|
|
-function(a,b,c,d,e){var f=x(a,b,c,d,e);Na=-1;H.setMaterialFaces(d);e.immediateRenderCallback?e.immediateRenderCallback(f,m,Bc):e.render(function(a){H.renderBufferImmediate(a,f,d)})};var Fb={},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;Nb!==b&&(b?m.disable(m.CULL_FACE):m.enable(m.CULL_FACE),Nb=b);vb!==a&&(a?m.frontFace(m.CW):m.frontFace(m.CCW),vb=a)};this.setDepthTest=function(a){Zb!==a&&(a?m.enable(m.DEPTH_TEST):m.disable(m.DEPTH_TEST),Zb=a)};this.setDepthWrite=function(a){$b!==a&&(m.depthMask(a),$b=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!==Pb&&(m.blendEquation(T(b)),Pb=b),c!==sb||d!==Qb)m.blendFunc(T(c),T(d)),sb=c,Qb=d}else Qb=sb=Pb=null};this.uploadTexture=function(a){void 0===a.__webglInit&&(a.__webglInit=!0,a.addEventListener("dispose",kc),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);m.pixelStorei(m.UNPACK_ALIGNMENT,
|
|
|
-a.unpackAlignment);a.image=N(a.image,Xc);var b=a.image,c=THREE.Math.isPowerOfTwo(b.width)&&THREE.Math.isPowerOfTwo(b.height),d=T(a.format),e=T(a.type);L(m.TEXTURE_2D,a,c);var f=a.mipmaps;if(a instanceof THREE.DataTexture)if(0<f.length&&c){for(var g=0,h=f.length;g<h;g++)b=f[g],m.texImage2D(m.TEXTURE_2D,g,d,b.width,b.height,0,d,e,b.data);a.generateMipmaps=!1}else m.texImage2D(m.TEXTURE_2D,0,d,b.width,b.height,0,d,e,b.data);else if(a instanceof THREE.CompressedTexture)for(g=0,h=f.length;g<h;g++)b=f[g],
|
|
|
-a.format!==THREE.RGBAFormat&&a.format!==THREE.RGBFormat?-1<Kc().indexOf(d)?m.compressedTexImage2D(m.TEXTURE_2D,g,d,b.width,b.height,0,b.data):console.warn("Attempt to load unsupported compressed texture format"):m.texImage2D(m.TEXTURE_2D,g,d,b.width,b.height,0,d,e,b.data);else if(0<f.length&&c){g=0;for(h=f.length;g<h;g++)b=f[g],m.texImage2D(m.TEXTURE_2D,g,d,d,e,b);a.generateMipmaps=!1}else m.texImage2D(m.TEXTURE_2D,0,d,d,e,a.image);a.generateMipmaps&&c&&m.generateMipmap(m.TEXTURE_2D);a.needsUpdate=
|
|
|
-!1;if(a.onUpdate)a.onUpdate()};this.setTexture=function(a,b){m.activeTexture(m.TEXTURE0+b);a.needsUpdate?H.uploadTexture(a):m.bindTexture(m.TEXTURE_2D,a.__webglTexture)};this.setRenderTarget=function(a){var b=a instanceof THREE.WebGLRenderTargetCube;if(a&&void 0===a.__webglFramebuffer){void 0===a.depthBuffer&&(a.depthBuffer=!0);void 0===a.stencilBuffer&&(a.stencilBuffer=!0);a.addEventListener("dispose",Tc);a.__webglTexture=m.createTexture();H.info.memory.textures++;var c=THREE.Math.isPowerOfTwo(a.width)&&
|
|
|
+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!==Na&&(Na=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&&sa.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 t=n[p].index;b&&(e(d,a,f,t),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++)t=n[p].index,b&&(e(d,a,f,t),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){var l,n;c=x(a,b,c,d,k);b=c.attributes;a=!1;c=16777215*e.id+2*c.id+(d.wireframe?1:0);c!==Na&&(Na=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){var q=0;n=k.morphTargetForcedOrder;for(l=k.morphTargetInfluences;q<d.numSupportedMorphTargets&&q<n.length;)0<=c["morphTarget"+q]&&(m.bindBuffer(m.ARRAY_BUFFER,e.__webglMorphTargetsBuffers[n[q]]),f(c["morphTarget"+q]),
|
|
|
+m.vertexAttribPointer(c["morphTarget"+q],3,m.FLOAT,!1,0,0)),0<=c["morphNormal"+q]&&d.morphNormals&&(m.bindBuffer(m.ARRAY_BUFFER,e.__webglMorphNormalsBuffers[n[q]]),f(c["morphNormal"+q]),m.vertexAttribPointer(c["morphNormal"+q],3,m.FLOAT,!1,0,0)),k.__webglMorphTargetInfluences[q]=l[n[q]],q++}else{n=[];l=k.morphTargetInfluences;var t,s=l.length;for(t=0;t<s;t++)q=l[t],0<q&&n.push([q,t]);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(q=0;q<d.numSupportedMorphTargets;)n[q]?(t=n[q][1],0<=c["morphTarget"+q]&&(m.bindBuffer(m.ARRAY_BUFFER,e.__webglMorphTargetsBuffers[t]),f(c["morphTarget"+q]),m.vertexAttribPointer(c["morphTarget"+q],3,m.FLOAT,!1,0,0)),0<=c["morphNormal"+q]&&d.morphNormals&&(m.bindBuffer(m.ARRAY_BUFFER,e.__webglMorphNormalsBuffers[t]),f(c["morphNormal"+q]),m.vertexAttribPointer(c["morphNormal"+q],3,m.FLOAT,!1,0,0)),k.__webglMorphTargetInfluences[q]=l[t]):k.__webglMorphTargetInfluences[q]=
|
|
|
+0,q++}null!==d.program.uniforms.morphTargetInfluences&&m.uniform1fv(d.program.uniforms.morphTargetInfluences,k.__webglMorphTargetInfluences)}if(a){if(e.__webglCustomAttributesList)for(l=0,n=e.__webglCustomAttributesList.length;l<n;l++)c=e.__webglCustomAttributesList[l],0<=b[c.buffer.belongsToAttribute]&&(m.bindBuffer(m.ARRAY_BUFFER,c.buffer),f(b[c.buffer.belongsToAttribute]),m.vertexAttribPointer(b[c.buffer.belongsToAttribute],c.size,m.FLOAT,!1,0,0));0<=b.color&&(0<k.geometry.colors.length||0<k.geometry.faces.length?
|
|
|
+(m.bindBuffer(m.ARRAY_BUFFER,e.__webglColorBuffer),f(b.color),m.vertexAttribPointer(b.color,3,m.FLOAT,!1,0,0)):void 0!==d.defaultAttributeValues&&m.vertexAttrib3fv(b.color,d.defaultAttributeValues.color));0<=b.normal&&(m.bindBuffer(m.ARRAY_BUFFER,e.__webglNormalBuffer),f(b.normal),m.vertexAttribPointer(b.normal,3,m.FLOAT,!1,0,0));0<=b.tangent&&(m.bindBuffer(m.ARRAY_BUFFER,e.__webglTangentBuffer),f(b.tangent),m.vertexAttribPointer(b.tangent,4,m.FLOAT,!1,0,0));0<=b.uv&&(k.geometry.faceVertexUvs[0]?
|
|
|
+(m.bindBuffer(m.ARRAY_BUFFER,e.__webglUVBuffer),f(b.uv),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,f,g,h=a.fog;xb=-1;Yb=null;hc=!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);Ea.length=0;bb.length=0;ob.length=0;l(a,a);!0===H.sortObjects&&(bb.sort(k),ob.sort(n));t(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(e=Ia.length;d<e;d++)f=Ia[d],g=f.object,g.visible&&(B(g,b),r(f));a.overrideMaterial?(d=a.overrideMaterial,this.setBlending(d.blending,
|
|
|
+d.blendEquation,d.blendSrc,d.blendDst),this.setDepthTest(d.depthTest),this.setDepthWrite(d.depthWrite),G(d.polygonOffset,d.polygonOffsetFactor,d.polygonOffsetUnits),q(bb,b,Ea,h,!0,d),q(ob,b,Ea,h,!0,d),s(Ia,"",b,Ea,h,!1,d)):(d=null,this.setBlending(THREE.NoBlending),q(bb,b,Ea,h,!1,d),s(Ia,"opaque",b,Ea,h,!1,d),q(ob,b,Ea,h,!0,d),s(Ia,"transparent",b,Ea,h,!0,d));t(this.renderPluginsPost,a,b);c&&c.generateMipmaps&&c.minFilter!==THREE.NearestFilter&&c.minFilter!==THREE.LinearFilter&&U(c);this.setDepthTest(!0);
|
|
|
+this.setDepthWrite(!0)}};this.renderImmediateObject=function(a,b,c,d,e){var f=x(a,b,c,d,e);Na=-1;H.setMaterialFaces(d);e.immediateRenderCallback?e.immediateRenderCallback(f,m,Bc):e.render(function(a){H.renderBufferImmediate(a,f,d)})};var Fb={},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;Nb!==b&&(b?m.disable(m.CULL_FACE):m.enable(m.CULL_FACE),Nb=b);vb!==a&&(a?m.frontFace(m.CW):m.frontFace(m.CCW),vb=a)};this.setDepthTest=function(a){Zb!==a&&(a?m.enable(m.DEPTH_TEST):m.disable(m.DEPTH_TEST),Zb=a)};this.setDepthWrite=function(a){$b!==a&&(m.depthMask(a),$b=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!==Pb&&(m.blendEquation(T(b)),Pb=b),c!==sb||d!==Qb)m.blendFunc(T(c),T(d)),sb=c,Qb=d}else Qb=sb=Pb=null};this.uploadTexture=function(a){void 0===a.__webglInit&&(a.__webglInit=!0,a.addEventListener("dispose",kc),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);m.pixelStorei(m.UNPACK_ALIGNMENT,a.unpackAlignment);a.image=N(a.image,Xc);var b=a.image,c=THREE.Math.isPowerOfTwo(b.width)&&THREE.Math.isPowerOfTwo(b.height),d=T(a.format),e=T(a.type);L(m.TEXTURE_2D,a,c);var f=a.mipmaps;if(a instanceof THREE.DataTexture)if(0<f.length&&c){for(var g=0,h=f.length;g<h;g++)b=f[g],m.texImage2D(m.TEXTURE_2D,g,d,b.width,b.height,0,d,e,b.data);a.generateMipmaps=!1}else m.texImage2D(m.TEXTURE_2D,0,d,b.width,b.height,0,d,e,b.data);else if(a instanceof THREE.CompressedTexture)for(g=
|
|
|
+0,h=f.length;g<h;g++)b=f[g],a.format!==THREE.RGBAFormat&&a.format!==THREE.RGBFormat?-1<Kc().indexOf(d)?m.compressedTexImage2D(m.TEXTURE_2D,g,d,b.width,b.height,0,b.data):console.warn("Attempt to load unsupported compressed texture format"):m.texImage2D(m.TEXTURE_2D,g,d,b.width,b.height,0,d,e,b.data);else if(0<f.length&&c){g=0;for(h=f.length;g<h;g++)b=f[g],m.texImage2D(m.TEXTURE_2D,g,d,d,e,b);a.generateMipmaps=!1}else m.texImage2D(m.TEXTURE_2D,0,d,d,e,a.image);a.generateMipmaps&&c&&m.generateMipmap(m.TEXTURE_2D);
|
|
|
+a.needsUpdate=!1;if(a.onUpdate)a.onUpdate()};this.setTexture=function(a,b){m.activeTexture(m.TEXTURE0+b);a.needsUpdate?H.uploadTexture(a):m.bindTexture(m.TEXTURE_2D,a.__webglTexture)};this.setRenderTarget=function(a){var b=a instanceof THREE.WebGLRenderTargetCube;if(a&&void 0===a.__webglFramebuffer){void 0===a.depthBuffer&&(a.depthBuffer=!0);void 0===a.stencilBuffer&&(a.stencilBuffer=!0);a.addEventListener("dispose",Tc);a.__webglTexture=m.createTexture();H.info.memory.textures++;var c=THREE.Math.isPowerOfTwo(a.width)&&
|
|
|
THREE.Math.isPowerOfTwo(a.height),d=T(a.format),e=T(a.type);if(b){a.__webglFramebuffer=[];a.__webglRenderbuffer=[];m.bindTexture(m.TEXTURE_CUBE_MAP,a.__webglTexture);L(m.TEXTURE_CUBE_MAP,a,c);for(var f=0;6>f;f++){a.__webglFramebuffer[f]=m.createFramebuffer();a.__webglRenderbuffer[f]=m.createRenderbuffer();m.texImage2D(m.TEXTURE_CUBE_MAP_POSITIVE_X+f,0,d,a.width,a.height,0,d,e,null);var g=a,h=m.TEXTURE_CUBE_MAP_POSITIVE_X+f;m.bindFramebuffer(m.FRAMEBUFFER,a.__webglFramebuffer[f]);m.framebufferTexture2D(m.FRAMEBUFFER,
|
|
|
m.COLOR_ATTACHMENT0,h,g.__webglTexture,0);X(a.__webglRenderbuffer[f],a)}c&&m.generateMipmap(m.TEXTURE_CUBE_MAP)}else a.__webglFramebuffer=m.createFramebuffer(),a.__webglRenderbuffer=a.shareDepthFrom?a.shareDepthFrom.__webglRenderbuffer:m.createRenderbuffer(),m.bindTexture(m.TEXTURE_2D,a.__webglTexture),L(m.TEXTURE_2D,a,c),m.texImage2D(m.TEXTURE_2D,0,d,a.width,a.height,0,d,e,null),d=m.TEXTURE_2D,m.bindFramebuffer(m.FRAMEBUFFER,a.__webglFramebuffer),m.framebufferTexture2D(m.FRAMEBUFFER,m.COLOR_ATTACHMENT0,
|
|
|
d,a.__webglTexture,0),a.shareDepthFrom?a.depthBuffer&&!a.stencilBuffer?m.framebufferRenderbuffer(m.FRAMEBUFFER,m.DEPTH_ATTACHMENT,m.RENDERBUFFER,a.__webglRenderbuffer):a.depthBuffer&&a.stencilBuffer&&m.framebufferRenderbuffer(m.FRAMEBUFFER,m.DEPTH_STENCIL_ATTACHMENT,m.RENDERBUFFER,a.__webglRenderbuffer):X(a.__webglRenderbuffer,a),c&&m.generateMipmap(m.TEXTURE_2D);b?m.bindTexture(m.TEXTURE_CUBE_MAP,null):m.bindTexture(m.TEXTURE_2D,null);m.bindRenderbuffer(m.RENDERBUFFER,null);m.bindFramebuffer(m.FRAMEBUFFER,
|
|
|
-null)}a?(b=b?a.__webglFramebuffer[a.activeCubeFace]:a.__webglFramebuffer,c=a.width,a=a.height,e=d=0):(b=null,c=Eb,a=lc,d=lb,e=mb);b!==ac&&(m.bindFramebuffer(m.FRAMEBUFFER,b),m.viewport(d,e,c,a),ac=b);pc=c;qc=a};this.shadowMapPlugin=new THREE.ShadowMapPlugin;this.addPrePlugin(this.shadowMapPlugin);this.addPostPlugin(new THREE.SpritePlugin);this.addPostPlugin(new THREE.LensFlarePlugin)};
|
|
|
+null)}a?(b=b?a.__webglFramebuffer[a.activeCubeFace]:a.__webglFramebuffer,c=a.width,a=a.height,e=d=0):(b=null,c=Eb,a=lc,d=mb,e=nb);b!==ac&&(m.bindFramebuffer(m.FRAMEBUFFER,b),m.viewport(d,e,c,a),ac=b);pc=c;qc=a};this.shadowMapPlugin=new THREE.ShadowMapPlugin;this.addPrePlugin(this.shadowMapPlugin);this.addPostPlugin(new THREE.SpritePlugin);this.addPostPlugin(new THREE.LensFlarePlugin)};
|
|
|
THREE.WebGLRenderTarget=function(a,b,c){this.width=a;this.height=b;c=c||{};this.wrapS=void 0!==c.wrapS?c.wrapS:THREE.ClampToEdgeWrapping;this.wrapT=void 0!==c.wrapT?c.wrapT:THREE.ClampToEdgeWrapping;this.magFilter=void 0!==c.magFilter?c.magFilter:THREE.LinearFilter;this.minFilter=void 0!==c.minFilter?c.minFilter:THREE.LinearMipMapLinearFilter;this.anisotropy=void 0!==c.anisotropy?c.anisotropy:1;this.offset=new THREE.Vector2(0,0);this.repeat=new THREE.Vector2(1,1);this.format=void 0!==c.format?c.format:
|
|
|
THREE.RGBAFormat;this.type=void 0!==c.type?c.type:THREE.UnsignedByteType;this.depthBuffer=void 0!==c.depthBuffer?c.depthBuffer:!0;this.stencilBuffer=void 0!==c.stencilBuffer?c.stencilBuffer:!0;this.generateMipmaps=!0;this.shareDepthFrom=null};
|
|
|
THREE.WebGLRenderTarget.prototype={constructor:THREE.WebGLRenderTarget,setSize:function(a,b){this.width=a;this.height=b},clone:function(){var a=new THREE.WebGLRenderTarget(this.width,this.height);a.wrapS=this.wrapS;a.wrapT=this.wrapT;a.magFilter=this.magFilter;a.minFilter=this.minFilter;a.anisotropy=this.anisotropy;a.offset.copy(this.offset);a.repeat.copy(this.repeat);a.format=this.format;a.type=this.type;a.depthBuffer=this.depthBuffer;a.stencilBuffer=this.stencilBuffer;a.generateMipmaps=this.generateMipmaps;
|
|
@@ -685,10 +685,10 @@ THREE.ExtrudeGeometry.prototype.addShape=function(a,b){function c(a,b,c){b||cons
|
|
|
Math.sign(g)&&(a=!0),a?(c=-e,a=d,d=Math.sqrt(h)):(c=d,a=e,d=Math.sqrt(h/2));return new THREE.Vector2(c/d,a/d)}function e(c,d){var e,f;for(I=c.length;0<=--I;){e=I;f=I-1;0>f&&(f=c.length-1);for(var g=0,h=q+2*p,g=0;g<h;g++){var k=ca*g,l=ca*(g+1),n=d+e+k,k=d+f+k,r=d+f+l,l=d+e+l,s=c,t=g,v=h,w=e,x=f,n=n+L,k=k+L,r=r+L,l=l+L;G.faces.push(new THREE.Face3(n,k,l,null,null,u));G.faces.push(new THREE.Face3(k,r,l,null,null,u));n=A.generateSideWallUV(G,a,s,b,n,k,r,l,t,v,w,x);G.faceVertexUvs[0].push([n[0],n[1],n[3]]);
|
|
|
G.faceVertexUvs[0].push([n[1],n[2],n[3]])}}}function g(a,b,c){G.vertices.push(new THREE.Vector3(a,b,c))}function f(c,d,e,f){c+=L;d+=L;e+=L;G.faces.push(new THREE.Face3(c,d,e,null,null,w));c=f?A.generateBottomUV(G,a,b,c,d,e):A.generateTopUV(G,a,b,c,d,e);G.faceVertexUvs[0].push(c)}var h=void 0!==b.amount?b.amount:100,k=void 0!==b.bevelThickness?b.bevelThickness:6,n=void 0!==b.bevelSize?b.bevelSize:k-2,p=void 0!==b.bevelSegments?b.bevelSegments:3,l=void 0!==b.bevelEnabled?b.bevelEnabled:!0,t=void 0!==
|
|
|
b.curveSegments?b.curveSegments:12,q=void 0!==b.steps?b.steps:1,s=b.extrudePath,r,v=!1,w=b.material,u=b.extrudeMaterial,A=void 0!==b.UVGenerator?b.UVGenerator:THREE.ExtrudeGeometry.WorldUVGenerator,x,F,E,B;s&&(r=s.getSpacedPoints(q),v=!0,l=!1,x=void 0!==b.frames?b.frames:new THREE.TubeGeometry.FrenetFrames(s,q,!1),F=new THREE.Vector3,E=new THREE.Vector3,B=new THREE.Vector3);l||(n=k=p=0);var y,D,Q,G=this,L=this.vertices.length,s=a.extractPoints(t),t=s.shape,N=s.holes;if(s=!THREE.Shape.Utils.isClockWise(t)){t=
|
|
|
-t.reverse();D=0;for(Q=N.length;D<Q;D++)y=N[D],THREE.Shape.Utils.isClockWise(y)&&(N[D]=y.reverse());s=!1}var X=THREE.Shape.Utils.triangulateShape(t,N),U=t;D=0;for(Q=N.length;D<Q;D++)y=N[D],t=t.concat(y);var P,T,O,sa,Y,ca=t.length,ia,ta=X.length,s=[],I=0;O=U.length;P=O-1;for(T=I+1;I<O;I++,P++,T++)P===O&&(P=0),T===O&&(T=0),s[I]=d(U[I],U[P],U[T]);var ja=[],ya,Oa=s.concat();D=0;for(Q=N.length;D<Q;D++){y=N[D];ya=[];I=0;O=y.length;P=O-1;for(T=I+1;I<O;I++,P++,T++)P===O&&(P=0),T===O&&(T=0),ya[I]=d(y[I],y[P],
|
|
|
-y[T]);ja.push(ya);Oa=Oa.concat(ya)}for(P=0;P<p;P++){O=P/p;sa=k*(1-O);T=n*Math.sin(O*Math.PI/2);I=0;for(O=U.length;I<O;I++)Y=c(U[I],s[I],T),g(Y.x,Y.y,-sa);D=0;for(Q=N.length;D<Q;D++)for(y=N[D],ya=ja[D],I=0,O=y.length;I<O;I++)Y=c(y[I],ya[I],T),g(Y.x,Y.y,-sa)}T=n;for(I=0;I<ca;I++)Y=l?c(t[I],Oa[I],T):t[I],v?(E.copy(x.normals[0]).multiplyScalar(Y.x),F.copy(x.binormals[0]).multiplyScalar(Y.y),B.copy(r[0]).add(E).add(F),g(B.x,B.y,B.z)):g(Y.x,Y.y,0);for(O=1;O<=q;O++)for(I=0;I<ca;I++)Y=l?c(t[I],Oa[I],T):t[I],
|
|
|
-v?(E.copy(x.normals[O]).multiplyScalar(Y.x),F.copy(x.binormals[O]).multiplyScalar(Y.y),B.copy(r[O]).add(E).add(F),g(B.x,B.y,B.z)):g(Y.x,Y.y,h/q*O);for(P=p-1;0<=P;P--){O=P/p;sa=k*(1-O);T=n*Math.sin(O*Math.PI/2);I=0;for(O=U.length;I<O;I++)Y=c(U[I],s[I],T),g(Y.x,Y.y,h+sa);D=0;for(Q=N.length;D<Q;D++)for(y=N[D],ya=ja[D],I=0,O=y.length;I<O;I++)Y=c(y[I],ya[I],T),v?g(Y.x,Y.y+r[q-1].y,r[q-1].x+sa):g(Y.x,Y.y,h+sa)}(function(){if(l){var a;a=0*ca;for(I=0;I<ta;I++)ia=X[I],f(ia[2]+a,ia[1]+a,ia[0]+a,!0);a=q+2*p;
|
|
|
-a*=ca;for(I=0;I<ta;I++)ia=X[I],f(ia[0]+a,ia[1]+a,ia[2]+a,!1)}else{for(I=0;I<ta;I++)ia=X[I],f(ia[2],ia[1],ia[0],!0);for(I=0;I<ta;I++)ia=X[I],f(ia[0]+ca*q,ia[1]+ca*q,ia[2]+ca*q,!1)}})();(function(){var a=0;e(U,a);a+=U.length;D=0;for(Q=N.length;D<Q;D++)y=N[D],e(y,a),a+=y.length})()};
|
|
|
+t.reverse();D=0;for(Q=N.length;D<Q;D++)y=N[D],THREE.Shape.Utils.isClockWise(y)&&(N[D]=y.reverse());s=!1}var X=THREE.Shape.Utils.triangulateShape(t,N),U=t;D=0;for(Q=N.length;D<Q;D++)y=N[D],t=t.concat(y);var P,T,O,ta,Y,ca=t.length,ia,xa=X.length,s=[],I=0;O=U.length;P=O-1;for(T=I+1;I<O;I++,P++,T++)P===O&&(P=0),T===O&&(T=0),s[I]=d(U[I],U[P],U[T]);var ua=[],ja,Oa=s.concat();D=0;for(Q=N.length;D<Q;D++){y=N[D];ja=[];I=0;O=y.length;P=O-1;for(T=I+1;I<O;I++,P++,T++)P===O&&(P=0),T===O&&(T=0),ja[I]=d(y[I],y[P],
|
|
|
+y[T]);ua.push(ja);Oa=Oa.concat(ja)}for(P=0;P<p;P++){O=P/p;ta=k*(1-O);T=n*Math.sin(O*Math.PI/2);I=0;for(O=U.length;I<O;I++)Y=c(U[I],s[I],T),g(Y.x,Y.y,-ta);D=0;for(Q=N.length;D<Q;D++)for(y=N[D],ja=ua[D],I=0,O=y.length;I<O;I++)Y=c(y[I],ja[I],T),g(Y.x,Y.y,-ta)}T=n;for(I=0;I<ca;I++)Y=l?c(t[I],Oa[I],T):t[I],v?(E.copy(x.normals[0]).multiplyScalar(Y.x),F.copy(x.binormals[0]).multiplyScalar(Y.y),B.copy(r[0]).add(E).add(F),g(B.x,B.y,B.z)):g(Y.x,Y.y,0);for(O=1;O<=q;O++)for(I=0;I<ca;I++)Y=l?c(t[I],Oa[I],T):t[I],
|
|
|
+v?(E.copy(x.normals[O]).multiplyScalar(Y.x),F.copy(x.binormals[O]).multiplyScalar(Y.y),B.copy(r[O]).add(E).add(F),g(B.x,B.y,B.z)):g(Y.x,Y.y,h/q*O);for(P=p-1;0<=P;P--){O=P/p;ta=k*(1-O);T=n*Math.sin(O*Math.PI/2);I=0;for(O=U.length;I<O;I++)Y=c(U[I],s[I],T),g(Y.x,Y.y,h+ta);D=0;for(Q=N.length;D<Q;D++)for(y=N[D],ja=ua[D],I=0,O=y.length;I<O;I++)Y=c(y[I],ja[I],T),v?g(Y.x,Y.y+r[q-1].y,r[q-1].x+ta):g(Y.x,Y.y,h+ta)}(function(){if(l){var a;a=0*ca;for(I=0;I<xa;I++)ia=X[I],f(ia[2]+a,ia[1]+a,ia[0]+a,!0);a=q+2*p;
|
|
|
+a*=ca;for(I=0;I<xa;I++)ia=X[I],f(ia[0]+a,ia[1]+a,ia[2]+a,!1)}else{for(I=0;I<xa;I++)ia=X[I],f(ia[2],ia[1],ia[0],!0);for(I=0;I<xa;I++)ia=X[I],f(ia[0]+ca*q,ia[1]+ca*q,ia[2]+ca*q,!1)}})();(function(){var a=0;e(U,a);a+=U.length;D=0;for(Q=N.length;D<Q;D++)y=N[D],e(y,a),a+=y.length})()};
|
|
|
THREE.ExtrudeGeometry.WorldUVGenerator={generateTopUV:function(a,b,c,d,e,g){b=a.vertices[d];e=a.vertices[e];a=a.vertices[g];return[new THREE.Vector2(b.x,b.y),new THREE.Vector2(e.x,e.y),new THREE.Vector2(a.x,a.y)]},generateBottomUV:function(a,b,c,d,e,g){return this.generateTopUV(a,b,c,d,e,g)},generateSideWallUV:function(a,b,c,d,e,g,f,h,k,n,p,l){b=a.vertices[e];g=a.vertices[g];f=a.vertices[f];a=a.vertices[h];return.01>Math.abs(b.y-g.y)?[new THREE.Vector2(b.x,1-b.z),new THREE.Vector2(g.x,1-g.z),new THREE.Vector2(f.x,
|
|
|
1-f.z),new THREE.Vector2(a.x,1-a.z)]:[new THREE.Vector2(b.y,1-b.z),new THREE.Vector2(g.y,1-g.z),new THREE.Vector2(f.y,1-f.z),new THREE.Vector2(a.y,1-a.z)]}};THREE.ShapeGeometry=function(a,b){THREE.Geometry.call(this);this.type="ShapeGeometry";!1===a instanceof Array&&(a=[a]);this.addShapeList(a,b);this.computeFaceNormals()};THREE.ShapeGeometry.prototype=Object.create(THREE.Geometry.prototype);
|
|
|
THREE.ShapeGeometry.prototype.addShapeList=function(a,b){for(var c=0,d=a.length;c<d;c++)this.addShape(a[c],b);return this};
|
|
@@ -788,7 +788,7 @@ l.CLAMP_TO_EDGE);l.texParameteri(l.TEXTURE_2D,l.TEXTURE_MAG_FILTER,l.NEAREST);l.
|
|
|
p(THREE.ShaderFlares.lensFlare,q):p(THREE.ShaderFlares.lensFlareVertexTexture,q);k=l.getAttribLocation(w,"position");n=l.getAttribLocation(w,"uv");a=l.getUniformLocation(w,"renderType");b=l.getUniformLocation(w,"map");c=l.getUniformLocation(w,"occlusionMap");d=l.getUniformLocation(w,"opacity");e=l.getUniformLocation(w,"color");g=l.getUniformLocation(w,"scale");f=l.getUniformLocation(w,"rotation");h=l.getUniformLocation(w,"screenPosition")};this.render=function(p,q,B,y){s.length=0;p.traverseVisible(function(a){a instanceof
|
|
|
THREE.LensFlare&&s.push(a)});if(0!==s.length){p=new THREE.Vector3;var D=y/B,Q=.5*B,G=.5*y,L=16/y,N=new THREE.Vector2(L*D,L),X=new THREE.Vector3(1,1,0),U=new THREE.Vector2(1,1);l.useProgram(w);l.enableVertexAttribArray(k);l.enableVertexAttribArray(n);l.uniform1i(c,0);l.uniform1i(b,1);l.bindBuffer(l.ARRAY_BUFFER,r);l.vertexAttribPointer(k,2,l.FLOAT,!1,16,0);l.vertexAttribPointer(n,2,l.FLOAT,!1,16,8);l.bindBuffer(l.ELEMENT_ARRAY_BUFFER,v);l.disable(l.CULL_FACE);l.depthMask(!1);for(var P=0,T=s.length;P<
|
|
|
T;P++){L=16/y;N.set(L*D,L);var O=s[P];p.set(O.matrixWorld.elements[12],O.matrixWorld.elements[13],O.matrixWorld.elements[14]);p.applyMatrix4(q.matrixWorldInverse);p.applyProjection(q.projectionMatrix);X.copy(p);U.x=X.x*Q+Q;U.y=X.y*G+G;if(u||0<U.x&&U.x<B&&0<U.y&&U.y<y){l.activeTexture(l.TEXTURE1);l.bindTexture(l.TEXTURE_2D,A);l.copyTexImage2D(l.TEXTURE_2D,0,l.RGB,U.x-8,U.y-8,16,16,0);l.uniform1i(a,0);l.uniform2f(g,N.x,N.y);l.uniform3f(h,X.x,X.y,X.z);l.disable(l.BLEND);l.enable(l.DEPTH_TEST);l.drawElements(l.TRIANGLES,
|
|
|
-6,l.UNSIGNED_SHORT,0);l.activeTexture(l.TEXTURE0);l.bindTexture(l.TEXTURE_2D,x);l.copyTexImage2D(l.TEXTURE_2D,0,l.RGBA,U.x-8,U.y-8,16,16,0);l.uniform1i(a,1);l.disable(l.DEPTH_TEST);l.activeTexture(l.TEXTURE1);l.bindTexture(l.TEXTURE_2D,A);l.drawElements(l.TRIANGLES,6,l.UNSIGNED_SHORT,0);O.positionScreen.copy(X);O.customUpdateCallback?O.customUpdateCallback(O):O.updateLensFlares();l.uniform1i(a,2);l.enable(l.BLEND);for(var sa=0,Y=O.lensFlares.length;sa<Y;sa++){var ca=O.lensFlares[sa];.001<ca.opacity&&
|
|
|
+6,l.UNSIGNED_SHORT,0);l.activeTexture(l.TEXTURE0);l.bindTexture(l.TEXTURE_2D,x);l.copyTexImage2D(l.TEXTURE_2D,0,l.RGBA,U.x-8,U.y-8,16,16,0);l.uniform1i(a,1);l.disable(l.DEPTH_TEST);l.activeTexture(l.TEXTURE1);l.bindTexture(l.TEXTURE_2D,A);l.drawElements(l.TRIANGLES,6,l.UNSIGNED_SHORT,0);O.positionScreen.copy(X);O.customUpdateCallback?O.customUpdateCallback(O):O.updateLensFlares();l.uniform1i(a,2);l.enable(l.BLEND);for(var ta=0,Y=O.lensFlares.length;ta<Y;ta++){var ca=O.lensFlares[ta];.001<ca.opacity&&
|
|
|
.001<ca.scale&&(X.x=ca.x,X.y=ca.y,X.z=ca.z,L=ca.size*ca.scale/y,N.x=L*D,N.y=L,l.uniform3f(h,X.x,X.y,X.z),l.uniform2f(g,N.x,N.y),l.uniform1f(f,ca.rotation),l.uniform1f(d,ca.opacity),l.uniform3f(e,ca.color.r,ca.color.g,ca.color.b),t.setBlending(ca.blending,ca.blendEquation,ca.blendSrc,ca.blendDst),t.setTexture(ca.texture,1),l.drawElements(l.TRIANGLES,6,l.UNSIGNED_SHORT,0))}}}l.enable(l.CULL_FACE);l.enable(l.DEPTH_TEST);l.depthMask(!0);t.resetGLState()}}};
|
|
|
THREE.ShadowMapPlugin=function(){function a(b,c,d){if(c.visible){var f=e[c.id];if(f&&c.castShadow&&(!1===c.frustumCulled||!0===p.intersectsObject(c)))for(var g=0,h=f.length;g<h;g++){var k=f[g];c._modelViewMatrix.multiplyMatrices(d.matrixWorldInverse,c.matrixWorld);r.push(k)}g=0;for(h=c.children.length;g<h;g++)a(b,c.children[g],d)}}var b,c,d,e,g,f,h,k,n,p=new THREE.Frustum,l=new THREE.Matrix4,t=new THREE.Vector3,q=new THREE.Vector3,s=new THREE.Vector3,r=[];this.init=function(a,l,p,q){b=a.context;c=
|
|
|
a;d=l;e=p;g=q;a=THREE.ShaderLib.depthRGBA;l=THREE.UniformsUtils.clone(a.uniforms);f=new THREE.ShaderMaterial({fragmentShader:a.fragmentShader,vertexShader:a.vertexShader,uniforms:l});h=new THREE.ShaderMaterial({fragmentShader:a.fragmentShader,vertexShader:a.vertexShader,uniforms:l,morphTargets:!0});k=new THREE.ShaderMaterial({fragmentShader:a.fragmentShader,vertexShader:a.vertexShader,uniforms:l,skinning:!0});n=new THREE.ShaderMaterial({fragmentShader:a.fragmentShader,vertexShader:a.vertexShader,
|