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

Updated builds.

上级 f9019fdb
......@@ -20235,7 +20235,6 @@ THREE.WebGLRenderer = function ( parameters ) {
// scene graph
this.sortObjects = true;
this.autoUpdateObjects = true;
// physically based shading
......@@ -20618,6 +20617,8 @@ THREE.WebGLRenderer = function ( parameters ) {
_oldDoubleSided = - 1;
_oldFlipSided = - 1;
initObjects( scene );
this.shadowMapPlugin.update( scene, camera );
};
......@@ -23450,9 +23451,7 @@ THREE.WebGLRenderer = function ( parameters ) {
_projScreenMatrix.multiplyMatrices( camera.projectionMatrix, camera.matrixWorldInverse );
_frustum.setFromMatrix( _projScreenMatrix );
// update WebGL objects
if ( this.autoUpdateObjects ) this.initWebGLObjects( scene );
initObjects( scene );
opaqueObjects.length = 0;
transparentObjects.length = 0;
......@@ -23565,52 +23564,54 @@ THREE.WebGLRenderer = function ( parameters ) {
function projectObject(scene, object,camera){
if ( object.visible ) {
if ( object.visible === false ) return;
var webglObjects = scene.__webglObjects[object.id];
var webglObjects = scene.__webglObjects[ object.id ];
if ( webglObjects && (object.frustumCulled === false || _frustum.intersectsObject( object ) === true ) ) {
if (webglObjects && (object.frustumCulled === false || _frustum.intersectsObject( object ) === true) ) {
updateObject( scene, object );
for ( var i = 0, l = webglObjects.length; i < l; i ++ ) {
updateObject(scene, object);
var webglObject = webglObjects[i];
for (var i = 0, l = webglObjects.length; i < l; i++){
var webglObject = webglObjects[i];
unrollBufferMaterial( webglObject );
unrollBufferMaterial( webglObject );
webglObject.render = true;
if ( _sortObjects === true ) {
if ( object.renderDepth !== null ) {
webglObject.z = object.renderDepth;
} else {
_vector3.setFromMatrixPosition( object.matrixWorld );
_vector3.applyProjection( _projScreenMatrix );
webglObject.z = _vector3.z;
webglObject.render = true;
if ( _sortObjects === true ) {
if ( object.renderDepth !== null ) {
webglObject.z = object.renderDepth;
} else {
_vector3.setFromMatrixPosition( object.matrixWorld );
_vector3.applyProjection( _projScreenMatrix );
webglObject.z = _vector3.z;
}
}
}
}
for(var i = 0, l = object.children.length; i < l; i++) {
projectObject(scene, object.children[i],camera);
}
}
for ( var i = 0, l = object.children.length; i < l; i ++ ) {
projectObject( scene, object.children[ i ], camera );
}
}
function renderPlugins( plugins, scene, camera ) {
if ( ! plugins.length ) return;
if ( plugins.length === 0 ) return;
for ( var i = 0, il = plugins.length; i < il; i ++ ) {
......@@ -23823,7 +23824,7 @@ THREE.WebGLRenderer = function ( parameters ) {
// Objects refresh
this.initWebGLObjects = function ( scene ) {
var initObjects = function ( scene ) {
if ( ! scene.__webglObjects ) {
......@@ -23955,15 +23956,15 @@ THREE.WebGLRenderer = function ( parameters ) {
};
function initGeometryGroups(scene,object,geometry) {
function initGeometryGroups( scene, object, geometry ) {
var g, geometryGroup, material,addBuffers = false;
material = object.material;
if ( geometry.geometryGroups === undefined ) {
delete scene.__webglObjects[object.id];
geometry.makeGroups( material instanceof THREE.MeshFaceMaterial, _glExtensionElementIndexUint ? 4294967296 : 65535 );
delete scene.__webglObjects[ object.id ];
geometry.makeGroups( material instanceof THREE.MeshFaceMaterial, _glExtensionElementIndexUint ? 4294967296 : 65535 );
}
......@@ -24001,10 +24002,13 @@ THREE.WebGLRenderer = function ( parameters ) {
}
}
object.__webglActive = true;
}
function addBuffer( objlist, buffer, object ) {
var id = object.id;
objlist[id] = objlist[id] || [];
objlist[id].push(
......
......@@ -390,14 +390,14 @@ function c(a,b){var c=b.geometry,g=a.faces3,h=3*g.length,k=1*g.length,l=3*g.leng
2*l;if(g.attributes){void 0===a.__webglCustomAttributesList&&(a.__webglCustomAttributesList=[]);for(var q in g.attributes){var k=g.attributes[q],l={},s;for(s in k)l[s]=k[s];if(!l.__webglInitialized||l.createUniqueBuffers)l.__webglInitialized=!0,c=1,"v2"===l.type?c=2:"v3"===l.type?c=3:"v4"===l.type?c=4:"c"===l.type&&(c=3),l.size=c,l.array=new Float32Array(h*c),l.buffer=m.createBuffer(),l.buffer.belongsToAttribute=q,k.needsUpdate=!0,l.__original=k;a.__webglCustomAttributesList.push(l)}}a.__inittedArrays=
!0}function d(a,b){return a.material instanceof THREE.MeshFaceMaterial?a.material.materials[b.materialIndex]:a.material}function e(a){return a instanceof THREE.MeshBasicMaterial&&!a.envMap||a instanceof THREE.MeshDepthMaterial?!1:a&&void 0!==a.shading&&a.shading===THREE.SmoothShading?THREE.SmoothShading:THREE.FlatShading}function f(a){return a.map||a.lightMap||a.bumpMap||a.normalMap||a.specularMap||a instanceof THREE.ShaderMaterial?!0:!1}function g(a){for(var b in a.attributes){var c="index"===b?
m.ELEMENT_ARRAY_BUFFER:m.ARRAY_BUFFER,d=a.attributes[b];d.buffer=m.createBuffer();m.bindBuffer(c,d.buffer);m.bufferData(c,d.array,m.STATIC_DRAW)}}function h(a,b,c,d){for(var e in b){var f=b[e],g=c[e];if(0<=f)if(g){var h=g.itemSize;m.bindBuffer(m.ARRAY_BUFFER,g.buffer);l(f);m.vertexAttribPointer(f,h,m.FLOAT,!1,0,d*h*4)}else a.defaultAttributeValues&&(2===a.defaultAttributeValues[e].length?m.vertexAttrib2fv(f,a.defaultAttributeValues[e]):3===a.defaultAttributeValues[e].length&&m.vertexAttrib3fv(f,a.defaultAttributeValues[e]))}p()}
function k(){for(var a=0,b=sb.length;a<b;a++)sb[a]=0}function l(a){sb[a]=1;0===nb[a]&&(m.enableVertexAttribArray(a),nb[a]=1)}function p(){for(var a=0,b=nb.length;a<b;a++)nb[a]!==sb[a]&&(m.disableVertexAttribArray(a),nb[a]=0)}function q(a,b){return a.z!==b.z?b.z-a.z:a.id-b.id}function r(a,b){return a.z!==b.z?a.z-b.z:a.id-b.id}function t(a,b){return b[0]-a[0]}function s(a,b,h){if(b.visible){var k=a.__webglObjects[b.id];if(k&&(!1===b.frustumCulled||!0===fc.intersectsObject(b))){var l=b.geometry,p,n,
r;if(l instanceof THREE.BufferGeometry){var q=m.DYNAMIC_DRAW,u=l.attributes,v,y;for(v in u)y=u[v],y.needsUpdate&&("index"===v?(m.bindBuffer(m.ELEMENT_ARRAY_BUFFER,y.buffer),m.bufferData(m.ELEMENT_ARRAY_BUFFER,y.array,q)):(m.bindBuffer(m.ARRAY_BUFFER,y.buffer),m.bufferData(m.ARRAY_BUFFER,y.array,q)),y.needsUpdate=!1)}else if(b instanceof THREE.Mesh){l.buffersNeedUpdate&&(l instanceof THREE.BufferGeometry?g(l):b instanceof THREE.Mesh&&w(a,b,l));for(var B=0,F=l.geometryGroupsList.length;B<F;B++)if(p=
function k(){for(var a=0,b=sb.length;a<b;a++)sb[a]=0}function l(a){sb[a]=1;0===nb[a]&&(m.enableVertexAttribArray(a),nb[a]=1)}function p(){for(var a=0,b=nb.length;a<b;a++)nb[a]!==sb[a]&&(m.disableVertexAttribArray(a),nb[a]=0)}function q(a,b){return a.z!==b.z?b.z-a.z:a.id-b.id}function r(a,b){return a.z!==b.z?a.z-b.z:a.id-b.id}function t(a,b){return b[0]-a[0]}function s(a,b,h){if(!1!==b.visible){var k=a.__webglObjects[b.id];if(k&&(!1===b.frustumCulled||!0===gc.intersectsObject(b))){var l=b.geometry,
p,n,r;if(l instanceof THREE.BufferGeometry){var q=m.DYNAMIC_DRAW,u=l.attributes,v,y;for(v in u)y=u[v],y.needsUpdate&&("index"===v?(m.bindBuffer(m.ELEMENT_ARRAY_BUFFER,y.buffer),m.bufferData(m.ELEMENT_ARRAY_BUFFER,y.array,q)):(m.bindBuffer(m.ARRAY_BUFFER,y.buffer),m.bufferData(m.ARRAY_BUFFER,y.array,q)),y.needsUpdate=!1)}else if(b instanceof THREE.Mesh){l.buffersNeedUpdate&&(l instanceof THREE.BufferGeometry?g(l):b instanceof THREE.Mesh&&w(a,b,l));for(var B=0,F=l.geometryGroupsList.length;B<F;B++)if(p=
l.geometryGroupsList[B],r=d(b,p),l.buffersNeedUpdate&&c(p,b),n=r.attributes&&C(r),l.verticesNeedUpdate||l.morphTargetsNeedUpdate||l.elementsNeedUpdate||l.uvsNeedUpdate||l.normalsNeedUpdate||l.colorsNeedUpdate||l.tangentsNeedUpdate||n){var x=p,E=b,D=m.DYNAMIC_DRAW,H=!l.dynamic,G=r;if(x.__inittedArrays){var L=e(G),I=G.vertexColors?G.vertexColors:!1,P=f(G),Q=L===THREE.SmoothShading,z=void 0,K=void 0,O=void 0,N=void 0,qa=void 0,R=void 0,T=void 0,S=void 0,X=void 0,Y=void 0,ya=void 0,Z=void 0,ba=void 0,
ca=void 0,U=void 0,Ha=void 0,ea=void 0,ga=void 0,xa=void 0,La=void 0,fa=void 0,ha=void 0,ja=void 0,ka=void 0,na=void 0,Fa=void 0,wa=void 0,ta=void 0,Ba=void 0,Ga=void 0,Ka=void 0,Ea=void 0,Ia=void 0,Ja=void 0,ma=void 0,Na=void 0,za=void 0,Aa=void 0,Ma=void 0,Ta=void 0,cb=0,db=0,Sa=0,Ya=0,bb=0,eb=0,Ua=0,ub=0,Za=0,ra=0,Ca=0,M=0,Ra=void 0,fb=x.__vertexArray,nb=x.__uvArray,ob=x.__uv2Array,xb=x.__normalArray,Va=x.__tangentArray,gb=x.__colorArray,Wa=x.__skinIndexArray,Xa=x.__skinWeightArray,tb=x.__morphTargetsArrays,
wb=x.__morphNormalsArrays,sb=x.__webglCustomAttributesList,J=void 0,pb=x.__faceArray,yb=x.__lineArray,Oa=E.geometry,Jb=Oa.elementsNeedUpdate,Eb=Oa.uvsNeedUpdate,Mb=Oa.normalsNeedUpdate,Qb=Oa.tangentsNeedUpdate,Rb=Oa.colorsNeedUpdate,Tb=Oa.morphTargetsNeedUpdate,hc=Oa.vertices,da=x.faces3,hb=Oa.faces,Ib=Oa.faceVertexUvs[0],Kb=Oa.faceVertexUvs[1],ic=Oa.skinIndices,Ub=Oa.skinWeights,Vb=Oa.morphTargets,Lb=Oa.morphNormals;if(Oa.verticesNeedUpdate){z=0;for(K=da.length;z<K;z++)N=hb[da[z]],Z=hc[N.a],ba=hc[N.b],
ca=hc[N.c],fb[db]=Z.x,fb[db+1]=Z.y,fb[db+2]=Z.z,fb[db+3]=ba.x,fb[db+4]=ba.y,fb[db+5]=ba.z,fb[db+6]=ca.x,fb[db+7]=ca.y,fb[db+8]=ca.z,db+=9;m.bindBuffer(m.ARRAY_BUFFER,x.__webglVertexBuffer);m.bufferData(m.ARRAY_BUFFER,fb,D)}if(Tb)for(ma=0,Na=Vb.length;ma<Na;ma++){z=Ca=0;for(K=da.length;z<K;z++)Ma=da[z],N=hb[Ma],Z=Vb[ma].vertices[N.a],ba=Vb[ma].vertices[N.b],ca=Vb[ma].vertices[N.c],za=tb[ma],za[Ca]=Z.x,za[Ca+1]=Z.y,za[Ca+2]=Z.z,za[Ca+3]=ba.x,za[Ca+4]=ba.y,za[Ca+5]=ba.z,za[Ca+6]=ca.x,za[Ca+7]=ca.y,za[Ca+
wb=x.__morphNormalsArrays,sb=x.__webglCustomAttributesList,J=void 0,pb=x.__faceArray,yb=x.__lineArray,Oa=E.geometry,Jb=Oa.elementsNeedUpdate,Eb=Oa.uvsNeedUpdate,Mb=Oa.normalsNeedUpdate,Qb=Oa.tangentsNeedUpdate,Rb=Oa.colorsNeedUpdate,Tb=Oa.morphTargetsNeedUpdate,ic=Oa.vertices,da=x.faces3,hb=Oa.faces,Ib=Oa.faceVertexUvs[0],Kb=Oa.faceVertexUvs[1],jc=Oa.skinIndices,Ub=Oa.skinWeights,Vb=Oa.morphTargets,Lb=Oa.morphNormals;if(Oa.verticesNeedUpdate){z=0;for(K=da.length;z<K;z++)N=hb[da[z]],Z=ic[N.a],ba=ic[N.b],
ca=ic[N.c],fb[db]=Z.x,fb[db+1]=Z.y,fb[db+2]=Z.z,fb[db+3]=ba.x,fb[db+4]=ba.y,fb[db+5]=ba.z,fb[db+6]=ca.x,fb[db+7]=ca.y,fb[db+8]=ca.z,db+=9;m.bindBuffer(m.ARRAY_BUFFER,x.__webglVertexBuffer);m.bufferData(m.ARRAY_BUFFER,fb,D)}if(Tb)for(ma=0,Na=Vb.length;ma<Na;ma++){z=Ca=0;for(K=da.length;z<K;z++)Ma=da[z],N=hb[Ma],Z=Vb[ma].vertices[N.a],ba=Vb[ma].vertices[N.b],ca=Vb[ma].vertices[N.c],za=tb[ma],za[Ca]=Z.x,za[Ca+1]=Z.y,za[Ca+2]=Z.z,za[Ca+3]=ba.x,za[Ca+4]=ba.y,za[Ca+5]=ba.z,za[Ca+6]=ca.x,za[Ca+7]=ca.y,za[Ca+
8]=ca.z,G.morphNormals&&(Q?(Ta=Lb[ma].vertexNormals[Ma],ga=Ta.a,xa=Ta.b,La=Ta.c):La=xa=ga=Lb[ma].faceNormals[Ma],Aa=wb[ma],Aa[Ca]=ga.x,Aa[Ca+1]=ga.y,Aa[Ca+2]=ga.z,Aa[Ca+3]=xa.x,Aa[Ca+4]=xa.y,Aa[Ca+5]=xa.z,Aa[Ca+6]=La.x,Aa[Ca+7]=La.y,Aa[Ca+8]=La.z),Ca+=9;m.bindBuffer(m.ARRAY_BUFFER,x.__webglMorphTargetsBuffers[ma]);m.bufferData(m.ARRAY_BUFFER,tb[ma],D);G.morphNormals&&(m.bindBuffer(m.ARRAY_BUFFER,x.__webglMorphNormalsBuffers[ma]),m.bufferData(m.ARRAY_BUFFER,wb[ma],D))}if(Ub.length){z=0;for(K=da.length;z<
K;z++)N=hb[da[z]],ka=Ub[N.a],na=Ub[N.b],Fa=Ub[N.c],Xa[ra]=ka.x,Xa[ra+1]=ka.y,Xa[ra+2]=ka.z,Xa[ra+3]=ka.w,Xa[ra+4]=na.x,Xa[ra+5]=na.y,Xa[ra+6]=na.z,Xa[ra+7]=na.w,Xa[ra+8]=Fa.x,Xa[ra+9]=Fa.y,Xa[ra+10]=Fa.z,Xa[ra+11]=Fa.w,wa=ic[N.a],ta=ic[N.b],Ba=ic[N.c],Wa[ra]=wa.x,Wa[ra+1]=wa.y,Wa[ra+2]=wa.z,Wa[ra+3]=wa.w,Wa[ra+4]=ta.x,Wa[ra+5]=ta.y,Wa[ra+6]=ta.z,Wa[ra+7]=ta.w,Wa[ra+8]=Ba.x,Wa[ra+9]=Ba.y,Wa[ra+10]=Ba.z,Wa[ra+11]=Ba.w,ra+=12;0<ra&&(m.bindBuffer(m.ARRAY_BUFFER,x.__webglSkinIndicesBuffer),m.bufferData(m.ARRAY_BUFFER,
K;z++)N=hb[da[z]],ka=Ub[N.a],na=Ub[N.b],Fa=Ub[N.c],Xa[ra]=ka.x,Xa[ra+1]=ka.y,Xa[ra+2]=ka.z,Xa[ra+3]=ka.w,Xa[ra+4]=na.x,Xa[ra+5]=na.y,Xa[ra+6]=na.z,Xa[ra+7]=na.w,Xa[ra+8]=Fa.x,Xa[ra+9]=Fa.y,Xa[ra+10]=Fa.z,Xa[ra+11]=Fa.w,wa=jc[N.a],ta=jc[N.b],Ba=jc[N.c],Wa[ra]=wa.x,Wa[ra+1]=wa.y,Wa[ra+2]=wa.z,Wa[ra+3]=wa.w,Wa[ra+4]=ta.x,Wa[ra+5]=ta.y,Wa[ra+6]=ta.z,Wa[ra+7]=ta.w,Wa[ra+8]=Ba.x,Wa[ra+9]=Ba.y,Wa[ra+10]=Ba.z,Wa[ra+11]=Ba.w,ra+=12;0<ra&&(m.bindBuffer(m.ARRAY_BUFFER,x.__webglSkinIndicesBuffer),m.bufferData(m.ARRAY_BUFFER,
Wa,D),m.bindBuffer(m.ARRAY_BUFFER,x.__webglSkinWeightsBuffer),m.bufferData(m.ARRAY_BUFFER,Xa,D))}if(Rb&&I){z=0;for(K=da.length;z<K;z++)N=hb[da[z]],T=N.vertexColors,S=N.color,3===T.length&&I===THREE.VertexColors?(fa=T[0],ha=T[1],ja=T[2]):ja=ha=fa=S,gb[Za]=fa.r,gb[Za+1]=fa.g,gb[Za+2]=fa.b,gb[Za+3]=ha.r,gb[Za+4]=ha.g,gb[Za+5]=ha.b,gb[Za+6]=ja.r,gb[Za+7]=ja.g,gb[Za+8]=ja.b,Za+=9;0<Za&&(m.bindBuffer(m.ARRAY_BUFFER,x.__webglColorBuffer),m.bufferData(m.ARRAY_BUFFER,gb,D))}if(Qb&&Oa.hasTangents){z=0;for(K=
da.length;z<K;z++)N=hb[da[z]],X=N.vertexTangents,U=X[0],Ha=X[1],ea=X[2],Va[Ua]=U.x,Va[Ua+1]=U.y,Va[Ua+2]=U.z,Va[Ua+3]=U.w,Va[Ua+4]=Ha.x,Va[Ua+5]=Ha.y,Va[Ua+6]=Ha.z,Va[Ua+7]=Ha.w,Va[Ua+8]=ea.x,Va[Ua+9]=ea.y,Va[Ua+10]=ea.z,Va[Ua+11]=ea.w,Ua+=12;m.bindBuffer(m.ARRAY_BUFFER,x.__webglTangentBuffer);m.bufferData(m.ARRAY_BUFFER,Va,D)}if(Mb&&L){z=0;for(K=da.length;z<K;z++)if(N=hb[da[z]],qa=N.vertexNormals,R=N.normal,3===qa.length&&Q)for(Ga=0;3>Ga;Ga++)Ea=qa[Ga],xb[eb]=Ea.x,xb[eb+1]=Ea.y,xb[eb+2]=Ea.z,eb+=
3;else for(Ga=0;3>Ga;Ga++)xb[eb]=R.x,xb[eb+1]=R.y,xb[eb+2]=R.z,eb+=3;m.bindBuffer(m.ARRAY_BUFFER,x.__webglNormalBuffer);m.bufferData(m.ARRAY_BUFFER,xb,D)}if(Eb&&Ib&&P){z=0;for(K=da.length;z<K;z++)if(O=da[z],Y=Ib[O],void 0!==Y)for(Ga=0;3>Ga;Ga++)Ia=Y[Ga],nb[Sa]=Ia.x,nb[Sa+1]=Ia.y,Sa+=2;0<Sa&&(m.bindBuffer(m.ARRAY_BUFFER,x.__webglUVBuffer),m.bufferData(m.ARRAY_BUFFER,nb,D))}if(Eb&&Kb&&P){z=0;for(K=da.length;z<K;z++)if(O=da[z],ya=Kb[O],void 0!==ya)for(Ga=0;3>Ga;Ga++)Ja=ya[Ga],ob[Ya]=Ja.x,ob[Ya+1]=Ja.y,
......@@ -409,16 +409,16 @@ J.boundTo)for(z=0,K=da.length;z<K;z++)Ra=J.value[da[z]],Z=Ra[0],ba=Ra[1],ca=Ra[2
Z.w,J.array[M+4]=ba.x,J.array[M+5]=ba.y,J.array[M+6]=ba.z,J.array[M+7]=ba.w,J.array[M+8]=ca.x,J.array[M+9]=ca.y,J.array[M+10]=ca.z,J.array[M+11]=ca.w,M+=12;else if("faces"===J.boundTo)for(z=0,K=da.length;z<K;z++)ca=ba=Z=Ra=J.value[da[z]],J.array[M]=Z.x,J.array[M+1]=Z.y,J.array[M+2]=Z.z,J.array[M+3]=Z.w,J.array[M+4]=ba.x,J.array[M+5]=ba.y,J.array[M+6]=ba.z,J.array[M+7]=ba.w,J.array[M+8]=ca.x,J.array[M+9]=ca.y,J.array[M+10]=ca.z,J.array[M+11]=ca.w,M+=12;else if("faceVertices"===J.boundTo)for(z=0,K=
da.length;z<K;z++)Ra=J.value[da[z]],Z=Ra[0],ba=Ra[1],ca=Ra[2],J.array[M]=Z.x,J.array[M+1]=Z.y,J.array[M+2]=Z.z,J.array[M+3]=Z.w,J.array[M+4]=ba.x,J.array[M+5]=ba.y,J.array[M+6]=ba.z,J.array[M+7]=ba.w,J.array[M+8]=ca.x,J.array[M+9]=ca.y,J.array[M+10]=ca.z,J.array[M+11]=ca.w,M+=12;m.bindBuffer(m.ARRAY_BUFFER,J.buffer);m.bufferData(m.ARRAY_BUFFER,J.array,D)}H&&(delete x.__inittedArrays,delete x.__colorArray,delete x.__normalArray,delete x.__tangentArray,delete x.__uvArray,delete x.__uv2Array,delete x.__faceArray,
delete x.__vertexArray,delete x.__lineArray,delete x.__skinIndexArray,delete x.__skinWeightArray)}}l.verticesNeedUpdate=!1;l.morphTargetsNeedUpdate=!1;l.elementsNeedUpdate=!1;l.uvsNeedUpdate=!1;l.normalsNeedUpdate=!1;l.colorsNeedUpdate=!1;l.tangentsNeedUpdate=!1;l.buffersNeedUpdate=!1;r.attributes&&A(r)}else if(b instanceof THREE.Line){r=d(b,l);n=r.attributes&&C(r);if(l.verticesNeedUpdate||l.colorsNeedUpdate||l.lineDistancesNeedUpdate||n){var Wb=m.DYNAMIC_DRAW,Fb,Gb,Hb,Xb,oa,Yb,Nb=l.vertices,Ob=l.colors,
Pb=l.lineDistances,dc=Nb.length,ec=Ob.length,oc=Pb.length,Zb=l.__vertexArray,$b=l.__colorArray,tc=l.__lineDistanceArray,pc=l.colorsNeedUpdate,qc=l.lineDistancesNeedUpdate,jc=l.__webglCustomAttributesList,ac,uc,Da,Cb,Pa,la;if(l.verticesNeedUpdate){for(Fb=0;Fb<dc;Fb++)Xb=Nb[Fb],oa=3*Fb,Zb[oa]=Xb.x,Zb[oa+1]=Xb.y,Zb[oa+2]=Xb.z;m.bindBuffer(m.ARRAY_BUFFER,l.__webglVertexBuffer);m.bufferData(m.ARRAY_BUFFER,Zb,Wb)}if(pc){for(Gb=0;Gb<ec;Gb++)Yb=Ob[Gb],oa=3*Gb,$b[oa]=Yb.r,$b[oa+1]=Yb.g,$b[oa+2]=Yb.b;m.bindBuffer(m.ARRAY_BUFFER,
l.__webglColorBuffer);m.bufferData(m.ARRAY_BUFFER,$b,Wb)}if(qc){for(Hb=0;Hb<oc;Hb++)tc[Hb]=Pb[Hb];m.bindBuffer(m.ARRAY_BUFFER,l.__webglLineDistanceBuffer);m.bufferData(m.ARRAY_BUFFER,tc,Wb)}if(jc)for(ac=0,uc=jc.length;ac<uc;ac++)if(la=jc[ac],la.needsUpdate&&(void 0===la.boundTo||"vertices"===la.boundTo)){oa=0;Cb=la.value.length;if(1===la.size)for(Da=0;Da<Cb;Da++)la.array[Da]=la.value[Da];else if(2===la.size)for(Da=0;Da<Cb;Da++)Pa=la.value[Da],la.array[oa]=Pa.x,la.array[oa+1]=Pa.y,oa+=2;else if(3===
Pb=l.lineDistances,dc=Nb.length,ec=Ob.length,fc=Pb.length,Zb=l.__vertexArray,$b=l.__colorArray,tc=l.__lineDistanceArray,pc=l.colorsNeedUpdate,qc=l.lineDistancesNeedUpdate,kc=l.__webglCustomAttributesList,ac,uc,Da,Cb,Pa,la;if(l.verticesNeedUpdate){for(Fb=0;Fb<dc;Fb++)Xb=Nb[Fb],oa=3*Fb,Zb[oa]=Xb.x,Zb[oa+1]=Xb.y,Zb[oa+2]=Xb.z;m.bindBuffer(m.ARRAY_BUFFER,l.__webglVertexBuffer);m.bufferData(m.ARRAY_BUFFER,Zb,Wb)}if(pc){for(Gb=0;Gb<ec;Gb++)Yb=Ob[Gb],oa=3*Gb,$b[oa]=Yb.r,$b[oa+1]=Yb.g,$b[oa+2]=Yb.b;m.bindBuffer(m.ARRAY_BUFFER,
l.__webglColorBuffer);m.bufferData(m.ARRAY_BUFFER,$b,Wb)}if(qc){for(Hb=0;Hb<fc;Hb++)tc[Hb]=Pb[Hb];m.bindBuffer(m.ARRAY_BUFFER,l.__webglLineDistanceBuffer);m.bufferData(m.ARRAY_BUFFER,tc,Wb)}if(kc)for(ac=0,uc=kc.length;ac<uc;ac++)if(la=kc[ac],la.needsUpdate&&(void 0===la.boundTo||"vertices"===la.boundTo)){oa=0;Cb=la.value.length;if(1===la.size)for(Da=0;Da<Cb;Da++)la.array[Da]=la.value[Da];else if(2===la.size)for(Da=0;Da<Cb;Da++)Pa=la.value[Da],la.array[oa]=Pa.x,la.array[oa+1]=Pa.y,oa+=2;else if(3===
la.size)if("c"===la.type)for(Da=0;Da<Cb;Da++)Pa=la.value[Da],la.array[oa]=Pa.r,la.array[oa+1]=Pa.g,la.array[oa+2]=Pa.b,oa+=3;else for(Da=0;Da<Cb;Da++)Pa=la.value[Da],la.array[oa]=Pa.x,la.array[oa+1]=Pa.y,la.array[oa+2]=Pa.z,oa+=3;else if(4===la.size)for(Da=0;Da<Cb;Da++)Pa=la.value[Da],la.array[oa]=Pa.x,la.array[oa+1]=Pa.y,la.array[oa+2]=Pa.z,la.array[oa+3]=Pa.w,oa+=4;m.bindBuffer(m.ARRAY_BUFFER,la.buffer);m.bufferData(m.ARRAY_BUFFER,la.array,Wb)}}l.verticesNeedUpdate=!1;l.colorsNeedUpdate=!1;l.lineDistancesNeedUpdate=
!1;r.attributes&&A(r)}else if(b instanceof THREE.PointCloud){r=d(b,l);n=r.attributes&&C(r);if(l.verticesNeedUpdate||l.colorsNeedUpdate||b.sortParticles||n){var kc=m.DYNAMIC_DRAW,Qa,ib,jb,W,kb,vb,bc=l.vertices,lc=bc.length,mc=l.colors,vc=mc.length,zb=l.__vertexArray,Ab=l.__colorArray,qb=l.__sortArray,wc=l.verticesNeedUpdate,xc=l.colorsNeedUpdate,rb=l.__webglCustomAttributesList,$a,Db,aa,ab,ia,V;if(b.sortParticles){gc.copy(Sb);gc.multiply(b.matrixWorld);for(Qa=0;Qa<lc;Qa++)jb=bc[Qa],ua.copy(jb),ua.applyProjection(gc),
qb[Qa]=[ua.z,Qa];qb.sort(t);for(Qa=0;Qa<lc;Qa++)jb=bc[qb[Qa][1]],W=3*Qa,zb[W]=jb.x,zb[W+1]=jb.y,zb[W+2]=jb.z;for(ib=0;ib<vc;ib++)W=3*ib,vb=mc[qb[ib][1]],Ab[W]=vb.r,Ab[W+1]=vb.g,Ab[W+2]=vb.b;if(rb)for($a=0,Db=rb.length;$a<Db;$a++)if(V=rb[$a],void 0===V.boundTo||"vertices"===V.boundTo)if(W=0,ab=V.value.length,1===V.size)for(aa=0;aa<ab;aa++)kb=qb[aa][1],V.array[aa]=V.value[kb];else if(2===V.size)for(aa=0;aa<ab;aa++)kb=qb[aa][1],ia=V.value[kb],V.array[W]=ia.x,V.array[W+1]=ia.y,W+=2;else if(3===V.size)if("c"===
V.type)for(aa=0;aa<ab;aa++)kb=qb[aa][1],ia=V.value[kb],V.array[W]=ia.r,V.array[W+1]=ia.g,V.array[W+2]=ia.b,W+=3;else for(aa=0;aa<ab;aa++)kb=qb[aa][1],ia=V.value[kb],V.array[W]=ia.x,V.array[W+1]=ia.y,V.array[W+2]=ia.z,W+=3;else if(4===V.size)for(aa=0;aa<ab;aa++)kb=qb[aa][1],ia=V.value[kb],V.array[W]=ia.x,V.array[W+1]=ia.y,V.array[W+2]=ia.z,V.array[W+3]=ia.w,W+=4}else{if(wc)for(Qa=0;Qa<lc;Qa++)jb=bc[Qa],W=3*Qa,zb[W]=jb.x,zb[W+1]=jb.y,zb[W+2]=jb.z;if(xc)for(ib=0;ib<vc;ib++)vb=mc[ib],W=3*ib,Ab[W]=vb.r,
!1;r.attributes&&A(r)}else if(b instanceof THREE.PointCloud){r=d(b,l);n=r.attributes&&C(r);if(l.verticesNeedUpdate||l.colorsNeedUpdate||b.sortParticles||n){var lc=m.DYNAMIC_DRAW,Qa,ib,jb,W,kb,vb,bc=l.vertices,mc=bc.length,nc=l.colors,vc=nc.length,zb=l.__vertexArray,Ab=l.__colorArray,qb=l.__sortArray,wc=l.verticesNeedUpdate,xc=l.colorsNeedUpdate,rb=l.__webglCustomAttributesList,$a,Db,aa,ab,ia,V;if(b.sortParticles){hc.copy(Sb);hc.multiply(b.matrixWorld);for(Qa=0;Qa<mc;Qa++)jb=bc[Qa],ua.copy(jb),ua.applyProjection(hc),
qb[Qa]=[ua.z,Qa];qb.sort(t);for(Qa=0;Qa<mc;Qa++)jb=bc[qb[Qa][1]],W=3*Qa,zb[W]=jb.x,zb[W+1]=jb.y,zb[W+2]=jb.z;for(ib=0;ib<vc;ib++)W=3*ib,vb=nc[qb[ib][1]],Ab[W]=vb.r,Ab[W+1]=vb.g,Ab[W+2]=vb.b;if(rb)for($a=0,Db=rb.length;$a<Db;$a++)if(V=rb[$a],void 0===V.boundTo||"vertices"===V.boundTo)if(W=0,ab=V.value.length,1===V.size)for(aa=0;aa<ab;aa++)kb=qb[aa][1],V.array[aa]=V.value[kb];else if(2===V.size)for(aa=0;aa<ab;aa++)kb=qb[aa][1],ia=V.value[kb],V.array[W]=ia.x,V.array[W+1]=ia.y,W+=2;else if(3===V.size)if("c"===
V.type)for(aa=0;aa<ab;aa++)kb=qb[aa][1],ia=V.value[kb],V.array[W]=ia.r,V.array[W+1]=ia.g,V.array[W+2]=ia.b,W+=3;else for(aa=0;aa<ab;aa++)kb=qb[aa][1],ia=V.value[kb],V.array[W]=ia.x,V.array[W+1]=ia.y,V.array[W+2]=ia.z,W+=3;else if(4===V.size)for(aa=0;aa<ab;aa++)kb=qb[aa][1],ia=V.value[kb],V.array[W]=ia.x,V.array[W+1]=ia.y,V.array[W+2]=ia.z,V.array[W+3]=ia.w,W+=4}else{if(wc)for(Qa=0;Qa<mc;Qa++)jb=bc[Qa],W=3*Qa,zb[W]=jb.x,zb[W+1]=jb.y,zb[W+2]=jb.z;if(xc)for(ib=0;ib<vc;ib++)vb=nc[ib],W=3*ib,Ab[W]=vb.r,
Ab[W+1]=vb.g,Ab[W+2]=vb.b;if(rb)for($a=0,Db=rb.length;$a<Db;$a++)if(V=rb[$a],V.needsUpdate&&(void 0===V.boundTo||"vertices"===V.boundTo))if(ab=V.value.length,W=0,1===V.size)for(aa=0;aa<ab;aa++)V.array[aa]=V.value[aa];else if(2===V.size)for(aa=0;aa<ab;aa++)ia=V.value[aa],V.array[W]=ia.x,V.array[W+1]=ia.y,W+=2;else if(3===V.size)if("c"===V.type)for(aa=0;aa<ab;aa++)ia=V.value[aa],V.array[W]=ia.r,V.array[W+1]=ia.g,V.array[W+2]=ia.b,W+=3;else for(aa=0;aa<ab;aa++)ia=V.value[aa],V.array[W]=ia.x,V.array[W+
1]=ia.y,V.array[W+2]=ia.z,W+=3;else if(4===V.size)for(aa=0;aa<ab;aa++)ia=V.value[aa],V.array[W]=ia.x,V.array[W+1]=ia.y,V.array[W+2]=ia.z,V.array[W+3]=ia.w,W+=4}if(wc||b.sortParticles)m.bindBuffer(m.ARRAY_BUFFER,l.__webglVertexBuffer),m.bufferData(m.ARRAY_BUFFER,zb,kc);if(xc||b.sortParticles)m.bindBuffer(m.ARRAY_BUFFER,l.__webglColorBuffer),m.bufferData(m.ARRAY_BUFFER,Ab,kc);if(rb)for($a=0,Db=rb.length;$a<Db;$a++)if(V=rb[$a],V.needsUpdate||b.sortParticles)m.bindBuffer(m.ARRAY_BUFFER,V.buffer),m.bufferData(m.ARRAY_BUFFER,
V.array,kc)}l.verticesNeedUpdate=!1;l.colorsNeedUpdate=!1;r.attributes&&A(r)}for(var Bb=0,nc=k.length;Bb<nc;Bb++){var cc=k[Bb],lb=cc,yc=lb.object,rc=lb.buffer,sc=yc.geometry,mb=yc.material;mb instanceof THREE.MeshFaceMaterial?(mb=mb.materials[sc instanceof THREE.BufferGeometry?0:rc.materialIndex],mb.transparent?(lb.material=mb,va.push(lb)):(lb.material=mb,sa.push(lb))):mb&&(mb.transparent?(lb.material=mb,va.push(lb)):(lb.material=mb,sa.push(lb)));cc.render=!0;!0===$&&(null!==b.renderDepth?cc.z=b.renderDepth:
(ua.setFromMatrixPosition(b.matrixWorld),ua.applyProjection(Sb),cc.z=ua.z))}}Bb=0;for(nc=b.children.length;Bb<nc;Bb++)s(a,b.children[Bb],h)}}function n(a,b,c){if(a.length)for(var d=0,e=a.length;d<e;d++)za=Ha=null,ya=Fa=wa=Aa=Ba=ta=ga=-1,Ya=!0,a[d].render(b,c,Qb,Rb),za=Ha=null,ya=Fa=wa=Aa=Ba=ta=ga=-1,Ya=!0}function v(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;var l=h;l._modelViewMatrix.multiplyMatrices(b.matrixWorldInverse,l.matrixWorld);l._normalMatrix.getNormalMatrix(l._modelViewMatrix);
1]=ia.y,V.array[W+2]=ia.z,W+=3;else if(4===V.size)for(aa=0;aa<ab;aa++)ia=V.value[aa],V.array[W]=ia.x,V.array[W+1]=ia.y,V.array[W+2]=ia.z,V.array[W+3]=ia.w,W+=4}if(wc||b.sortParticles)m.bindBuffer(m.ARRAY_BUFFER,l.__webglVertexBuffer),m.bufferData(m.ARRAY_BUFFER,zb,lc);if(xc||b.sortParticles)m.bindBuffer(m.ARRAY_BUFFER,l.__webglColorBuffer),m.bufferData(m.ARRAY_BUFFER,Ab,lc);if(rb)for($a=0,Db=rb.length;$a<Db;$a++)if(V=rb[$a],V.needsUpdate||b.sortParticles)m.bindBuffer(m.ARRAY_BUFFER,V.buffer),m.bufferData(m.ARRAY_BUFFER,
V.array,lc)}l.verticesNeedUpdate=!1;l.colorsNeedUpdate=!1;r.attributes&&A(r)}for(var Bb=0,oc=k.length;Bb<oc;Bb++){var cc=k[Bb],lb=cc,yc=lb.object,rc=lb.buffer,sc=yc.geometry,mb=yc.material;mb instanceof THREE.MeshFaceMaterial?(mb=mb.materials[sc instanceof THREE.BufferGeometry?0:rc.materialIndex],mb.transparent?(lb.material=mb,va.push(lb)):(lb.material=mb,sa.push(lb))):mb&&(mb.transparent?(lb.material=mb,va.push(lb)):(lb.material=mb,sa.push(lb)));cc.render=!0;!0===$&&(null!==b.renderDepth?cc.z=b.renderDepth:
(ua.setFromMatrixPosition(b.matrixWorld),ua.applyProjection(Sb),cc.z=ua.z))}}Bb=0;for(oc=b.children.length;Bb<oc;Bb++)s(a,b.children[Bb],h)}}function n(a,b,c){if(0!==a.length)for(var d=0,e=a.length;d<e;d++)za=Ha=null,ya=Fa=wa=Aa=Ba=ta=ga=-1,Ya=!0,a[d].render(b,c,Qb,Rb),za=Ha=null,ya=Fa=wa=Aa=Ba=ta=ga=-1,Ya=!0}function v(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;var l=h;l._modelViewMatrix.multiplyMatrices(b.matrixWorldInverse,l.matrixWorld);l._normalMatrix.getNormalMatrix(l._modelViewMatrix);
if(f)g=f;else{g=g.material;if(!g)continue;e&&P.setBlending(g.blending,g.blendEquation,g.blendSrc,g.blendDst);P.setDepthTest(g.depthTest);P.setDepthWrite(g.depthWrite);K(g.polygonOffset,g.polygonOffsetFactor,g.polygonOffsetUnits)}P.setMaterialFaces(g);k instanceof THREE.BufferGeometry?P.renderBufferDirect(b,c,d,g,k,h):P.renderBuffer(b,c,d,g,k,h)}}function u(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&&P.setBlending(h.blending,
h.blendEquation,h.blendSrc,h.blendDst);P.setDepthTest(h.depthTest);P.setDepthWrite(h.depthWrite);K(h.polygonOffset,h.polygonOffsetFactor,h.polygonOffsetUnits)}P.renderImmediateObject(c,d,e,h,k)}}function w(a,b,d){var e,f=!1;e=b.material;void 0===d.geometryGroups&&(delete a.__webglObjects[b.id],d.makeGroups(e instanceof THREE.MeshFaceMaterial,pb?4294967296:65535));for(var g=0,h=d.geometryGroupsList.length;g<h;g++){e=d.geometryGroupsList[g];if(e.__webglVertexBuffer)f=!1;else{f=e;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();var k=void 0,l=void 0;if(f.numMorphTargets)for(f.__webglMorphTargetsBuffers=[],k=0,l=f.numMorphTargets;k<l;k++)f.__webglMorphTargetsBuffers.push(m.createBuffer());
......@@ -440,7 +440,7 @@ b[c],l.castShadow&&(l instanceof THREE.SpotLight||l instanceof THREE.Directional
else if("v3"===n)m.uniform3f(f,l.x,l.y,l.z);else if("v4"===n)m.uniform4f(f,l.x,l.y,l.z,l.w);else if("c"===n)m.uniform3f(f,l.r,l.g,l.b);else if("iv1"===n)m.uniform1iv(f,l);else if("iv"===n)m.uniform3iv(f,l);else if("fv1"===n)m.uniform1fv(f,l);else if("fv"===n)m.uniform3fv(f,l);else if("v2v"===n){void 0===c._array&&(c._array=new Float32Array(2*l.length));n=0;for(r=l.length;n<r;n++)u=2*n,c._array[u]=l[n].x,c._array[u+1]=l[n].y;m.uniform2fv(f,c._array)}else if("v3v"===n){void 0===c._array&&(c._array=
new Float32Array(3*l.length));n=0;for(r=l.length;n<r;n++)u=3*n,c._array[u]=l[n].x,c._array[u+1]=l[n].y,c._array[u+2]=l[n].z;m.uniform3fv(f,c._array)}else if("v4v"===n){void 0===c._array&&(c._array=new Float32Array(4*l.length));n=0;for(r=l.length;n<r;n++)u=4*n,c._array[u]=l[n].x,c._array[u+1]=l[n].y,c._array[u+2]=l[n].z,c._array[u+3]=l[n].w;m.uniform4fv(f,c._array)}else if("m3"===n)m.uniformMatrix3fv(f,!1,l.elements);else if("m3v"===n){void 0===c._array&&(c._array=new Float32Array(9*l.length));n=0;
for(r=l.length;n<r;n++)l[n].flattenToArrayOffset(c._array,9*n);m.uniformMatrix3fv(f,!1,c._array)}else if("m4"===n)m.uniformMatrix4fv(f,!1,l.elements);else if("m4v"===n){void 0===c._array&&(c._array=new Float32Array(16*l.length));n=0;for(r=l.length;n<r;n++)l[n].flattenToArrayOffset(c._array,16*n);m.uniformMatrix4fv(f,!1,c._array)}else if("t"===n){if(u=l,l=F(),m.uniform1i(f,l),u)if(u instanceof THREE.CubeTexture||u.image instanceof Array&&6===u.image.length){if(c=u,f=l,6===c.image.length)if(c.needsUpdate){c.image.__webglTextureCube||
(c.addEventListener("dispose",Eb),c.image.__webglTextureCube=m.createTexture(),P.info.memory.textures++);m.activeTexture(m.TEXTURE0+f);m.bindTexture(m.TEXTURE_CUBE_MAP,c.image.__webglTextureCube);m.pixelStorei(m.UNPACK_FLIP_Y_WEBGL,c.flipY);f=c instanceof THREE.CompressedTexture;l=[];for(n=0;6>n;n++)P.autoScaleCubemaps&&!f?(r=l,u=n,v=c.image[n],y=oc,v.width<=y&&v.height<=y||(C=Math.max(v.width,v.height),w=Math.floor(v.width*y/C),y=Math.floor(v.height*y/C),C=document.createElement("canvas"),C.width=
(c.addEventListener("dispose",Eb),c.image.__webglTextureCube=m.createTexture(),P.info.memory.textures++);m.activeTexture(m.TEXTURE0+f);m.bindTexture(m.TEXTURE_CUBE_MAP,c.image.__webglTextureCube);m.pixelStorei(m.UNPACK_FLIP_Y_WEBGL,c.flipY);f=c instanceof THREE.CompressedTexture;l=[];for(n=0;6>n;n++)P.autoScaleCubemaps&&!f?(r=l,u=n,v=c.image[n],y=pc,v.width<=y&&v.height<=y||(C=Math.max(v.width,v.height),w=Math.floor(v.width*y/C),y=Math.floor(v.height*y/C),C=document.createElement("canvas"),C.width=
w,C.height=y,C.getContext("2d").drawImage(v,0,0,v.width,v.height,0,0,w,y),v=C),r[u]=v):l[n]=c.image[n];n=l[0];r=THREE.Math.isPowerOfTwo(n.width)&&THREE.Math.isPowerOfTwo(n.height);u=G(c.format);v=G(c.type);I(m.TEXTURE_CUBE_MAP,c,r);for(n=0;6>n;n++)if(f)for(y=l[n].mipmaps,C=0,A=y.length;C<A;C++)w=y[C],c.format!==THREE.RGBAFormat?m.compressedTexImage2D(m.TEXTURE_CUBE_MAP_POSITIVE_X+n,C,u,w.width,w.height,0,w.data):m.texImage2D(m.TEXTURE_CUBE_MAP_POSITIVE_X+n,C,u,w.width,w.height,0,u,v,w.data);else m.texImage2D(m.TEXTURE_CUBE_MAP_POSITIVE_X+
n,0,u,u,v,l[n]);c.generateMipmaps&&r&&m.generateMipmap(m.TEXTURE_CUBE_MAP);c.needsUpdate=!1;if(c.onUpdate)c.onUpdate()}else m.activeTexture(m.TEXTURE0+f),m.bindTexture(m.TEXTURE_CUBE_MAP,c.image.__webglTextureCube)}else u instanceof THREE.WebGLRenderTargetCube?(c=u,m.activeTexture(m.TEXTURE0+l),m.bindTexture(m.TEXTURE_CUBE_MAP,c.__webglTexture)):P.setTexture(u,l)}else if("tv"===n){void 0===c._array&&(c._array=[]);n=0;for(r=c.value.length;n<r;n++)c._array[n]=F();m.uniform1iv(f,c._array);n=0;for(r=
c.value.length;n<r;n++)u=c.value[n],l=c._array[n],u&&P.setTexture(u,l)}else console.warn("THREE.WebGLRenderer: Unknown uniform type: "+n);(d instanceof THREE.ShaderMaterial||d instanceof THREE.MeshPhongMaterial||d.envMap)&&null!==h.cameraPosition&&(ua.setFromMatrixPosition(a.matrixWorld),m.uniform3f(h.cameraPosition,ua.x,ua.y,ua.z));(d instanceof THREE.MeshPhongMaterial||d instanceof THREE.MeshLambertMaterial||d instanceof THREE.ShaderMaterial||d.skinning)&&null!==h.viewMatrix&&m.uniformMatrix4fv(h.viewMatrix,
......@@ -453,21 +453,21 @@ if(a===THREE.UnsignedShort5551Type)return m.UNSIGNED_SHORT_5_5_5_1;if(a===THREE.
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;if(void 0!==Sa){if(a===THREE.RGB_S3TC_DXT1_Format)return Sa.COMPRESSED_RGB_S3TC_DXT1_EXT;if(a===THREE.RGBA_S3TC_DXT1_Format)return Sa.COMPRESSED_RGBA_S3TC_DXT1_EXT;
if(a===THREE.RGBA_S3TC_DXT3_Format)return Sa.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(a===THREE.RGBA_S3TC_DXT5_Format)return Sa.COMPRESSED_RGBA_S3TC_DXT5_EXT}return 0}console.log("THREE.WebGLRenderer",THREE.REVISION);a=a||{};var L=void 0!==a.canvas?a.canvas:document.createElement("canvas"),H=void 0!==a.context?a.context:null,N=void 0!==a.precision?a.precision:"highp",T=void 0!==a.alpha?a.alpha:!1,ka=void 0!==a.depth?a.depth:!0,S=void 0!==a.stencil?a.stencil:!0,Y=void 0!==a.antialias?a.antialias:!1,O=void 0!==
a.premultipliedAlpha?a.premultipliedAlpha:!0,fa=void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:!1,ha=void 0!==a.logarithmicDepthBuffer?a.logarithmicDepthBuffer:!1,X=new THREE.Color(0),qa=0,sa=[],va=[],$=!0;this.domElement=L;this.context=null;this.devicePixelRatio=void 0!==a.devicePixelRatio?a.devicePixelRatio:void 0!==self.devicePixelRatio?self.devicePixelRatio:1;this.autoUpdateObjects=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 P=this,xa=[],Ha=null,La=null,ya=-1,Fa=null,za=null,Ta=0,Aa=-1,wa=-1,ga=-1,Ia=-1,U=-1,
ja=-1,ta=-1,Ba=-1,Ja=null,Ma=null,Na=null,ea=null,Ka=0,Ea=0,ma=L.width,wb=L.height,Qb=0,Rb=0,sb=new Uint8Array(16),nb=new Uint8Array(16),fc=new THREE.Frustum,Sb=new THREE.Matrix4,gc=new THREE.Matrix4,ua=new THREE.Vector3,na=new THREE.Vector3,Ya=!0,Tb={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,ob,tb,bb,Sa,pb;(function(){try{var a={alpha:T,depth:ka,stencil:S,antialias:Y,premultipliedAlpha:O,preserveDrawingBuffer:fa};m=H||L.getContext("webgl",a)||L.getContext("experimental-webgl",a);if(null===m)throw"Error creating WebGL context.";}catch(b){console.error(b)}ob=m.getExtension("OES_texture_float");m.getExtension("OES_texture_float_linear");tb=m.getExtension("OES_standard_derivatives");bb=m.getExtension("EXT_texture_filter_anisotropic")||m.getExtension("MOZ_EXT_texture_filter_anisotropic")||
a.premultipliedAlpha?a.premultipliedAlpha:!0,fa=void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:!1,ha=void 0!==a.logarithmicDepthBuffer?a.logarithmicDepthBuffer:!1,X=new THREE.Color(0),qa=0,sa=[],va=[],$=!0;this.domElement=L;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 P=this,xa=[],Ha=null,La=null,ya=-1,Fa=null,za=null,Ta=0,Aa=-1,wa=-1,ga=-1,Ia=-1,U=-1,ja=-1,ta=-1,Ba=
-1,Ja=null,Ma=null,Na=null,ea=null,Ka=0,Ea=0,ma=L.width,wb=L.height,Qb=0,Rb=0,sb=new Uint8Array(16),nb=new Uint8Array(16),gc=new THREE.Frustum,Sb=new THREE.Matrix4,hc=new THREE.Matrix4,ua=new THREE.Vector3,na=new THREE.Vector3,Ya=!0,Tb={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,ob,tb,bb,Sa,pb;(function(){try{var a={alpha:T,depth:ka,stencil:S,antialias:Y,premultipliedAlpha:O,preserveDrawingBuffer:fa};m=H||L.getContext("webgl",a)||L.getContext("experimental-webgl",a);if(null===m)throw"Error creating WebGL context.";}catch(b){console.error(b)}ob=m.getExtension("OES_texture_float");m.getExtension("OES_texture_float_linear");tb=m.getExtension("OES_standard_derivatives");bb=m.getExtension("EXT_texture_filter_anisotropic")||m.getExtension("MOZ_EXT_texture_filter_anisotropic")||
m.getExtension("WEBKIT_EXT_texture_filter_anisotropic");Sa=m.getExtension("WEBGL_compressed_texture_s3tc")||m.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||m.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");pb=m.getExtension("OES_element_index_uint");null===ob&&console.log("THREE.WebGLRenderer: Float textures not supported.");null===tb&&console.log("THREE.WebGLRenderer: Standard derivatives not supported.");null===bb&&console.log("THREE.WebGLRenderer: Anisotropic texture filtering not supported.");
null===Sa&&console.log("THREE.WebGLRenderer: S3TC compressed textures not supported.");null===pb&&console.log("THREE.WebGLRenderer: elementindex as unsigned integer not supported.");void 0===m.getShaderPrecisionFormat&&(m.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}});ha&&m.getExtension("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(Ka,Ea,ma,wb);m.clearColor(X.r,X.g,X.b,qa);this.context=m;var Kb=m.getParameter(m.MAX_TEXTURE_IMAGE_UNITS),pc=m.getParameter(m.MAX_VERTEX_TEXTURE_IMAGE_UNITS);m.getParameter(m.MAX_TEXTURE_SIZE);var oc=m.getParameter(m.MAX_CUBE_MAP_TEXTURE_SIZE),Lb=bb?m.getParameter(bb.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0,Mb=0<pc,Jb=Mb&&ob;Sa&&m.getParameter(m.COMPRESSED_TEXTURE_FORMATS);var qc=m.getShaderPrecisionFormat(m.VERTEX_SHADER,
m.HIGH_FLOAT),rc=m.getShaderPrecisionFormat(m.VERTEX_SHADER,m.MEDIUM_FLOAT);m.getShaderPrecisionFormat(m.VERTEX_SHADER,m.LOW_FLOAT);var sc=m.getShaderPrecisionFormat(m.FRAGMENT_SHADER,m.HIGH_FLOAT),zc=m.getShaderPrecisionFormat(m.FRAGMENT_SHADER,m.MEDIUM_FLOAT);m.getShaderPrecisionFormat(m.FRAGMENT_SHADER,m.LOW_FLOAT);var Ac=0<qc.precision&&0<sc.precision,Nb=0<rc.precision&&0<zc.precision;"highp"!==N||Ac||(Nb?(N="mediump",console.warn("THREE.WebGLRenderer: highp not supported, using mediump.")):(N=
m.enable(m.BLEND);m.blendEquation(m.FUNC_ADD);m.blendFunc(m.SRC_ALPHA,m.ONE_MINUS_SRC_ALPHA);m.viewport(Ka,Ea,ma,wb);m.clearColor(X.r,X.g,X.b,qa);this.context=m;var Kb=m.getParameter(m.MAX_TEXTURE_IMAGE_UNITS),qc=m.getParameter(m.MAX_VERTEX_TEXTURE_IMAGE_UNITS);m.getParameter(m.MAX_TEXTURE_SIZE);var pc=m.getParameter(m.MAX_CUBE_MAP_TEXTURE_SIZE),Lb=bb?m.getParameter(bb.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0,Mb=0<qc,Jb=Mb&&ob;Sa&&m.getParameter(m.COMPRESSED_TEXTURE_FORMATS);var rc=m.getShaderPrecisionFormat(m.VERTEX_SHADER,
m.HIGH_FLOAT),sc=m.getShaderPrecisionFormat(m.VERTEX_SHADER,m.MEDIUM_FLOAT);m.getShaderPrecisionFormat(m.VERTEX_SHADER,m.LOW_FLOAT);var zc=m.getShaderPrecisionFormat(m.FRAGMENT_SHADER,m.HIGH_FLOAT),Ac=m.getShaderPrecisionFormat(m.FRAGMENT_SHADER,m.MEDIUM_FLOAT);m.getShaderPrecisionFormat(m.FRAGMENT_SHADER,m.LOW_FLOAT);var Bc=0<rc.precision&&0<zc.precision,Nb=0<sc.precision&&0<Ac.precision;"highp"!==N||Bc||(Nb?(N="mediump",console.warn("THREE.WebGLRenderer: highp not supported, using mediump.")):(N=
"lowp",console.warn("THREE.WebGLRenderer: highp and mediump not supported, using lowp.")));"mediump"!==N||Nb||(N="lowp",console.warn("THREE.WebGLRenderer: mediump not supported, using lowp."));this.getContext=function(){return m};this.supportsVertexTextures=function(){return Mb};this.supportsFloatTextures=function(){return ob};this.supportsStandardDerivatives=function(){return tb};this.supportsCompressedTextureS3TC=function(){return Sa};this.getMaxAnisotropy=function(){return Lb};this.getPrecision=
function(){return N};this.setSize=function(a,b,c){L.width=a*this.devicePixelRatio;L.height=b*this.devicePixelRatio;!1!==c&&(L.style.width=a+"px",L.style.height=b+"px");this.setViewport(0,0,a,b)};this.setViewport=function(a,b,c,d){Ka=a*this.devicePixelRatio;Ea=b*this.devicePixelRatio;ma=c*this.devicePixelRatio;wb=d*this.devicePixelRatio;m.viewport(Ka,Ea,ma,wb)};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){X.set(a);qa=void 0!==b?b:1;m.clearColor(X.r,X.g,X.b,qa)};this.setClearColorHex=function(a,b){console.warn("THREE.WebGLRenderer: .setClearColorHex() is being removed. Use .setClearColor() instead.");this.setClearColor(a,b)};this.getClearColor=function(){return X};this.getClearAlpha=function(){return qa};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);this.renderPluginsPost.push(a)};this.addPrePlugin=function(a){a.init(this);this.renderPluginsPre.push(a)};this.updateShadowMap=
function(a,b){Ha=null;ya=Fa=Ba=ta=ga=-1;Ya=!0;wa=Aa=-1;this.shadowMapPlugin.update(a,b)};var Ob=function(a){a=a.target;a.removeEventListener("dispose",Ob);a.__webglInit=void 0;if(a instanceof THREE.BufferGeometry){a=a.attributes;for(var b in a)void 0!==a[b].buffer&&m.deleteBuffer(a[b].buffer);P.info.memory.geometries--}else if(void 0!==a.geometryGroups){b=0;for(var c=a.geometryGroupsList.length;b<c;b++){var d=a.geometryGroupsList[b];if(void 0!==d.numMorphTargets)for(var e=0,f=d.numMorphTargets;e<
f;e++)m.deleteBuffer(d.__webglMorphTargetsBuffers[e]);if(void 0!==d.numMorphNormals)for(e=0,f=d.numMorphNormals;e<f;e++)m.deleteBuffer(d.__webglMorphNormalsBuffers[e]);Pb(d)}}else Pb(a)},Eb=function(a){a=a.target;a.removeEventListener("dispose",Eb);a.image&&a.image.__webglTextureCube?m.deleteTexture(a.image.__webglTextureCube):a.__webglInit&&(a.__webglInit=!1,m.deleteTexture(a.__webglTexture));P.info.memory.textures--},dc=function(a){a=a.target;a.removeEventListener("dispose",dc);if(a&&a.__webglTexture)if(m.deleteTexture(a.__webglTexture),
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);P.info.memory.textures--},ec=function(a){a=a.target;a.removeEventListener("dispose",ec);Ib(a)},Pb=function(a){void 0!==a.__webglVertexBuffer&&m.deleteBuffer(a.__webglVertexBuffer);void 0!==a.__webglNormalBuffer&&m.deleteBuffer(a.__webglNormalBuffer);void 0!==
function(a,b){Ha=null;ya=Fa=Ba=ta=ga=-1;Ya=!0;wa=Aa=-1;Ob(a);this.shadowMapPlugin.update(a,b)};var Pb=function(a){a=a.target;a.removeEventListener("dispose",Pb);a.__webglInit=void 0;if(a instanceof THREE.BufferGeometry){a=a.attributes;for(var b in a)void 0!==a[b].buffer&&m.deleteBuffer(a[b].buffer);P.info.memory.geometries--}else if(void 0!==a.geometryGroups){b=0;for(var c=a.geometryGroupsList.length;b<c;b++){var d=a.geometryGroupsList[b];if(void 0!==d.numMorphTargets)for(var e=0,f=d.numMorphTargets;e<
f;e++)m.deleteBuffer(d.__webglMorphTargetsBuffers[e]);if(void 0!==d.numMorphNormals)for(e=0,f=d.numMorphNormals;e<f;e++)m.deleteBuffer(d.__webglMorphNormalsBuffers[e]);dc(d)}}else dc(a)},Eb=function(a){a=a.target;a.removeEventListener("dispose",Eb);a.image&&a.image.__webglTextureCube?m.deleteTexture(a.image.__webglTextureCube):a.__webglInit&&(a.__webglInit=!1,m.deleteTexture(a.__webglTexture));P.info.memory.textures--},ec=function(a){a=a.target;a.removeEventListener("dispose",ec);if(a&&a.__webglTexture)if(m.deleteTexture(a.__webglTexture),
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);P.info.memory.textures--},fc=function(a){a=a.target;a.removeEventListener("dispose",fc);Ib(a)},dc=function(a){void 0!==a.__webglVertexBuffer&&m.deleteBuffer(a.__webglVertexBuffer);void 0!==a.__webglNormalBuffer&&m.deleteBuffer(a.__webglNormalBuffer);void 0!==
a.__webglTangentBuffer&&m.deleteBuffer(a.__webglTangentBuffer);void 0!==a.__webglColorBuffer&&m.deleteBuffer(a.__webglColorBuffer);void 0!==a.__webglUVBuffer&&m.deleteBuffer(a.__webglUVBuffer);void 0!==a.__webglUV2Buffer&&m.deleteBuffer(a.__webglUV2Buffer);void 0!==a.__webglSkinIndicesBuffer&&m.deleteBuffer(a.__webglSkinIndicesBuffer);void 0!==a.__webglSkinWeightsBuffer&&m.deleteBuffer(a.__webglSkinWeightsBuffer);void 0!==a.__webglFaceBuffer&&m.deleteBuffer(a.__webglFaceBuffer);void 0!==a.__webglLineBuffer&&
m.deleteBuffer(a.__webglLineBuffer);void 0!==a.__webglLineDistanceBuffer&&m.deleteBuffer(a.__webglLineDistanceBuffer);if(void 0!==a.__webglCustomAttributesList)for(var b in a.__webglCustomAttributesList)m.deleteBuffer(a.__webglCustomAttributesList[b].buffer);P.info.memory.geometries--},Ib=function(a){var b=a.program.program;if(void 0!==b){a.program=void 0;var c,d,e=!1;a=0;for(c=xa.length;a<c;a++)if(d=xa[a],d.program===b){d.usedTimes--;0===d.usedTimes&&(e=!0);break}if(!0===e){e=[];a=0;for(c=xa.length;a<
c;a++)d=xa[a],d.program!==b&&e.push(d);xa=e;m.deleteProgram(b);P.info.memory.programs--}}};this.renderBufferImmediate=function(a,b,c){k();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),
......@@ -486,27 +486,27 @@ f.__webglMorphTargetInfluences)}if(a){if(e.__webglCustomAttributesList)for(g=0,h
d.defaultAttributeValues&&m.vertexAttrib2fv(b.uv,d.defaultAttributeValues.uv));0<=b.uv2&&(f.geometry.faceVertexUvs[1]?(m.bindBuffer(m.ARRAY_BUFFER,e.__webglUV2Buffer),l(b.uv2),m.vertexAttribPointer(b.uv2,2,m.FLOAT,!1,0,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),l(b.skinIndex),m.vertexAttribPointer(b.skinIndex,4,m.FLOAT,!1,0,0),m.bindBuffer(m.ARRAY_BUFFER,
e.__webglSkinWeightsBuffer),l(b.skinWeight),m.vertexAttribPointer(b.skinWeight,4,m.FLOAT,!1,0,0));0<=b.lineDistance&&(m.bindBuffer(m.ARRAY_BUFFER,e.__webglLineDistanceBuffer),l(b.lineDistance),m.vertexAttribPointer(b.lineDistance,1,m.FLOAT,!1,0,0))}p();f instanceof THREE.Mesh?(f=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,f,0)):(a&&m.bindBuffer(m.ELEMENT_ARRAY_BUFFER,
e.__webglFaceBuffer),m.drawElements(m.TRIANGLES,e.__webglFaceCount,f,0)),P.info.render.calls++,P.info.render.vertices+=e.__webglFaceCount,P.info.render.faces+=e.__webglFaceCount/3):f instanceof THREE.Line?(f=f.type===THREE.LineStrip?m.LINE_STRIP:m.LINES,Q(d.linewidth),m.drawArrays(f,0,e.__webglLineCount),P.info.render.calls++):f instanceof THREE.PointCloud&&(m.drawArrays(m.POINTS,0,e.__webglParticleCount),P.info.render.calls++,P.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,k=a.__lights,l=a.fog;ya=-1;Ya=!0;!0===a.autoUpdate&&a.updateMatrixWorld();void 0===b.parent&&b.updateMatrixWorld();b.matrixWorldInverse.getInverse(b.matrixWorld);Sb.multiplyMatrices(b.projectionMatrix,b.matrixWorldInverse);fc.setFromMatrix(Sb);this.autoUpdateObjects&&this.initWebGLObjects(a);sa.length=0;va.length=0;$=this.sortObjects;s(a,a,b);this.sortObjects&&
(sa.sort(q),va.sort(r));n(this.renderPluginsPre,a,b);P.info.render.calls=0;P.info.render.vertices=0;P.info.render.faces=0;P.info.render.points=0;this.setRenderTarget(c);(this.autoClear||d)&&this.clear(this.autoClearColor,this.autoClearDepth,this.autoClearStencil);h=a.__webglObjectsImmediate;d=0;for(e=h.length;d<e;d++)f=h[d],g=f.object,g.visible&&(g._modelViewMatrix.multiplyMatrices(b.matrixWorldInverse,g.matrixWorld),g._normalMatrix.getNormalMatrix(g._modelViewMatrix),g=f.object.material,g.transparent?
(f.transparent=g,f.opaque=null):(f.opaque=g,f.transparent=null));a.overrideMaterial?(d=a.overrideMaterial,this.setBlending(d.blending,d.blendEquation,d.blendSrc,d.blendDst),this.setDepthTest(d.depthTest),this.setDepthWrite(d.depthWrite),K(d.polygonOffset,d.polygonOffsetFactor,d.polygonOffsetUnits),v(sa,b,k,l,!0,d),v(va,b,k,l,!0,d),u(a.__webglObjectsImmediate,"",b,k,l,!1,d)):(d=null,this.setBlending(THREE.NoBlending),v(sa,b,k,l,!1,d),u(a.__webglObjectsImmediate,"opaque",b,k,l,!1,d),v(va,b,k,l,!0,d),
u(a.__webglObjectsImmediate,"transparent",b,k,l,!0,d));n(this.renderPluginsPost,a,b);c&&c.generateMipmaps&&c.minFilter!==THREE.NearestFilter&&c.minFilter!==THREE.LinearFilter&&(c instanceof THREE.WebGLRenderTargetCube?(m.bindTexture(m.TEXTURE_CUBE_MAP,c.__webglTexture),m.generateMipmap(m.TEXTURE_CUBE_MAP),m.bindTexture(m.TEXTURE_CUBE_MAP,null)):(m.bindTexture(m.TEXTURE_2D,c.__webglTexture),m.generateMipmap(m.TEXTURE_2D),m.bindTexture(m.TEXTURE_2D,null)));this.setDepthTest(!0);this.setDepthWrite(!0)}};
this.renderImmediateObject=function(a,b,c,d,e){var f=B(a,b,c,d,e);Fa=-1;P.setMaterialFaces(d);e.immediateRenderCallback?e.immediateRenderCallback(f,m,fc):e.render(function(a){P.renderBufferImmediate(a,f,d)})};this.initWebGLObjects=function(a){a.__webglObjects||(a.__webglObjects={},a.__webglObjectsImmediate=[]);for(;a.__objectsAdded.length;){var c=a.__objectsAdded[0],d=a,e=void 0,f=void 0;void 0===c.__webglInit&&(c.__webglInit=!0,c._modelViewMatrix=new THREE.Matrix4,c._normalMatrix=new THREE.Matrix3);
e=c.geometry;if(void 0!==e&&void 0===e.__webglInit)if(e.__webglInit=!0,e.addEventListener("dispose",Ob),e instanceof THREE.BufferGeometry)g(e);else if(c instanceof THREE.Mesh)void 0!==c.__webglActive&&E(c,d),w(d,c,e);else if(c instanceof THREE.Line){if(!e.__webglVertexBuffer){f=e;f.__webglVertexBuffer=m.createBuffer();f.__webglColorBuffer=m.createBuffer();f.__webglLineDistanceBuffer=m.createBuffer();P.info.memory.geometries++;var f=e,h=c,k=f.vertices.length;f.__vertexArray=new Float32Array(3*k);f.__colorArray=
new Float32Array(3*k);f.__lineDistanceArray=new Float32Array(1*k);f.__webglLineCount=k;b(f,h);e.verticesNeedUpdate=!0;e.colorsNeedUpdate=!0;e.lineDistancesNeedUpdate=!0}}else c instanceof THREE.PointCloud&&!e.__webglVertexBuffer&&(f=e,f.__webglVertexBuffer=m.createBuffer(),f.__webglColorBuffer=m.createBuffer(),P.info.memory.geometries++,f=e,h=c,k=f.vertices.length,f.__vertexArray=new Float32Array(3*k),f.__colorArray=new Float32Array(3*k),f.__sortArray=[],f.__webglParticleCount=k,b(f,h),e.verticesNeedUpdate=
!0,e.colorsNeedUpdate=!0);if(void 0===c.__webglActive){if(c instanceof THREE.Mesh)if(e=c.geometry,e instanceof THREE.BufferGeometry)y(d.__webglObjects,e,c);else{if(e instanceof THREE.Geometry)for(h=0,k=e.geometryGroupsList.length;h<k;h++)f=e.geometryGroupsList[h],y(d.__webglObjects,f,c)}else c instanceof THREE.Line||c instanceof THREE.PointCloud?(e=c.geometry,y(d.__webglObjects,e,c)):(c instanceof THREE.ImmediateRenderObject||c.immediateRenderCallback)&&d.__webglObjectsImmediate.push({id:null,object:c,
opaque:null,transparent:null,z:0});c.__webglActive=!0}a.__objectsAdded.splice(0,1)}for(;a.__objectsRemoved.length;)E(a.__objectsRemoved[0],a),a.__objectsRemoved.splice(0,1)};this.initMaterial=function(a,b,c,d){var e,f,g,h;a.addEventListener("dispose",ec);var k,l,n,p;a instanceof THREE.MeshDepthMaterial?p="depth":a instanceof THREE.MeshNormalMaterial?p="normal":a instanceof THREE.MeshBasicMaterial?p="basic":a instanceof THREE.MeshLambertMaterial?p="lambert":a instanceof THREE.MeshPhongMaterial?p="phong":
a instanceof THREE.LineBasicMaterial?p="basic":a instanceof THREE.LineDashedMaterial?p="dashed":a instanceof THREE.PointCloudMaterial&&(p="particle_basic");p&&(e=THREE.ShaderLib[p],a.uniforms=THREE.UniformsUtils.clone(e.uniforms),a.vertexShader=e.vertexShader,a.fragmentShader=e.fragmentShader);n=h=g=f=e=0;for(var r=b.length;n<r;n++){var q=b[n];q.onlyShadow||!1===q.visible||(q instanceof THREE.DirectionalLight&&e++,q instanceof THREE.PointLight&&f++,q instanceof THREE.SpotLight&&g++,q instanceof THREE.HemisphereLight&&
h++)}r=n=0;for(q=b.length;r<q;r++){var s=b[r];s.castShadow&&(s instanceof THREE.SpotLight&&n++,s instanceof THREE.DirectionalLight&&!s.shadowCascade&&n++)}b=n;Jb&&d&&d.skeleton&&d.skeleton.useVertexTexture?n=1024:(n=m.getParameter(m.MAX_VERTEX_UNIFORM_VECTORS),n=Math.floor((n-20)/4),void 0!==d&&d instanceof THREE.SkinnedMesh&&(n=Math.min(d.skeleton.bones.length,n),n<d.skeleton.bones.length&&console.warn("WebGLRenderer: too many bones - "+d.skeleton.bones.length+", this GPU supports just "+n+" (try OpenGL instead of ANGLE)")));
c={precision:N,supportsVertexTextures:Mb,map:!!a.map,envMap:!!a.envMap,lightMap:!!a.lightMap,bumpMap:!!a.bumpMap,normalMap:!!a.normalMap,specularMap:!!a.specularMap,vertexColors:a.vertexColors,fog:c,useFog:a.fog,fogExp:c instanceof THREE.FogExp2,sizeAttenuation:a.sizeAttenuation,logarithmicDepthBuffer:ha,skinning:a.skinning,maxBones:n,useVertexTexture:Jb&&d&&d.skeleton&&d.skeleton.useVertexTexture,morphTargets:a.morphTargets,morphNormals:a.morphNormals,maxMorphTargets:this.maxMorphTargets,maxMorphNormals:this.maxMorphNormals,
maxDirLights:e,maxPointLights:f,maxSpotLights:g,maxHemiLights:h,maxShadows:b,shadowMapEnabled:this.shadowMapEnabled&&d.receiveShadow&&0<b,shadowMapType:this.shadowMapType,shadowMapDebug:this.shadowMapDebug,shadowMapCascade:this.shadowMapCascade,alphaTest:a.alphaTest,metal:a.metal,wrapAround:a.wrapAround,doubleSided:a.side===THREE.DoubleSide,flipSided:a.side===THREE.BackSide};d=[];p?d.push(p):(d.push(a.fragmentShader),d.push(a.vertexShader));for(var t in a.defines)d.push(t),d.push(a.defines[t]);for(l in c)d.push(l),
d.push(c[l]);p=d.join();var u;l=0;for(t=xa.length;l<t;l++)if(d=xa[l],d.code===p){u=d;u.usedTimes++;break}void 0===u&&(u=new THREE.WebGLProgram(this,p,a,c),xa.push(u),P.info.memory.programs=xa.length);a.program=u;u=a.program.attributes;if(a.morphTargets)for(a.numSupportedMorphTargets=0,t="morphTarget",l=0;l<this.maxMorphTargets;l++)p=t+l,0<=u[p]&&a.numSupportedMorphTargets++;if(a.morphNormals)for(a.numSupportedMorphNormals=0,t="morphNormal",l=0;l<this.maxMorphNormals;l++)p=t+l,0<=u[p]&&a.numSupportedMorphNormals++;
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,k=a.__lights,l=a.fog;ya=-1;Ya=!0;!0===a.autoUpdate&&a.updateMatrixWorld();void 0===b.parent&&b.updateMatrixWorld();b.matrixWorldInverse.getInverse(b.matrixWorld);Sb.multiplyMatrices(b.projectionMatrix,b.matrixWorldInverse);gc.setFromMatrix(Sb);Ob(a);sa.length=0;va.length=0;$=this.sortObjects;s(a,a,b);this.sortObjects&&(sa.sort(q),va.sort(r));n(this.renderPluginsPre,
a,b);P.info.render.calls=0;P.info.render.vertices=0;P.info.render.faces=0;P.info.render.points=0;this.setRenderTarget(c);(this.autoClear||d)&&this.clear(this.autoClearColor,this.autoClearDepth,this.autoClearStencil);h=a.__webglObjectsImmediate;d=0;for(e=h.length;d<e;d++)f=h[d],g=f.object,g.visible&&(g._modelViewMatrix.multiplyMatrices(b.matrixWorldInverse,g.matrixWorld),g._normalMatrix.getNormalMatrix(g._modelViewMatrix),g=f.object.material,g.transparent?(f.transparent=g,f.opaque=null):(f.opaque=
g,f.transparent=null));a.overrideMaterial?(d=a.overrideMaterial,this.setBlending(d.blending,d.blendEquation,d.blendSrc,d.blendDst),this.setDepthTest(d.depthTest),this.setDepthWrite(d.depthWrite),K(d.polygonOffset,d.polygonOffsetFactor,d.polygonOffsetUnits),v(sa,b,k,l,!0,d),v(va,b,k,l,!0,d),u(a.__webglObjectsImmediate,"",b,k,l,!1,d)):(d=null,this.setBlending(THREE.NoBlending),v(sa,b,k,l,!1,d),u(a.__webglObjectsImmediate,"opaque",b,k,l,!1,d),v(va,b,k,l,!0,d),u(a.__webglObjectsImmediate,"transparent",
b,k,l,!0,d));n(this.renderPluginsPost,a,b);c&&c.generateMipmaps&&c.minFilter!==THREE.NearestFilter&&c.minFilter!==THREE.LinearFilter&&(c instanceof THREE.WebGLRenderTargetCube?(m.bindTexture(m.TEXTURE_CUBE_MAP,c.__webglTexture),m.generateMipmap(m.TEXTURE_CUBE_MAP),m.bindTexture(m.TEXTURE_CUBE_MAP,null)):(m.bindTexture(m.TEXTURE_2D,c.__webglTexture),m.generateMipmap(m.TEXTURE_2D),m.bindTexture(m.TEXTURE_2D,null)));this.setDepthTest(!0);this.setDepthWrite(!0)}};this.renderImmediateObject=function(a,
b,c,d,e){var f=B(a,b,c,d,e);Fa=-1;P.setMaterialFaces(d);e.immediateRenderCallback?e.immediateRenderCallback(f,m,gc):e.render(function(a){P.renderBufferImmediate(a,f,d)})};var Ob=function(a){a.__webglObjects||(a.__webglObjects={},a.__webglObjectsImmediate=[]);for(;a.__objectsAdded.length;){var c=a.__objectsAdded[0],d=a,e=void 0,f=void 0;void 0===c.__webglInit&&(c.__webglInit=!0,c._modelViewMatrix=new THREE.Matrix4,c._normalMatrix=new THREE.Matrix3);e=c.geometry;if(void 0!==e&&void 0===e.__webglInit)if(e.__webglInit=
!0,e.addEventListener("dispose",Pb),e instanceof THREE.BufferGeometry)g(e);else if(c instanceof THREE.Mesh)void 0!==c.__webglActive&&E(c,d),w(d,c,e);else if(c instanceof THREE.Line){if(!e.__webglVertexBuffer){f=e;f.__webglVertexBuffer=m.createBuffer();f.__webglColorBuffer=m.createBuffer();f.__webglLineDistanceBuffer=m.createBuffer();P.info.memory.geometries++;var f=e,h=c,k=f.vertices.length;f.__vertexArray=new Float32Array(3*k);f.__colorArray=new Float32Array(3*k);f.__lineDistanceArray=new Float32Array(1*
k);f.__webglLineCount=k;b(f,h);e.verticesNeedUpdate=!0;e.colorsNeedUpdate=!0;e.lineDistancesNeedUpdate=!0}}else c instanceof THREE.PointCloud&&!e.__webglVertexBuffer&&(f=e,f.__webglVertexBuffer=m.createBuffer(),f.__webglColorBuffer=m.createBuffer(),P.info.memory.geometries++,f=e,h=c,k=f.vertices.length,f.__vertexArray=new Float32Array(3*k),f.__colorArray=new Float32Array(3*k),f.__sortArray=[],f.__webglParticleCount=k,b(f,h),e.verticesNeedUpdate=!0,e.colorsNeedUpdate=!0);if(void 0===c.__webglActive){if(c instanceof
THREE.Mesh)if(e=c.geometry,e instanceof THREE.BufferGeometry)y(d.__webglObjects,e,c);else{if(e instanceof THREE.Geometry)for(h=0,k=e.geometryGroupsList.length;h<k;h++)f=e.geometryGroupsList[h],y(d.__webglObjects,f,c)}else c instanceof THREE.Line||c instanceof THREE.PointCloud?(e=c.geometry,y(d.__webglObjects,e,c)):(c instanceof THREE.ImmediateRenderObject||c.immediateRenderCallback)&&d.__webglObjectsImmediate.push({id:null,object:c,opaque:null,transparent:null,z:0});c.__webglActive=!0}a.__objectsAdded.splice(0,
1)}for(;a.__objectsRemoved.length;)E(a.__objectsRemoved[0],a),a.__objectsRemoved.splice(0,1)};this.initMaterial=function(a,b,c,d){var e,f,g,h;a.addEventListener("dispose",fc);var k,l,n,p;a instanceof THREE.MeshDepthMaterial?p="depth":a instanceof THREE.MeshNormalMaterial?p="normal":a instanceof THREE.MeshBasicMaterial?p="basic":a instanceof THREE.MeshLambertMaterial?p="lambert":a instanceof THREE.MeshPhongMaterial?p="phong":a instanceof THREE.LineBasicMaterial?p="basic":a instanceof THREE.LineDashedMaterial?
p="dashed":a instanceof THREE.PointCloudMaterial&&(p="particle_basic");p&&(e=THREE.ShaderLib[p],a.uniforms=THREE.UniformsUtils.clone(e.uniforms),a.vertexShader=e.vertexShader,a.fragmentShader=e.fragmentShader);n=h=g=f=e=0;for(var r=b.length;n<r;n++){var q=b[n];q.onlyShadow||!1===q.visible||(q instanceof THREE.DirectionalLight&&e++,q instanceof THREE.PointLight&&f++,q instanceof THREE.SpotLight&&g++,q instanceof THREE.HemisphereLight&&h++)}r=n=0;for(q=b.length;r<q;r++){var s=b[r];s.castShadow&&(s instanceof
THREE.SpotLight&&n++,s instanceof THREE.DirectionalLight&&!s.shadowCascade&&n++)}b=n;Jb&&d&&d.skeleton&&d.skeleton.useVertexTexture?n=1024:(n=m.getParameter(m.MAX_VERTEX_UNIFORM_VECTORS),n=Math.floor((n-20)/4),void 0!==d&&d instanceof THREE.SkinnedMesh&&(n=Math.min(d.skeleton.bones.length,n),n<d.skeleton.bones.length&&console.warn("WebGLRenderer: too many bones - "+d.skeleton.bones.length+", this GPU supports just "+n+" (try OpenGL instead of ANGLE)")));c={precision:N,supportsVertexTextures:Mb,map:!!a.map,
envMap:!!a.envMap,lightMap:!!a.lightMap,bumpMap:!!a.bumpMap,normalMap:!!a.normalMap,specularMap:!!a.specularMap,vertexColors:a.vertexColors,fog:c,useFog:a.fog,fogExp:c instanceof THREE.FogExp2,sizeAttenuation:a.sizeAttenuation,logarithmicDepthBuffer:ha,skinning:a.skinning,maxBones:n,useVertexTexture:Jb&&d&&d.skeleton&&d.skeleton.useVertexTexture,morphTargets:a.morphTargets,morphNormals:a.morphNormals,maxMorphTargets:this.maxMorphTargets,maxMorphNormals:this.maxMorphNormals,maxDirLights:e,maxPointLights:f,
maxSpotLights:g,maxHemiLights:h,maxShadows:b,shadowMapEnabled:this.shadowMapEnabled&&d.receiveShadow&&0<b,shadowMapType:this.shadowMapType,shadowMapDebug:this.shadowMapDebug,shadowMapCascade:this.shadowMapCascade,alphaTest:a.alphaTest,metal:a.metal,wrapAround:a.wrapAround,doubleSided:a.side===THREE.DoubleSide,flipSided:a.side===THREE.BackSide};d=[];p?d.push(p):(d.push(a.fragmentShader),d.push(a.vertexShader));for(var t in a.defines)d.push(t),d.push(a.defines[t]);for(l in c)d.push(l),d.push(c[l]);
p=d.join();var u;l=0;for(t=xa.length;l<t;l++)if(d=xa[l],d.code===p){u=d;u.usedTimes++;break}void 0===u&&(u=new THREE.WebGLProgram(this,p,a,c),xa.push(u),P.info.memory.programs=xa.length);a.program=u;u=a.program.attributes;if(a.morphTargets)for(a.numSupportedMorphTargets=0,t="morphTarget",l=0;l<this.maxMorphTargets;l++)p=t+l,0<=u[p]&&a.numSupportedMorphTargets++;if(a.morphNormals)for(a.numSupportedMorphNormals=0,t="morphNormal",l=0;l<this.maxMorphNormals;l++)p=t+l,0<=u[p]&&a.numSupportedMorphNormals++;
a.uniformsList=[];for(k in a.uniforms)a.uniformsList.push([a.uniforms[k],k])};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;Aa!==b&&(b?m.disable(m.CULL_FACE):m.enable(m.CULL_FACE),
Aa=b);wa!==a&&(a?m.frontFace(m.CW):m.frontFace(m.CCW),wa=a)};this.setDepthTest=function(a){ta!==a&&(a?m.enable(m.DEPTH_TEST):m.disable(m.DEPTH_TEST),ta=a)};this.setDepthWrite=function(a){Ba!==a&&(m.depthMask(a),Ba=a)};this.setBlending=function(a,b,c,d){a!==ga&&(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)),ga=a);if(a===THREE.CustomBlending){if(b!==Ia&&(m.blendEquation(G(b)),Ia=b),c!==U||d!==ja)m.blendFunc(G(c),G(d)),U=c,ja=d}else ja=U=Ia=null};this.setTexture=function(a,b){if(a.needsUpdate){a.__webglInit||
(a.__webglInit=!0,a.addEventListener("dispose",Eb),a.__webglTexture=m.createTexture(),P.info.memory.textures++);m.activeTexture(m.TEXTURE0+b);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);var c=a.image,d=THREE.Math.isPowerOfTwo(c.width)&&THREE.Math.isPowerOfTwo(c.height),e=G(a.format),f=G(a.type);I(m.TEXTURE_2D,a,d);var g=a.mipmaps;if(a instanceof
THREE.DataTexture)if(0<g.length&&d){for(var h=0,k=g.length;h<k;h++)c=g[h],m.texImage2D(m.TEXTURE_2D,h,e,c.width,c.height,0,e,f,c.data);a.generateMipmaps=!1}else m.texImage2D(m.TEXTURE_2D,0,e,c.width,c.height,0,e,f,c.data);else if(a instanceof THREE.CompressedTexture)for(h=0,k=g.length;h<k;h++)c=g[h],a.format!==THREE.RGBAFormat?m.compressedTexImage2D(m.TEXTURE_2D,h,e,c.width,c.height,0,c.data):m.texImage2D(m.TEXTURE_2D,h,e,c.width,c.height,0,e,f,c.data);else if(0<g.length&&d){h=0;for(k=g.length;h<
k;h++)c=g[h],m.texImage2D(m.TEXTURE_2D,h,e,e,f,c);a.generateMipmaps=!1}else m.texImage2D(m.TEXTURE_2D,0,e,e,f,a.image);a.generateMipmaps&&d&&m.generateMipmap(m.TEXTURE_2D);a.needsUpdate=!1;if(a.onUpdate)a.onUpdate()}else m.activeTexture(m.TEXTURE0+b),m.bindTexture(m.TEXTURE_2D,a.__webglTexture)};this.setRenderTarget=function(a){var b=a instanceof THREE.WebGLRenderTargetCube;if(a&&!a.__webglFramebuffer){void 0===a.depthBuffer&&(a.depthBuffer=!0);void 0===a.stencilBuffer&&(a.stencilBuffer=!0);a.addEventListener("dispose",
dc);a.__webglTexture=m.createTexture();P.info.memory.textures++;var c=THREE.Math.isPowerOfTwo(a.width)&&THREE.Math.isPowerOfTwo(a.height),d=G(a.format),e=G(a.type);if(b){a.__webglFramebuffer=[];a.__webglRenderbuffer=[];m.bindTexture(m.TEXTURE_CUBE_MAP,a.__webglTexture);I(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+
ec);a.__webglTexture=m.createTexture();P.info.memory.textures++;var c=THREE.Math.isPowerOfTwo(a.width)&&THREE.Math.isPowerOfTwo(a.height),d=G(a.format),e=G(a.type);if(b){a.__webglFramebuffer=[];a.__webglRenderbuffer=[];m.bindTexture(m.TEXTURE_CUBE_MAP,a.__webglTexture);I(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);R(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),I(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):R(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=ma,a=wb,d=Ka,e=Ea);b!==La&&(m.bindFramebuffer(m.FRAMEBUFFER,b),m.viewport(d,e,c,a),La=b);Qb=c;Rb=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:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册