|
@@ -374,18 +374,18 @@ a.premultiplyAlpha;this.flipY=a.flipY;this.unpackAlignment=a.unpackAlignment;ret
|
|
|
this.image;void 0===c.uuid&&(c.uuid=THREE.Math.generateUUID());if(void 0===a.images[c.uuid]){var d=a.images,e=c.uuid,g=c.uuid,f;void 0!==c.toDataURL?f=c:(f=document.createElement("canvas"),f.width=c.width,f.height=c.height,f.getContext("2d").drawImage(c,0,0,c.width,c.height));f=2048<f.width||2048<f.height?f.toDataURL("image/jpeg",.6):f.toDataURL("image/png");d[e]={uuid:g,url:f}}b.image=c.uuid}return a.textures[this.uuid]=b},dispose:function(){this.dispatchEvent({type:"dispose"})}};THREE.EventDispatcher.prototype.apply(THREE.Texture.prototype);
|
|
|
THREE.TextureIdCount=0;THREE.CanvasTexture=function(a,b,c,d,e,g,f,h,k){THREE.Texture.call(this,a,b,c,d,e,g,f,h,k);this.needsUpdate=!0};THREE.CanvasTexture.prototype=Object.create(THREE.Texture.prototype);THREE.CanvasTexture.prototype.constructor=THREE.CanvasTexture;THREE.CubeTexture=function(a,b,c,d,e,g,f,h,k){b=void 0!==b?b:THREE.CubeReflectionMapping;THREE.Texture.call(this,a,b,c,d,e,g,f,h,k);this.images=a;this.flipY=!1};THREE.CubeTexture.prototype=Object.create(THREE.Texture.prototype);
|
|
|
THREE.CubeTexture.prototype.constructor=THREE.CubeTexture;THREE.CubeTexture.prototype.copy=function(a){THREE.Texture.prototype.copy.call(this,a);this.images=a.images;return this};THREE.CompressedTexture=function(a,b,c,d,e,g,f,h,k,l,n){THREE.Texture.call(this,null,g,f,h,k,l,d,e,n);this.image={width:b,height:c};this.mipmaps=a;this.generateMipmaps=this.flipY=!1};THREE.CompressedTexture.prototype=Object.create(THREE.Texture.prototype);THREE.CompressedTexture.prototype.constructor=THREE.CompressedTexture;
|
|
|
-THREE.DataTexture=function(a,b,c,d,e,g,f,h,k,l,n){THREE.Texture.call(this,null,g,f,h,k,l,d,e,n);this.image={data:a,width:b,height:c}};THREE.DataTexture.prototype=Object.create(THREE.Texture.prototype);THREE.DataTexture.prototype.constructor=THREE.DataTexture;THREE.VideoTexture=function(a,b,c,d,e,g,f,h,k){THREE.Texture.call(this,a,b,c,d,e,g,f,h,k);this.generateMipmaps=!1;var l=this,n=function(){requestAnimationFrame(n);a.readyState===a.HAVE_ENOUGH_DATA&&(l.needsUpdate=!0)};n()};
|
|
|
-THREE.VideoTexture.prototype=Object.create(THREE.Texture.prototype);THREE.VideoTexture.prototype.constructor=THREE.VideoTexture;THREE.Group=function(){THREE.Object3D.call(this);this.type="Group"};THREE.Group.prototype=Object.create(THREE.Object3D.prototype);THREE.Group.prototype.constructor=THREE.Group;
|
|
|
-THREE.PointCloud=function(a,b){THREE.Object3D.call(this);this.type="PointCloud";this.geometry=void 0!==a?a:new THREE.Geometry;this.material=void 0!==b?b:new THREE.PointCloudMaterial({color:16777215*Math.random()})};THREE.PointCloud.prototype=Object.create(THREE.Object3D.prototype);THREE.PointCloud.prototype.constructor=THREE.PointCloud;
|
|
|
+THREE.DataTexture=function(a,b,c,d,e,g,f,h,k,l,n){THREE.Texture.call(this,null,g,f,h,k,l,d,e,n);this.image={data:a,width:b,height:c};this.magFilter=void 0!==k?k:THREE.NearestFilter;this.minFilter=void 0!==l?l:THREE.NearestFilter;this.generateMipmaps=this.flipY=!1};THREE.DataTexture.prototype=Object.create(THREE.Texture.prototype);THREE.DataTexture.prototype.constructor=THREE.DataTexture;
|
|
|
+THREE.VideoTexture=function(a,b,c,d,e,g,f,h,k){THREE.Texture.call(this,a,b,c,d,e,g,f,h,k);this.generateMipmaps=!1;var l=this,n=function(){requestAnimationFrame(n);a.readyState===a.HAVE_ENOUGH_DATA&&(l.needsUpdate=!0)};n()};THREE.VideoTexture.prototype=Object.create(THREE.Texture.prototype);THREE.VideoTexture.prototype.constructor=THREE.VideoTexture;THREE.Group=function(){THREE.Object3D.call(this);this.type="Group"};THREE.Group.prototype=Object.create(THREE.Object3D.prototype);
|
|
|
+THREE.Group.prototype.constructor=THREE.Group;THREE.PointCloud=function(a,b){THREE.Object3D.call(this);this.type="PointCloud";this.geometry=void 0!==a?a:new THREE.Geometry;this.material=void 0!==b?b:new THREE.PointCloudMaterial({color:16777215*Math.random()})};THREE.PointCloud.prototype=Object.create(THREE.Object3D.prototype);THREE.PointCloud.prototype.constructor=THREE.PointCloud;
|
|
|
THREE.PointCloud.prototype.raycast=function(){var a=new THREE.Matrix4,b=new THREE.Ray;return function(c,d){var e=this,g=e.geometry,f=c.params.PointCloud.threshold;a.getInverse(this.matrixWorld);b.copy(c.ray).applyMatrix4(a);if(null===g.boundingBox||!1!==b.isIntersectionBox(g.boundingBox)){var f=f/((this.scale.x+this.scale.y+this.scale.z)/3),h=f*f,k=new THREE.Vector3,f=function(a,f){var g=b.distanceSqToPoint(a);if(g<h){var k=b.closestPointToPoint(a);k.applyMatrix4(e.matrixWorld);var l=c.ray.origin.distanceTo(k);
|
|
|
l<c.near||l>c.far||d.push({distance:l,distanceToRay:Math.sqrt(g),point:k.clone(),index:f,face:null,object:e})}};if(g instanceof THREE.BufferGeometry){var l=g.index,n=g.attributes.position.array;if(null!==l){var l=l.array,p=g.groups;0===p.length&&(p=[{start:0,count:l.length}]);for(var m=0,q=p.length;m<q;++m)for(var s=p[m],r=s.start,g=r,s=r+s.count;g<s;g++)r=l[g],k.fromArray(n,3*r),f(k,r)}else for(g=0,l=n.length/3;g<l;g++)k.fromArray(n,3*g),f(k,g)}else for(k=g.vertices,g=0,l=k.length;g<l;g++)f(k[g],
|
|
|
g)}}}();THREE.PointCloud.prototype.clone=function(){return(new this.constructor(this.geometry,this.material)).copy(this)};THREE.PointCloud.prototype.toJSON=function(a){var b=THREE.Object3D.prototype.toJSON.call(this,a);void 0===a.geometries[this.geometry.uuid]&&(a.geometries[this.geometry.uuid]=this.geometry.toJSON());void 0===a.materials[this.material.uuid]&&(a.materials[this.material.uuid]=this.material.toJSON());b.object.geometry=this.geometry.uuid;b.object.material=this.material.uuid;return b};
|
|
|
THREE.ParticleSystem=function(a,b){console.warn("THREE.ParticleSystem has been renamed to THREE.PointCloud.");return new THREE.PointCloud(a,b)};THREE.Line=function(a,b,c){if(1===c)return console.warn("THREE.Line: parameter THREE.LinePieces no longer supported. Created THREE.LineSegments instead."),new THREE.LineSegments(a,b);THREE.Object3D.call(this);this.type="Line";this.geometry=void 0!==a?a:new THREE.Geometry;this.material=void 0!==b?b:new THREE.LineBasicMaterial({color:16777215*Math.random()})};
|
|
|
THREE.Line.prototype=Object.create(THREE.Object3D.prototype);THREE.Line.prototype.constructor=THREE.Line;
|
|
|
THREE.Line.prototype.raycast=function(){var a=new THREE.Matrix4,b=new THREE.Ray,c=new THREE.Sphere;return function(d,e){var g=d.linePrecision,g=g*g,f=this.geometry;null===f.boundingSphere&&f.computeBoundingSphere();c.copy(f.boundingSphere);c.applyMatrix4(this.matrixWorld);if(!1!==d.ray.isIntersectionSphere(c)){a.getInverse(this.matrixWorld);b.copy(d.ray).applyMatrix4(a);var h=new THREE.Vector3,k=new THREE.Vector3,l=new THREE.Vector3,n=new THREE.Vector3,p=this instanceof THREE.LineSegments?2:1;if(f instanceof
|
|
|
-THREE.BufferGeometry){var m=f.index,q=f.attributes;if(null!==m){var m=m.array,q=q.position.array,s=f.groups;0===s.length&&(s=[{start:0,count:m.length}]);for(var r=0;r<s.length;r++)for(var f=s[r],u=f.start,x=f.count,f=u;f<u+x-1;f+=p){var v=m[f+1];h.fromArray(q,3*m[f]);k.fromArray(q,3*v);v=b.distanceSqToSegment(h,k,n,l);v>g||(v=b.origin.distanceTo(n),v<d.near||v>d.far||e.push({distance:v,point:l.clone().applyMatrix4(this.matrixWorld),index:f,offsetIndex:r,face:null,faceIndex:null,object:this}))}}else for(q=
|
|
|
-q.position.array,f=0;f<q.length/3-1;f+=p)h.fromArray(q,3*f),k.fromArray(q,3*f+3),v=b.distanceSqToSegment(h,k,n,l),v>g||(v=b.origin.distanceTo(n),v<d.near||v>d.far||e.push({distance:v,point:l.clone().applyMatrix4(this.matrixWorld),index:f,face:null,faceIndex:null,object:this}))}else if(f instanceof THREE.Geometry)for(h=f.vertices,k=h.length,f=0;f<k-1;f+=p)v=b.distanceSqToSegment(h[f],h[f+1],n,l),v>g||(v=b.origin.distanceTo(n),v<d.near||v>d.far||e.push({distance:v,point:l.clone().applyMatrix4(this.matrixWorld),
|
|
|
-index:f,face:null,faceIndex:null,object:this}))}}}();THREE.Line.prototype.clone=function(){return(new this.constructor(this.geometry,this.material)).copy(this)};
|
|
|
+THREE.BufferGeometry){var m=f.index,q=f.attributes;if(null!==m){var m=m.array,q=q.position.array,s=f.groups;0===s.length&&(s=[{start:0,count:m.length}]);for(var r=0;r<s.length;r++)for(var f=s[r],u=f.start,x=f.count,f=u;f<u+x-1;f+=p){var v=m[f+1];h.fromArray(q,3*m[f]);k.fromArray(q,3*v);v=b.distanceSqToSegment(h,k,n,l);v>g||(n.applyMatrix4(this.matrixWorld),v=d.ray.origin.distanceTo(n),v<d.near||v>d.far||e.push({distance:v,point:l.clone().applyMatrix4(this.matrixWorld),index:f,offsetIndex:r,face:null,
|
|
|
+faceIndex:null,object:this}))}}else for(q=q.position.array,f=0;f<q.length/3-1;f+=p)h.fromArray(q,3*f),k.fromArray(q,3*f+3),v=b.distanceSqToSegment(h,k,n,l),v>g||(n.applyMatrix4(this.matrixWorld),v=d.ray.origin.distanceTo(n),v<d.near||v>d.far||e.push({distance:v,point:l.clone().applyMatrix4(this.matrixWorld),index:f,face:null,faceIndex:null,object:this}))}else if(f instanceof THREE.Geometry)for(h=f.vertices,k=h.length,f=0;f<k-1;f+=p)v=b.distanceSqToSegment(h[f],h[f+1],n,l),v>g||(n.applyMatrix4(this.matrixWorld),
|
|
|
+v=d.ray.origin.distanceTo(n),v<d.near||v>d.far||e.push({distance:v,point:l.clone().applyMatrix4(this.matrixWorld),index:f,face:null,faceIndex:null,object:this}))}}}();THREE.Line.prototype.clone=function(){return(new this.constructor(this.geometry,this.material)).copy(this)};
|
|
|
THREE.Line.prototype.toJSON=function(a){var b=THREE.Object3D.prototype.toJSON.call(this,a);void 0===a.geometries[this.geometry.uuid]&&(a.geometries[this.geometry.uuid]=this.geometry.toJSON());void 0===a.materials[this.material.uuid]&&(a.materials[this.material.uuid]=this.material.toJSON());b.object.geometry=this.geometry.uuid;b.object.material=this.material.uuid;return b};THREE.LineStrip=0;THREE.LinePieces=1;THREE.LineSegments=function(a,b){THREE.Line.call(this,a,b);this.type="LineSegments"};
|
|
|
THREE.LineSegments.prototype=Object.create(THREE.Line.prototype);THREE.LineSegments.prototype.constructor=THREE.LineSegments;THREE.Mesh=function(a,b){THREE.Object3D.call(this);this.type="Mesh";this.geometry=void 0!==a?a:new THREE.Geometry;this.material=void 0!==b?b:new THREE.MeshBasicMaterial({color:16777215*Math.random()});this.updateMorphTargets()};THREE.Mesh.prototype=Object.create(THREE.Object3D.prototype);THREE.Mesh.prototype.constructor=THREE.Mesh;
|
|
|
THREE.Mesh.prototype.updateMorphTargets=function(){if(void 0!==this.geometry.morphTargets&&0<this.geometry.morphTargets.length){this.morphTargetBase=-1;this.morphTargetInfluences=[];this.morphTargetDictionary={};for(var a=0,b=this.geometry.morphTargets.length;a<b;a++)this.morphTargetInfluences.push(0),this.morphTargetDictionary[this.geometry.morphTargets[a].name]=a}};
|
|
@@ -397,8 +397,8 @@ z<l.near||z>l.far||(q=w/3,s=q+1,r=q+2,n.push({distance:z,point:B,face:new THREE.
|
|
|
0,C=z.length;L<C;L++){var P=O[L];if(0!==P){var J=z[L].vertices;d.addScaledVector(f.subVectors(J[A.a],q),P);e.addScaledVector(h.subVectors(J[A.b],s),P);g.addScaledVector(k.subVectors(J[A.c],r),P)}}d.add(q);e.add(s);g.add(r);q=d;s=e;r=g}B=B.side===THREE.BackSide?b.intersectTriangle(r,s,q,!0):b.intersectTriangle(q,s,r,B.side!==THREE.DoubleSide);null!==B&&(B.applyMatrix4(this.matrixWorld),z=l.ray.origin.distanceTo(B),z<l.near||z>l.far||n.push({distance:z,point:B,face:A,faceIndex:w,object:this}))}}}}}();
|
|
|
THREE.Mesh.prototype.clone=function(){return(new this.constructor(this.geometry,this.material)).copy(this)};THREE.Mesh.prototype.toJSON=function(a){var b=THREE.Object3D.prototype.toJSON.call(this,a);void 0===a.geometries[this.geometry.uuid]&&(a.geometries[this.geometry.uuid]=this.geometry.toJSON(a));void 0===a.materials[this.material.uuid]&&(a.materials[this.material.uuid]=this.material.toJSON(a));b.object.geometry=this.geometry.uuid;b.object.material=this.material.uuid;return b};
|
|
|
THREE.Bone=function(a){THREE.Object3D.call(this);this.type="Bone";this.skin=a};THREE.Bone.prototype=Object.create(THREE.Object3D.prototype);THREE.Bone.prototype.constructor=THREE.Bone;THREE.Bone.prototype.copy=function(a){THREE.Object3D.prototype.copy.call(this,a);this.skin=a.skin;return this};
|
|
|
-THREE.Skeleton=function(a,b,c){this.useVertexTexture=void 0!==c?c:!0;this.identityMatrix=new THREE.Matrix4;a=a||[];this.bones=a.slice(0);this.useVertexTexture?(a=Math.sqrt(4*this.bones.length),a=THREE.Math.nextPowerOfTwo(Math.ceil(a)),this.boneTextureHeight=this.boneTextureWidth=a=Math.max(a,4),this.boneMatrices=new Float32Array(this.boneTextureWidth*this.boneTextureHeight*4),this.boneTexture=new THREE.DataTexture(this.boneMatrices,this.boneTextureWidth,this.boneTextureHeight,THREE.RGBAFormat,THREE.FloatType),
|
|
|
-this.boneTexture.minFilter=THREE.NearestFilter,this.boneTexture.magFilter=THREE.NearestFilter,this.boneTexture.generateMipmaps=!1,this.boneTexture.flipY=!1):this.boneMatrices=new Float32Array(16*this.bones.length);if(void 0===b)this.calculateInverses();else if(this.bones.length===b.length)this.boneInverses=b.slice(0);else for(console.warn("THREE.Skeleton bonInverses is the wrong length."),this.boneInverses=[],b=0,a=this.bones.length;b<a;b++)this.boneInverses.push(new THREE.Matrix4)};
|
|
|
+THREE.Skeleton=function(a,b,c){this.useVertexTexture=void 0!==c?c:!0;this.identityMatrix=new THREE.Matrix4;a=a||[];this.bones=a.slice(0);this.useVertexTexture?(a=Math.sqrt(4*this.bones.length),a=THREE.Math.nextPowerOfTwo(Math.ceil(a)),this.boneTextureHeight=this.boneTextureWidth=a=Math.max(a,4),this.boneMatrices=new Float32Array(this.boneTextureWidth*this.boneTextureHeight*4),this.boneTexture=new THREE.DataTexture(this.boneMatrices,this.boneTextureWidth,this.boneTextureHeight,THREE.RGBAFormat,THREE.FloatType)):
|
|
|
+this.boneMatrices=new Float32Array(16*this.bones.length);if(void 0===b)this.calculateInverses();else if(this.bones.length===b.length)this.boneInverses=b.slice(0);else for(console.warn("THREE.Skeleton bonInverses is the wrong length."),this.boneInverses=[],b=0,a=this.bones.length;b<a;b++)this.boneInverses.push(new THREE.Matrix4)};
|
|
|
THREE.Skeleton.prototype.calculateInverses=function(){this.boneInverses=[];for(var a=0,b=this.bones.length;a<b;a++){var c=new THREE.Matrix4;this.bones[a]&&c.getInverse(this.bones[a].matrixWorld);this.boneInverses.push(c)}};
|
|
|
THREE.Skeleton.prototype.pose=function(){for(var a,b=0,c=this.bones.length;b<c;b++)(a=this.bones[b])&&a.matrixWorld.getInverse(this.boneInverses[b]);b=0;for(c=this.bones.length;b<c;b++)if(a=this.bones[b])a.parent?(a.matrix.getInverse(a.parent.matrixWorld),a.matrix.multiply(a.matrixWorld)):a.matrix.copy(a.matrixWorld),a.matrix.decompose(a.position,a.quaternion,a.scale)};
|
|
|
THREE.Skeleton.prototype.update=function(){var a=new THREE.Matrix4;return function(){for(var b=0,c=this.bones.length;b<c;b++)a.multiplyMatrices(this.bones[b]?this.bones[b].matrixWorld:this.identityMatrix,this.boneInverses[b]),a.flattenToArrayOffset(this.boneMatrices,16*b);this.useVertexTexture&&(this.boneTexture.needsUpdate=!0)}}();THREE.Skeleton.prototype.clone=function(){return new THREE.Skeleton(this.bones,this.boneInverses,this.useVertexTexture)};
|
|
@@ -490,40 +490,40 @@ THREE.ShaderChunk.logdepthbuf_fragment,"\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tgl_Fra
|
|
|
THREE.WebGLRenderer=function(a){function b(a,b,c,d){!0===S&&(a*=d,b*=d,c*=d);t.clearColor(a,b,c,d)}function c(){K.init();t.viewport(Ga,Ha,Aa,wa);b(Z.r,Z.g,Z.b,fa)}function d(){Wa=pb=null;Ia="";Xa=-1;ib=!0;K.reset()}function e(a){a.preventDefault();d();c();$.clear()}function g(a){a=a.target;a.removeEventListener("dispose",g);a:{var b=$.get(a);if(a.image&&b.__image__webglTextureCube)t.deleteTexture(b.__image__webglTextureCube);else{if(void 0===b.__webglInit)break a;t.deleteTexture(b.__webglTexture)}$.delete(a)}Ba.textures--}
|
|
|
function f(a){a=a.target;a.removeEventListener("dispose",f);var b=$.get(a);if(a&&void 0!==b.__webglTexture){t.deleteTexture(b.__webglTexture);if(a instanceof THREE.WebGLRenderTargetCube)for(var c=0;6>c;c++)t.deleteFramebuffer(b.__webglFramebuffer[c]),t.deleteRenderbuffer(b.__webglRenderbuffer[c]);else t.deleteFramebuffer(b.__webglFramebuffer),t.deleteRenderbuffer(b.__webglRenderbuffer);$.delete(a)}Ba.textures--}function h(a){a=a.target;a.removeEventListener("dispose",h);k(a);$.delete(a)}function k(a){var b=
|
|
|
$.get(a).program.program;if(void 0!==b){a.program=void 0;a=0;for(var c=ua.length;a!==c;++a){var d=ua[a];if(d.program===b){0===--d.usedTimes&&(c-=1,ua[a]=ua[c],ua.pop(),t.deleteProgram(b),Ba.programs=c);break}}}}function l(a,b){return b[0]-a[0]}function n(a,b){return a.object.renderOrder!==b.object.renderOrder?a.object.renderOrder-b.object.renderOrder:a.material.id!==b.material.id?a.material.id-b.material.id:a.z!==b.z?a.z-b.z:a.id-b.id}function p(a,b){return a.object.renderOrder!==b.object.renderOrder?
|
|
|
-a.object.renderOrder-b.object.renderOrder:a.z!==b.z?b.z-a.z:a.id-b.id}function m(a,b,c,d,e){a={id:a.id,object:a,geometry:b,material:c,z:da.z,group:e};c.transparent?la.push(a):va.push(a);c.program=$.get(c).program}function q(a){if(!1!==a.visible){if(a instanceof THREE.Light)ga.push(a);else if(a instanceof THREE.Sprite)ra.push(a);else if(a instanceof THREE.LensFlare)Ya.push(a);else if(a instanceof THREE.ImmediateRenderObject)a.material.transparent?Ca.push(a):sa.push(a);else if(a instanceof THREE.Mesh||
|
|
|
-a instanceof THREE.Line||a instanceof THREE.PointCloud)if(a instanceof THREE.SkinnedMesh&&a.skeleton.update(),!1===a.frustumCulled||!0===Za.intersectsObject(a)){var b=a.material;if(!0===b.visible){!0===ma.sortObjects&&(da.setFromMatrixPosition(a.matrixWorld),da.applyProjection(Ja));var c=xa.update(a);if(b instanceof THREE.MeshFaceMaterial)for(var d=c.groups,e=b.materials,b=0,f=d.length;b<f;b++){var g=d[b],h=e[g.materialIndex];!0===h.visible&&m(a,c,h,da.z,g)}else m(a,c,b,da.z)}}a=a.children;b=0;for(f=
|
|
|
-a.length;b<f;b++)q(a[b])}}function s(a,b,c,d,e){for(var f=0,g=a.length;f<g;f++){var h=a[f],k=h.object,l=h.geometry,m=void 0===e?h.material:e,h=h.group;k.modelViewMatrix.multiplyMatrices(b.matrixWorldInverse,k.matrixWorld);k.normalMatrix.getNormalMatrix(k.modelViewMatrix);ma.renderBufferDirect(b,c,d,l,m,k,h)}}function r(a,b,c,d,e){for(var f=e,g=0,h=a.length;g<h;g++){var k=a[g];k.modelViewMatrix.multiplyMatrices(b.matrixWorldInverse,k.matrixWorld);k.normalMatrix.getNormalMatrix(k.modelViewMatrix);void 0===
|
|
|
-e&&(f=k.material);u(f);var l=x(b,c,d,f,k);Ia="";k.render(function(a){ma.renderBufferImmediate(a,l,f)})}}function u(a){a.side!==THREE.DoubleSide?K.enable(t.CULL_FACE):K.disable(t.CULL_FACE);K.setFlipSided(a.side===THREE.BackSide);!0===a.transparent?K.setBlending(a.blending,a.blendEquation,a.blendSrc,a.blendDst,a.blendEquationAlpha,a.blendSrcAlpha,a.blendDstAlpha):K.setBlending(THREE.NoBlending);K.setDepthFunc(a.depthFunc);K.setDepthTest(a.depthTest);K.setDepthWrite(a.depthWrite);K.setColorWrite(a.colorWrite);
|
|
|
-K.setPolygonOffset(a.polygonOffset,a.polygonOffsetFactor,a.polygonOffsetUnits)}function x(a,b,c,d,e){var f,l,m,n;jb=0;var q=$.get(d);if(d.needsUpdate||!q.program){a:{for(var p=$.get(d),s=cc[d.type],r=0,x=0,u=0,z=0,O=0,A=b.length;O<A;O++){var D=b[O];D.onlyShadow||!1===D.visible||(D instanceof THREE.DirectionalLight&&r++,D instanceof THREE.PointLight&&x++,D instanceof THREE.SpotLight&&u++,D instanceof THREE.HemisphereLight&&z++)}f=r;l=x;m=u;n=z;for(var J,F=0,N=0,H=b.length;N<H;N++){var R=b[N];R.castShadow&&
|
|
|
-(R instanceof THREE.SpotLight&&F++,R instanceof THREE.DirectionalLight&&F++)}J=F;var ga;if(qb&&e&&e.skeleton&&e.skeleton.useVertexTexture)ga=1024;else{var P=t.getParameter(t.MAX_VERTEX_UNIFORM_VECTORS),Q=Math.floor((P-20)/4);void 0!==e&&e instanceof THREE.SkinnedMesh&&(Q=Math.min(e.skeleton.bones.length,Q),Q<e.skeleton.bones.length&&console.warn("WebGLRenderer: too many bones - "+e.skeleton.bones.length+", this GPU supports just "+Q+" (try OpenGL instead of ANGLE)"));ga=Q}var T=G;null!==d.precision&&
|
|
|
-(T=K.getMaxPrecision(d.precision),T!==d.precision&&console.warn("THREE.WebGLRenderer.initMaterial:",d.precision,"not supported, using",T,"instead."));var S={precision:T,supportsVertexTextures:rb,map:!!d.map,envMap:!!d.envMap,envMapMode:d.envMap&&d.envMap.mapping,lightMap:!!d.lightMap,aoMap:!!d.aoMap,emissiveMap:!!d.emissiveMap,bumpMap:!!d.bumpMap,normalMap:!!d.normalMap,specularMap:!!d.specularMap,alphaMap:!!d.alphaMap,combine:d.combine,vertexColors:d.vertexColors,fog:c,useFog:d.fog,fogExp:c instanceof
|
|
|
-THREE.FogExp2,flatShading:d.shading===THREE.FlatShading,sizeAttenuation:d.sizeAttenuation,logarithmicDepthBuffer:ta,skinning:d.skinning,maxBones:ga,useVertexTexture:qb&&e&&e.skeleton&&e.skeleton.useVertexTexture,morphTargets:d.morphTargets,morphNormals:d.morphNormals,maxMorphTargets:ma.maxMorphTargets,maxMorphNormals:ma.maxMorphNormals,maxDirLights:f,maxPointLights:l,maxSpotLights:m,maxHemiLights:n,maxShadows:J,shadowMapEnabled:na.enabled&&e.receiveShadow&&0<J,shadowMapType:na.type,shadowMapDebug:na.debug,
|
|
|
-alphaTest:d.alphaTest,metal:d.metal,doubleSided:d.side===THREE.DoubleSide,flipSided:d.side===THREE.BackSide},la=[];s?la.push(s):(la.push(d.fragmentShader),la.push(d.vertexShader));if(void 0!==d.defines)for(var sa in d.defines)la.push(sa),la.push(d.defines[sa]);for(sa in S)la.push(sa),la.push(S[sa]);var va=la.join(),X=!0;if(p.program)if(p.program.code!==va)k(d);else if(void 0!==s)break a;else X=!1;else d.addEventListener("dispose",h);if(s){var Z=THREE.ShaderLib[s];p.__webglShader={name:d.type,uniforms:THREE.UniformsUtils.clone(Z.uniforms),
|
|
|
-vertexShader:Z.vertexShader,fragmentShader:Z.fragmentShader}}else p.__webglShader={name:d.type,uniforms:d.uniforms,vertexShader:d.vertexShader,fragmentShader:d.fragmentShader};for(var ra,Ca=0,Ya=ua.length;Ca<Ya;Ca++){var fa=ua[Ca];if(fa.code===va){ra=fa;X&&ra.usedTimes++;break}}void 0===ra&&(d.__webglShader=p.__webglShader,ra=new THREE.WebGLProgram(ma,va,d,S),ua.push(ra),Ba.programs=ua.length);p.program=ra;var hb=ra.getAttributes();if(d.morphTargets)for(var ka=d.numSupportedMorphTargets=0;ka<ma.maxMorphTargets;ka++)0<=
|
|
|
-hb["morphTarget"+ka]&&d.numSupportedMorphTargets++;if(d.morphNormals)for(ka=d.numSupportedMorphNormals=0;ka<ma.maxMorphNormals;ka++)0<=hb["morphNormal"+ka]&&d.numSupportedMorphNormals++;p.uniformsList=[];var Ia=p.program.getUniforms(),xa;for(xa in p.__webglShader.uniforms){var Ga=Ia[xa];Ga&&p.uniformsList.push([p.__webglShader.uniforms[xa],Ga])}}d.needsUpdate=!1}var Ha=!1,Aa=!1,wa=!1,$a=q.program,ba=$a.getUniforms(),I=q.__webglShader.uniforms;$a.id!==pb&&(t.useProgram($a.program),pb=$a.id,wa=Aa=Ha=
|
|
|
-!0);d.id!==Xa&&(-1===Xa&&(wa=!0),Xa=d.id,Aa=!0);if(Ha||a!==Wa)t.uniformMatrix4fv(ba.projectionMatrix,!1,a.projectionMatrix.elements),ta&&t.uniform1f(ba.logDepthBufFC,2/(Math.log(a.far+1)/Math.LN2)),a!==Wa&&(Wa=a),(d instanceof THREE.ShaderMaterial||d instanceof THREE.MeshPhongMaterial||d.envMap)&&void 0!==ba.cameraPosition&&(da.setFromMatrixPosition(a.matrixWorld),t.uniform3f(ba.cameraPosition,da.x,da.y,da.z)),(d instanceof THREE.MeshPhongMaterial||d instanceof THREE.MeshLambertMaterial||d instanceof
|
|
|
-THREE.MeshBasicMaterial||d instanceof THREE.ShaderMaterial||d.skinning)&&void 0!==ba.viewMatrix&&t.uniformMatrix4fv(ba.viewMatrix,!1,a.matrixWorldInverse.elements);if(d.skinning)if(e.bindMatrix&&void 0!==ba.bindMatrix&&t.uniformMatrix4fv(ba.bindMatrix,!1,e.bindMatrix.elements),e.bindMatrixInverse&&void 0!==ba.bindMatrixInverse&&t.uniformMatrix4fv(ba.bindMatrixInverse,!1,e.bindMatrixInverse.elements),qb&&e.skeleton&&e.skeleton.useVertexTexture){if(void 0!==ba.boneTexture){var Pa=y();t.uniform1i(ba.boneTexture,
|
|
|
+a.object.renderOrder-b.object.renderOrder:a.z!==b.z?b.z-a.z:a.id-b.id}function m(a,b,c,d,e){a={id:a.id,object:a,geometry:b,material:c,z:da.z,group:e};c.transparent?la.push(a):va.push(a)}function q(a){if(!1!==a.visible){if(a instanceof THREE.Light)ga.push(a);else if(a instanceof THREE.Sprite)pa.push(a);else if(a instanceof THREE.LensFlare)Ya.push(a);else if(a instanceof THREE.ImmediateRenderObject)a.material.transparent?Ca.push(a):sa.push(a);else if(a instanceof THREE.Mesh||a instanceof THREE.Line||
|
|
|
+a instanceof THREE.PointCloud)if(a instanceof THREE.SkinnedMesh&&a.skeleton.update(),!1===a.frustumCulled||!0===Za.intersectsObject(a)){var b=a.material;if(!0===b.visible){!0===ma.sortObjects&&(da.setFromMatrixPosition(a.matrixWorld),da.applyProjection(Ja));var c=xa.update(a);if(b instanceof THREE.MeshFaceMaterial)for(var d=c.groups,e=b.materials,b=0,f=d.length;b<f;b++){var g=d[b],h=e[g.materialIndex];!0===h.visible&&m(a,c,h,da.z,g)}else m(a,c,b,da.z)}}a=a.children;b=0;for(f=a.length;b<f;b++)q(a[b])}}
|
|
|
+function s(a,b,c,d,e){for(var f=0,g=a.length;f<g;f++){var h=a[f],k=h.object,l=h.geometry,m=void 0===e?h.material:e,h=h.group;k.modelViewMatrix.multiplyMatrices(b.matrixWorldInverse,k.matrixWorld);k.normalMatrix.getNormalMatrix(k.modelViewMatrix);ma.renderBufferDirect(b,c,d,l,m,k,h)}}function r(a,b,c,d,e){for(var f=e,g=0,h=a.length;g<h;g++){var k=a[g];k.modelViewMatrix.multiplyMatrices(b.matrixWorldInverse,k.matrixWorld);k.normalMatrix.getNormalMatrix(k.modelViewMatrix);void 0===e&&(f=k.material);
|
|
|
+u(f);var l=x(b,c,d,f,k);Ia="";k.render(function(a){ma.renderBufferImmediate(a,l,f)})}}function u(a){a.side!==THREE.DoubleSide?K.enable(t.CULL_FACE):K.disable(t.CULL_FACE);K.setFlipSided(a.side===THREE.BackSide);!0===a.transparent?K.setBlending(a.blending,a.blendEquation,a.blendSrc,a.blendDst,a.blendEquationAlpha,a.blendSrcAlpha,a.blendDstAlpha):K.setBlending(THREE.NoBlending);K.setDepthFunc(a.depthFunc);K.setDepthTest(a.depthTest);K.setDepthWrite(a.depthWrite);K.setColorWrite(a.colorWrite);K.setPolygonOffset(a.polygonOffset,
|
|
|
+a.polygonOffsetFactor,a.polygonOffsetUnits)}function x(a,b,c,d,e){var f,l,m,n;jb=0;var q=$.get(d);if(d.needsUpdate||!q.program){a:{for(var p=$.get(d),s=cc[d.type],r=0,x=0,u=0,z=0,O=0,A=b.length;O<A;O++){var D=b[O];D.onlyShadow||!1===D.visible||(D instanceof THREE.DirectionalLight&&r++,D instanceof THREE.PointLight&&x++,D instanceof THREE.SpotLight&&u++,D instanceof THREE.HemisphereLight&&z++)}f=r;l=x;m=u;n=z;for(var J,F=0,N=0,H=b.length;N<H;N++){var R=b[N];R.castShadow&&(R instanceof THREE.SpotLight&&
|
|
|
+F++,R instanceof THREE.DirectionalLight&&F++)}J=F;var ga;if(qb&&e&&e.skeleton&&e.skeleton.useVertexTexture)ga=1024;else{var P=t.getParameter(t.MAX_VERTEX_UNIFORM_VECTORS),Q=Math.floor((P-20)/4);void 0!==e&&e instanceof THREE.SkinnedMesh&&(Q=Math.min(e.skeleton.bones.length,Q),Q<e.skeleton.bones.length&&console.warn("WebGLRenderer: too many bones - "+e.skeleton.bones.length+", this GPU supports just "+Q+" (try OpenGL instead of ANGLE)"));ga=Q}var T=G;null!==d.precision&&(T=K.getMaxPrecision(d.precision),
|
|
|
+T!==d.precision&&console.warn("THREE.WebGLRenderer.initMaterial:",d.precision,"not supported, using",T,"instead."));var S={precision:T,supportsVertexTextures:rb,map:!!d.map,envMap:!!d.envMap,envMapMode:d.envMap&&d.envMap.mapping,lightMap:!!d.lightMap,aoMap:!!d.aoMap,emissiveMap:!!d.emissiveMap,bumpMap:!!d.bumpMap,normalMap:!!d.normalMap,specularMap:!!d.specularMap,alphaMap:!!d.alphaMap,combine:d.combine,vertexColors:d.vertexColors,fog:c,useFog:d.fog,fogExp:c instanceof THREE.FogExp2,flatShading:d.shading===
|
|
|
+THREE.FlatShading,sizeAttenuation:d.sizeAttenuation,logarithmicDepthBuffer:ta,skinning:d.skinning,maxBones:ga,useVertexTexture:qb&&e&&e.skeleton&&e.skeleton.useVertexTexture,morphTargets:d.morphTargets,morphNormals:d.morphNormals,maxMorphTargets:ma.maxMorphTargets,maxMorphNormals:ma.maxMorphNormals,maxDirLights:f,maxPointLights:l,maxSpotLights:m,maxHemiLights:n,maxShadows:J,shadowMapEnabled:na.enabled&&e.receiveShadow&&0<J,shadowMapType:na.type,shadowMapDebug:na.debug,alphaTest:d.alphaTest,metal:d.metal,
|
|
|
+doubleSided:d.side===THREE.DoubleSide,flipSided:d.side===THREE.BackSide},la=[];s?la.push(s):(la.push(d.fragmentShader),la.push(d.vertexShader));if(void 0!==d.defines)for(var sa in d.defines)la.push(sa),la.push(d.defines[sa]);for(sa in S)la.push(sa),la.push(S[sa]);var va=la.join(),X=!0;if(p.program)if(p.program.code!==va)k(d);else if(void 0!==s)break a;else X=!1;else d.addEventListener("dispose",h);if(s){var Z=THREE.ShaderLib[s];p.__webglShader={name:d.type,uniforms:THREE.UniformsUtils.clone(Z.uniforms),
|
|
|
+vertexShader:Z.vertexShader,fragmentShader:Z.fragmentShader}}else p.__webglShader={name:d.type,uniforms:d.uniforms,vertexShader:d.vertexShader,fragmentShader:d.fragmentShader};for(var pa,Ca=0,Ya=ua.length;Ca<Ya;Ca++){var fa=ua[Ca];if(fa.code===va){pa=fa;X&&pa.usedTimes++;break}}void 0===pa&&(d.__webglShader=p.__webglShader,pa=new THREE.WebGLProgram(ma,va,d,S),ua.push(pa),Ba.programs=ua.length);p.program=pa;d.program=pa;var hb=pa.getAttributes();if(d.morphTargets)for(var ka=d.numSupportedMorphTargets=
|
|
|
+0;ka<ma.maxMorphTargets;ka++)0<=hb["morphTarget"+ka]&&d.numSupportedMorphTargets++;if(d.morphNormals)for(ka=d.numSupportedMorphNormals=0;ka<ma.maxMorphNormals;ka++)0<=hb["morphNormal"+ka]&&d.numSupportedMorphNormals++;p.uniformsList=[];var Ia=p.program.getUniforms(),xa;for(xa in p.__webglShader.uniforms){var Ga=Ia[xa];Ga&&p.uniformsList.push([p.__webglShader.uniforms[xa],Ga])}}d.needsUpdate=!1}var Ha=!1,Aa=!1,wa=!1,$a=q.program,ba=$a.getUniforms(),I=q.__webglShader.uniforms;$a.id!==pb&&(t.useProgram($a.program),
|
|
|
+pb=$a.id,wa=Aa=Ha=!0);d.id!==Xa&&(-1===Xa&&(wa=!0),Xa=d.id,Aa=!0);if(Ha||a!==Wa)t.uniformMatrix4fv(ba.projectionMatrix,!1,a.projectionMatrix.elements),ta&&t.uniform1f(ba.logDepthBufFC,2/(Math.log(a.far+1)/Math.LN2)),a!==Wa&&(Wa=a),(d instanceof THREE.ShaderMaterial||d instanceof THREE.MeshPhongMaterial||d.envMap)&&void 0!==ba.cameraPosition&&(da.setFromMatrixPosition(a.matrixWorld),t.uniform3f(ba.cameraPosition,da.x,da.y,da.z)),(d instanceof THREE.MeshPhongMaterial||d instanceof THREE.MeshLambertMaterial||
|
|
|
+d instanceof THREE.MeshBasicMaterial||d instanceof THREE.ShaderMaterial||d.skinning)&&void 0!==ba.viewMatrix&&t.uniformMatrix4fv(ba.viewMatrix,!1,a.matrixWorldInverse.elements);if(d.skinning)if(e.bindMatrix&&void 0!==ba.bindMatrix&&t.uniformMatrix4fv(ba.bindMatrix,!1,e.bindMatrix.elements),e.bindMatrixInverse&&void 0!==ba.bindMatrixInverse&&t.uniformMatrix4fv(ba.bindMatrixInverse,!1,e.bindMatrixInverse.elements),qb&&e.skeleton&&e.skeleton.useVertexTexture){if(void 0!==ba.boneTexture){var Pa=y();t.uniform1i(ba.boneTexture,
|
|
|
Pa);ma.setTexture(e.skeleton.boneTexture,Pa)}void 0!==ba.boneTextureWidth&&t.uniform1i(ba.boneTextureWidth,e.skeleton.boneTextureWidth);void 0!==ba.boneTextureHeight&&t.uniform1i(ba.boneTextureHeight,e.skeleton.boneTextureHeight)}else e.skeleton&&e.skeleton.boneMatrices&&void 0!==ba.boneGlobalMatrices&&t.uniformMatrix4fv(ba.boneGlobalMatrices,!1,e.skeleton.boneMatrices);if(Aa){c&&d.fog&&(I.fogColor.value=c.color,c instanceof THREE.Fog?(I.fogNear.value=c.near,I.fogFar.value=c.far):c instanceof THREE.FogExp2&&
|
|
|
-(I.fogDensity.value=c.density));if(d instanceof THREE.MeshPhongMaterial||d instanceof THREE.MeshLambertMaterial||d.lights){if(ib){var wa=!0,aa,pa,Y,Ja=0,sb=0,tb=0,Ka,Za,gb,Qa,ub,ca=Sb,ab=a.matrixWorldInverse,vb=ca.directional.colors,wb=ca.directional.positions,xb=ca.point.colors,yb=ca.point.positions,nb=ca.point.distances,ob=ca.point.decays,zb=ca.spot.colors,Ab=ca.spot.positions,Mb=ca.spot.distances,Bb=ca.spot.directions,Nb=ca.spot.anglesCos,Ob=ca.spot.exponents,Pb=ca.spot.decays,Cb=ca.hemi.skyColors,
|
|
|
-Db=ca.hemi.groundColors,Eb=ca.hemi.positions,bb=0,La=0,ya=0,Ra=0,Fb=0,Gb=0,Hb=0,kb=0,cb=0,db=0,Da=0,Sa=0;aa=0;for(pa=b.length;aa<pa;aa++)Y=b[aa],Y.onlyShadow||(Ka=Y.color,Qa=Y.intensity,ub=Y.distance,Y instanceof THREE.AmbientLight?Y.visible&&(Ja+=Ka.r,sb+=Ka.g,tb+=Ka.b):Y instanceof THREE.DirectionalLight?(Fb+=1,Y.visible&&(ha.setFromMatrixPosition(Y.matrixWorld),da.setFromMatrixPosition(Y.target.matrixWorld),ha.sub(da),ha.transformDirection(ab),cb=3*bb,wb[cb+0]=ha.x,wb[cb+1]=ha.y,wb[cb+2]=ha.z,
|
|
|
+(I.fogDensity.value=c.density));if(d instanceof THREE.MeshPhongMaterial||d instanceof THREE.MeshLambertMaterial||d.lights){if(ib){var wa=!0,aa,qa,Y,Ja=0,sb=0,tb=0,Ka,Za,gb,Qa,ub,ca=Sb,ab=a.matrixWorldInverse,vb=ca.directional.colors,wb=ca.directional.positions,xb=ca.point.colors,yb=ca.point.positions,nb=ca.point.distances,ob=ca.point.decays,zb=ca.spot.colors,Ab=ca.spot.positions,Mb=ca.spot.distances,Bb=ca.spot.directions,Nb=ca.spot.anglesCos,Ob=ca.spot.exponents,Pb=ca.spot.decays,Cb=ca.hemi.skyColors,
|
|
|
+Db=ca.hemi.groundColors,Eb=ca.hemi.positions,bb=0,La=0,ya=0,Ra=0,Fb=0,Gb=0,Hb=0,kb=0,cb=0,db=0,Da=0,Sa=0;aa=0;for(qa=b.length;aa<qa;aa++)Y=b[aa],Y.onlyShadow||(Ka=Y.color,Qa=Y.intensity,ub=Y.distance,Y instanceof THREE.AmbientLight?Y.visible&&(Ja+=Ka.r,sb+=Ka.g,tb+=Ka.b):Y instanceof THREE.DirectionalLight?(Fb+=1,Y.visible&&(ha.setFromMatrixPosition(Y.matrixWorld),da.setFromMatrixPosition(Y.target.matrixWorld),ha.sub(da),ha.transformDirection(ab),cb=3*bb,wb[cb+0]=ha.x,wb[cb+1]=ha.y,wb[cb+2]=ha.z,
|
|
|
w(vb,cb,Ka,Qa),bb+=1)):Y instanceof THREE.PointLight?(Gb+=1,Y.visible&&(db=3*La,w(xb,db,Ka,Qa),da.setFromMatrixPosition(Y.matrixWorld),da.applyMatrix4(ab),yb[db+0]=da.x,yb[db+1]=da.y,yb[db+2]=da.z,nb[La]=ub,ob[La]=0===Y.distance?0:Y.decay,La+=1)):Y instanceof THREE.SpotLight?(Hb+=1,Y.visible&&(Da=3*ya,w(zb,Da,Ka,Qa),ha.setFromMatrixPosition(Y.matrixWorld),da.copy(ha).applyMatrix4(ab),Ab[Da+0]=da.x,Ab[Da+1]=da.y,Ab[Da+2]=da.z,Mb[ya]=ub,da.setFromMatrixPosition(Y.target.matrixWorld),ha.sub(da),ha.transformDirection(ab),
|
|
|
-Bb[Da+0]=ha.x,Bb[Da+1]=ha.y,Bb[Da+2]=ha.z,Nb[ya]=Math.cos(Y.angle),Ob[ya]=Y.exponent,Pb[ya]=0===Y.distance?0:Y.decay,ya+=1)):Y instanceof THREE.HemisphereLight&&(kb+=1,Y.visible&&(ha.setFromMatrixPosition(Y.matrixWorld),ha.transformDirection(ab),Sa=3*Ra,Eb[Sa+0]=ha.x,Eb[Sa+1]=ha.y,Eb[Sa+2]=ha.z,Za=Y.color,gb=Y.groundColor,w(Cb,Sa,Za,Qa),w(Db,Sa,gb,Qa),Ra+=1)));aa=3*bb;for(pa=Math.max(vb.length,3*Fb);aa<pa;aa++)vb[aa]=0;aa=3*La;for(pa=Math.max(xb.length,3*Gb);aa<pa;aa++)xb[aa]=0;aa=3*ya;for(pa=Math.max(zb.length,
|
|
|
-3*Hb);aa<pa;aa++)zb[aa]=0;aa=3*Ra;for(pa=Math.max(Cb.length,3*kb);aa<pa;aa++)Cb[aa]=0;aa=3*Ra;for(pa=Math.max(Db.length,3*kb);aa<pa;aa++)Db[aa]=0;ca.directional.length=bb;ca.point.length=La;ca.spot.length=ya;ca.hemi.length=Ra;ca.ambient[0]=Ja;ca.ambient[1]=sb;ca.ambient[2]=tb;ib=!1}if(wa){var ja=Sb;I.ambientLightColor.value=ja.ambient;I.directionalLightColor.value=ja.directional.colors;I.directionalLightDirection.value=ja.directional.positions;I.pointLightColor.value=ja.point.colors;I.pointLightPosition.value=
|
|
|
+Bb[Da+0]=ha.x,Bb[Da+1]=ha.y,Bb[Da+2]=ha.z,Nb[ya]=Math.cos(Y.angle),Ob[ya]=Y.exponent,Pb[ya]=0===Y.distance?0:Y.decay,ya+=1)):Y instanceof THREE.HemisphereLight&&(kb+=1,Y.visible&&(ha.setFromMatrixPosition(Y.matrixWorld),ha.transformDirection(ab),Sa=3*Ra,Eb[Sa+0]=ha.x,Eb[Sa+1]=ha.y,Eb[Sa+2]=ha.z,Za=Y.color,gb=Y.groundColor,w(Cb,Sa,Za,Qa),w(Db,Sa,gb,Qa),Ra+=1)));aa=3*bb;for(qa=Math.max(vb.length,3*Fb);aa<qa;aa++)vb[aa]=0;aa=3*La;for(qa=Math.max(xb.length,3*Gb);aa<qa;aa++)xb[aa]=0;aa=3*ya;for(qa=Math.max(zb.length,
|
|
|
+3*Hb);aa<qa;aa++)zb[aa]=0;aa=3*Ra;for(qa=Math.max(Cb.length,3*kb);aa<qa;aa++)Cb[aa]=0;aa=3*Ra;for(qa=Math.max(Db.length,3*kb);aa<qa;aa++)Db[aa]=0;ca.directional.length=bb;ca.point.length=La;ca.spot.length=ya;ca.hemi.length=Ra;ca.ambient[0]=Ja;ca.ambient[1]=sb;ca.ambient[2]=tb;ib=!1}if(wa){var ja=Sb;I.ambientLightColor.value=ja.ambient;I.directionalLightColor.value=ja.directional.colors;I.directionalLightDirection.value=ja.directional.positions;I.pointLightColor.value=ja.point.colors;I.pointLightPosition.value=
|
|
|
ja.point.positions;I.pointLightDistance.value=ja.point.distances;I.pointLightDecay.value=ja.point.decays;I.spotLightColor.value=ja.spot.colors;I.spotLightPosition.value=ja.spot.positions;I.spotLightDistance.value=ja.spot.distances;I.spotLightDirection.value=ja.spot.directions;I.spotLightAngleCos.value=ja.spot.anglesCos;I.spotLightExponent.value=ja.spot.exponents;I.spotLightDecay.value=ja.spot.decays;I.hemisphereLightSkyColor.value=ja.hemi.skyColors;I.hemisphereLightGroundColor.value=ja.hemi.groundColors;
|
|
|
I.hemisphereLightDirection.value=ja.hemi.positions;v(I,!0)}else v(I,!1)}if(d instanceof THREE.MeshBasicMaterial||d instanceof THREE.MeshLambertMaterial||d instanceof THREE.MeshPhongMaterial){I.opacity.value=d.opacity;I.diffuse.value=d.color;I.map.value=d.map;I.specularMap.value=d.specularMap;I.alphaMap.value=d.alphaMap;d.bumpMap&&(I.bumpMap.value=d.bumpMap,I.bumpScale.value=d.bumpScale);d.normalMap&&(I.normalMap.value=d.normalMap,I.normalScale.value.copy(d.normalScale));var za;d.map?za=d.map:d.specularMap?
|
|
|
za=d.specularMap:d.normalMap?za=d.normalMap:d.bumpMap?za=d.bumpMap:d.alphaMap?za=d.alphaMap:d.emissiveMap&&(za=d.emissiveMap);if(void 0!==za){var Tb=za.offset,Ub=za.repeat;I.offsetRepeat.value.set(Tb.x,Tb.y,Ub.x,Ub.y)}I.envMap.value=d.envMap;I.flipEnvMap.value=d.envMap instanceof THREE.WebGLRenderTargetCube?1:-1;I.reflectivity.value=d.reflectivity;I.refractionRatio.value=d.refractionRatio}if(d instanceof THREE.LineBasicMaterial)I.diffuse.value=d.color,I.opacity.value=d.opacity;else if(d instanceof
|
|
|
THREE.LineDashedMaterial)I.diffuse.value=d.color,I.opacity.value=d.opacity,I.dashSize.value=d.dashSize,I.totalSize.value=d.dashSize+d.gapSize,I.scale.value=d.scale;else if(d instanceof THREE.PointCloudMaterial){if(I.psColor.value=d.color,I.opacity.value=d.opacity,I.size.value=d.size,I.scale.value=C.height/2,I.map.value=d.map,null!==d.map){var Vb=d.map.offset,Wb=d.map.repeat;I.offsetRepeat.value.set(Vb.x,Vb.y,Wb.x,Wb.y)}}else d instanceof THREE.MeshPhongMaterial?(I.shininess.value=d.shininess,I.emissive.value=
|
|
|
d.emissive,I.specular.value=d.specular,I.lightMap.value=d.lightMap,I.lightMapIntensity.value=d.lightMapIntensity,I.aoMap.value=d.aoMap,I.aoMapIntensity.value=d.aoMapIntensity,I.emissiveMap.value=d.emissiveMap):d instanceof THREE.MeshLambertMaterial?I.emissive.value=d.emissive:d instanceof THREE.MeshBasicMaterial?(I.aoMap.value=d.aoMap,I.aoMapIntensity.value=d.aoMapIntensity):d instanceof THREE.MeshDepthMaterial?(I.mNear.value=a.near,I.mFar.value=a.far,I.opacity.value=d.opacity):d instanceof THREE.MeshNormalMaterial&&
|
|
|
-(I.opacity.value=d.opacity);if(e.receiveShadow&&!d._shadowPass&&I.shadowMatrix)for(var Ta=0,Ib=0,Qb=b.length;Ib<Qb;Ib++){var Ea=b[Ib];Ea.castShadow&&(Ea instanceof THREE.SpotLight||Ea instanceof THREE.DirectionalLight)&&(I.shadowMap.value[Ta]=Ea.shadowMap,I.shadowMapSize.value[Ta]=Ea.shadowMapSize,I.shadowMatrix.value[Ta]=Ea.shadowMatrix,I.shadowDarkness.value[Ta]=Ea.shadowDarkness,I.shadowBias.value[Ta]=Ea.shadowBias,Ta++)}for(var Jb=q.uniformsList,qa,Ma,lb=0,Rb=Jb.length;lb<Rb;lb++){var U=Jb[lb][0];
|
|
|
+(I.opacity.value=d.opacity);if(e.receiveShadow&&!d._shadowPass&&I.shadowMatrix)for(var Ta=0,Ib=0,Qb=b.length;Ib<Qb;Ib++){var Ea=b[Ib];Ea.castShadow&&(Ea instanceof THREE.SpotLight||Ea instanceof THREE.DirectionalLight)&&(I.shadowMap.value[Ta]=Ea.shadowMap,I.shadowMapSize.value[Ta]=Ea.shadowMapSize,I.shadowMatrix.value[Ta]=Ea.shadowMatrix,I.shadowDarkness.value[Ta]=Ea.shadowDarkness,I.shadowBias.value[Ta]=Ea.shadowBias,Ta++)}for(var Jb=q.uniformsList,ra,Ma,lb=0,Rb=Jb.length;lb<Rb;lb++){var U=Jb[lb][0];
|
|
|
if(!1!==U.needsUpdate){var Xb=U.type,M=U.value,W=Jb[lb][1];switch(Xb){case "1i":t.uniform1i(W,M);break;case "1f":t.uniform1f(W,M);break;case "2f":t.uniform2f(W,M[0],M[1]);break;case "3f":t.uniform3f(W,M[0],M[1],M[2]);break;case "4f":t.uniform4f(W,M[0],M[1],M[2],M[3]);break;case "1iv":t.uniform1iv(W,M);break;case "3iv":t.uniform3iv(W,M);break;case "1fv":t.uniform1fv(W,M);break;case "2fv":t.uniform2fv(W,M);break;case "3fv":t.uniform3fv(W,M);break;case "4fv":t.uniform4fv(W,M);break;case "Matrix3fv":t.uniformMatrix3fv(W,
|
|
|
!1,M);break;case "Matrix4fv":t.uniformMatrix4fv(W,!1,M);break;case "i":t.uniform1i(W,M);break;case "f":t.uniform1f(W,M);break;case "v2":t.uniform2f(W,M.x,M.y);break;case "v3":t.uniform3f(W,M.x,M.y,M.z);break;case "v4":t.uniform4f(W,M.x,M.y,M.z,M.w);break;case "c":t.uniform3f(W,M.r,M.g,M.b);break;case "iv1":t.uniform1iv(W,M);break;case "iv":t.uniform3iv(W,M);break;case "fv1":t.uniform1fv(W,M);break;case "fv":t.uniform3fv(W,M);break;case "v2v":void 0===U._array&&(U._array=new Float32Array(2*M.length));
|
|
|
for(var V=0,mb=0,oa=M.length;V<oa;V++,mb+=2)U._array[mb+0]=M[V].x,U._array[mb+1]=M[V].y;t.uniform2fv(W,U._array);break;case "v3v":void 0===U._array&&(U._array=new Float32Array(3*M.length));for(var eb=V=0,oa=M.length;V<oa;V++,eb+=3)U._array[eb+0]=M[V].x,U._array[eb+1]=M[V].y,U._array[eb+2]=M[V].z;t.uniform3fv(W,U._array);break;case "v4v":void 0===U._array&&(U._array=new Float32Array(4*M.length));for(var Ua=V=0,oa=M.length;V<oa;V++,Ua+=4)U._array[Ua+0]=M[V].x,U._array[Ua+1]=M[V].y,U._array[Ua+2]=M[V].z,
|
|
|
U._array[Ua+3]=M[V].w;t.uniform4fv(W,U._array);break;case "m3":t.uniformMatrix3fv(W,!1,M.elements);break;case "m3v":void 0===U._array&&(U._array=new Float32Array(9*M.length));V=0;for(oa=M.length;V<oa;V++)M[V].flattenToArrayOffset(U._array,9*V);t.uniformMatrix3fv(W,!1,U._array);break;case "m4":t.uniformMatrix4fv(W,!1,M.elements);break;case "m4v":void 0===U._array&&(U._array=new Float32Array(16*M.length));V=0;for(oa=M.length;V<oa;V++)M[V].flattenToArrayOffset(U._array,16*V);t.uniformMatrix4fv(W,!1,
|
|
|
-U._array);break;case "t":qa=M;Ma=y();t.uniform1i(W,Ma);if(!qa)continue;if(qa instanceof THREE.CubeTexture||Array.isArray(qa.image)&&6===qa.image.length){var ea=qa,Yb=Ma,Va=$.get(ea);if(6===ea.image.length)if(0<ea.version&&Va.__version!==ea.version){Va.__image__webglTextureCube||(ea.addEventListener("dispose",g),Va.__image__webglTextureCube=t.createTexture(),Ba.textures++);K.activeTexture(t.TEXTURE0+Yb);K.bindTexture(t.TEXTURE_CUBE_MAP,Va.__image__webglTextureCube);t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,
|
|
|
+U._array);break;case "t":ra=M;Ma=y();t.uniform1i(W,Ma);if(!ra)continue;if(ra instanceof THREE.CubeTexture||Array.isArray(ra.image)&&6===ra.image.length){var ea=ra,Yb=Ma,Va=$.get(ea);if(6===ea.image.length)if(0<ea.version&&Va.__version!==ea.version){Va.__image__webglTextureCube||(ea.addEventListener("dispose",g),Va.__image__webglTextureCube=t.createTexture(),Ba.textures++);K.activeTexture(t.TEXTURE0+Yb);K.bindTexture(t.TEXTURE_CUBE_MAP,Va.__image__webglTextureCube);t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,
|
|
|
ea.flipY);for(var Zb=ea instanceof THREE.CompressedTexture,Kb=ea.image[0]instanceof THREE.DataTexture,Na=[],ia=0;6>ia;ia++)Na[ia]=!ma.autoScaleCubemaps||Zb||Kb?Kb?ea.image[ia].image:ea.image[ia]:B(ea.image[ia],dc);var $b=Na[0],ac=THREE.Math.isPowerOfTwo($b.width)&&THREE.Math.isPowerOfTwo($b.height),Fa=L(ea.format),Lb=L(ea.type);E(t.TEXTURE_CUBE_MAP,ea,ac);for(ia=0;6>ia;ia++)if(Zb)for(var Oa,bc=Na[ia].mipmaps,fb=0,ec=bc.length;fb<ec;fb++)Oa=bc[fb],ea.format!==THREE.RGBAFormat&&ea.format!==THREE.RGBFormat?
|
|
|
-1<K.getCompressedTextureFormats().indexOf(Fa)?K.compressedTexImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+ia,fb,Fa,Oa.width,Oa.height,0,Oa.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setCubeTexture()"):K.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+ia,fb,Fa,Oa.width,Oa.height,0,Fa,Lb,Oa.data);else Kb?K.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+ia,0,Fa,Na[ia].width,Na[ia].height,0,Fa,Lb,Na[ia].data):K.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+ia,0,Fa,Fa,Lb,
|
|
|
-Na[ia]);ea.generateMipmaps&&ac&&t.generateMipmap(t.TEXTURE_CUBE_MAP);Va.__version=ea.version;if(ea.onUpdate)ea.onUpdate(ea)}else K.activeTexture(t.TEXTURE0+Yb),K.bindTexture(t.TEXTURE_CUBE_MAP,Va.__image__webglTextureCube)}else if(qa instanceof THREE.WebGLRenderTargetCube){var fc=qa;K.activeTexture(t.TEXTURE0+Ma);K.bindTexture(t.TEXTURE_CUBE_MAP,$.get(fc).__webglTexture)}else ma.setTexture(qa,Ma);break;case "tv":void 0===U._array&&(U._array=[]);V=0;for(oa=U.value.length;V<oa;V++)U._array[V]=y();t.uniform1iv(W,
|
|
|
-U._array);V=0;for(oa=U.value.length;V<oa;V++)qa=U.value[V],Ma=U._array[V],qa&&ma.setTexture(qa,Ma);break;default:console.warn("THREE.WebGLRenderer: Unknown uniform type: "+Xb)}}}}t.uniformMatrix4fv(ba.modelViewMatrix,!1,e.modelViewMatrix.elements);ba.normalMatrix&&t.uniformMatrix3fv(ba.normalMatrix,!1,e.normalMatrix.elements);void 0!==ba.modelMatrix&&t.uniformMatrix4fv(ba.modelMatrix,!1,e.matrixWorld.elements);return $a}function v(a,b){a.ambientLightColor.needsUpdate=b;a.directionalLightColor.needsUpdate=
|
|
|
+Na[ia]);ea.generateMipmaps&&ac&&t.generateMipmap(t.TEXTURE_CUBE_MAP);Va.__version=ea.version;if(ea.onUpdate)ea.onUpdate(ea)}else K.activeTexture(t.TEXTURE0+Yb),K.bindTexture(t.TEXTURE_CUBE_MAP,Va.__image__webglTextureCube)}else if(ra instanceof THREE.WebGLRenderTargetCube){var fc=ra;K.activeTexture(t.TEXTURE0+Ma);K.bindTexture(t.TEXTURE_CUBE_MAP,$.get(fc).__webglTexture)}else ma.setTexture(ra,Ma);break;case "tv":void 0===U._array&&(U._array=[]);V=0;for(oa=U.value.length;V<oa;V++)U._array[V]=y();t.uniform1iv(W,
|
|
|
+U._array);V=0;for(oa=U.value.length;V<oa;V++)ra=U.value[V],Ma=U._array[V],ra&&ma.setTexture(ra,Ma);break;default:console.warn("THREE.WebGLRenderer: Unknown uniform type: "+Xb)}}}}t.uniformMatrix4fv(ba.modelViewMatrix,!1,e.modelViewMatrix.elements);ba.normalMatrix&&t.uniformMatrix3fv(ba.normalMatrix,!1,e.normalMatrix.elements);void 0!==ba.modelMatrix&&t.uniformMatrix4fv(ba.modelMatrix,!1,e.matrixWorld.elements);return $a}function v(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.pointLightDecay.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.spotLightDecay.needsUpdate=b;a.hemisphereLightSkyColor.needsUpdate=b;a.hemisphereLightGroundColor.needsUpdate=b;a.hemisphereLightDirection.needsUpdate=
|
|
|
b}function y(){var a=jb;a>=gb&&console.warn("WebGLRenderer: trying to use "+a+" texture units while this GPU supports only "+gb);jb+=1;return a}function w(a,b,c,d){a[b+0]=c.r*d;a[b+1]=c.g*d;a[b+2]=c.b*d}function E(a,b,c){c?(t.texParameteri(a,t.TEXTURE_WRAP_S,L(b.wrapS)),t.texParameteri(a,t.TEXTURE_WRAP_T,L(b.wrapT)),t.texParameteri(a,t.TEXTURE_MAG_FILTER,L(b.magFilter)),t.texParameteri(a,t.TEXTURE_MIN_FILTER,L(b.minFilter))):(t.texParameteri(a,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(a,t.TEXTURE_WRAP_T,
|
|
|
t.CLAMP_TO_EDGE),b.wrapS===THREE.ClampToEdgeWrapping&&b.wrapT===THREE.ClampToEdgeWrapping||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping. ( "+b.sourceFile+" )"),t.texParameteri(a,t.TEXTURE_MAG_FILTER,O(b.magFilter)),t.texParameteri(a,t.TEXTURE_MIN_FILTER,O(b.minFilter)),b.minFilter!==THREE.NearestFilter&&b.minFilter!==THREE.LinearFilter&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter. ( "+
|
|
@@ -536,12 +536,12 @@ if(a===THREE.RGBFormat)return t.RGB;if(a===THREE.RGBAFormat)return t.RGBA;if(a==
|
|
|
if(a===THREE.SrcAlphaFactor)return t.SRC_ALPHA;if(a===THREE.OneMinusSrcAlphaFactor)return t.ONE_MINUS_SRC_ALPHA;if(a===THREE.DstAlphaFactor)return t.DST_ALPHA;if(a===THREE.OneMinusDstAlphaFactor)return t.ONE_MINUS_DST_ALPHA;if(a===THREE.DstColorFactor)return t.DST_COLOR;if(a===THREE.OneMinusDstColorFactor)return t.ONE_MINUS_DST_COLOR;if(a===THREE.SrcAlphaSaturateFactor)return t.SRC_ALPHA_SATURATE;b=X.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=X.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=X.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 C=void 0!==a.canvas?a.canvas:document.createElement("canvas"),P=void 0!==a.context?a.context:null,J=C.width,F=C.height,D=1,G=void 0!==a.precision?a.precision:"highp",N=void 0!==a.alpha?a.alpha:!1,R=void 0!==a.depth?a.depth:!0,
|
|
|
-T=void 0!==a.stencil?a.stencil:!0,Q=void 0!==a.antialias?a.antialias:!1,S=void 0!==a.premultipliedAlpha?a.premultipliedAlpha:!0,H=void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:!1,ta=void 0!==a.logarithmicDepthBuffer?a.logarithmicDepthBuffer:!1,Z=new THREE.Color(0),fa=0,ga=[],va=[],la=[],sa=[],Ca=[],hb=new Float32Array(8),ra=[],Ya=[];this.domElement=C;this.context=null;this.sortObjects=this.autoClearStencil=this.autoClearDepth=this.autoClearColor=this.autoClear=!0;this.gammaFactor=2;this.gammaOutput=
|
|
|
+T=void 0!==a.stencil?a.stencil:!0,Q=void 0!==a.antialias?a.antialias:!1,S=void 0!==a.premultipliedAlpha?a.premultipliedAlpha:!0,H=void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:!1,ta=void 0!==a.logarithmicDepthBuffer?a.logarithmicDepthBuffer:!1,Z=new THREE.Color(0),fa=0,ga=[],va=[],la=[],sa=[],Ca=[],hb=new Float32Array(8),pa=[],Ya=[];this.domElement=C;this.context=null;this.sortObjects=this.autoClearStencil=this.autoClearDepth=this.autoClearColor=this.autoClear=!0;this.gammaFactor=2;this.gammaOutput=
|
|
|
this.gammaInput=!1;this.maxMorphTargets=8;this.maxMorphNormals=4;this.autoScaleCubemaps=!0;var ma=this,ua=[],pb=null,Pa=null,Xa=-1,Ia="",Wa=null,jb=0,Ga=0,Ha=0,Aa=C.width,wa=C.height,nb=0,ob=0,Za=new THREE.Frustum,Ja=new THREE.Matrix4,da=new THREE.Vector3,ha=new THREE.Vector3,ib=!0,Sb={ambient:[0,0,0],directional:{length:0,colors:[],positions:[]},point:{length:0,colors:[],positions:[],distances:[],decays:[]},spot:{length:0,colors:[],positions:[],distances:[],directions:[],anglesCos:[],exponents:[],
|
|
|
decays:[]},hemi:{length:0,skyColors:[],groundColors:[],positions:[]}},Ba={programs:0,geometries:0,textures:0},ka={calls:0,vertices:0,faces:0,points:0};this.info={render:ka,memory:Ba,programs:ua};var t;try{a={alpha:N,depth:R,stencil:T,antialias:Q,premultipliedAlpha:S,preserveDrawingBuffer:H};t=P||C.getContext("webgl",a)||C.getContext("experimental-webgl",a);if(null===t){if(null!==C.getContext("webgl"))throw"Error creating WebGL context with your selected attributes.";throw"Error creating WebGL context.";
|
|
|
}C.addEventListener("webglcontextlost",e,!1)}catch(Mb){console.error("THREE.WebGLRenderer: "+Mb)}var X=new THREE.WebGLExtensions(t);X.get("OES_texture_float");X.get("OES_texture_float_linear");X.get("OES_texture_half_float");X.get("OES_texture_half_float_linear");X.get("OES_standard_derivatives");X.get("ANGLE_instanced_arrays");X.get("OES_element_index_uint")&&(THREE.BufferGeometry.MaxIndex=4294967296);ta&&X.get("EXT_frag_depth");var K=new THREE.WebGLState(t,X,L),$=new THREE.WebGLProperties,xa=new THREE.WebGLObjects(t,
|
|
|
$,this.info),Nb=new THREE.WebGLBufferRenderer(t,X,ka),Ob=new THREE.WebGLIndexedBufferRenderer(t,X,ka);c();this.context=t;this.extensions=X;this.state=K;var na=new THREE.WebGLShadowMap(this,ga,xa);this.shadowMap=na;var gb=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS),P=t.getParameter(t.MAX_VERTEX_TEXTURE_IMAGE_UNITS),Pb=t.getParameter(t.MAX_TEXTURE_SIZE),dc=t.getParameter(t.MAX_CUBE_MAP_TEXTURE_SIZE),rb=0<P,qb=rb&&X.get("OES_texture_float"),P=K.getMaxPrecision(G);P!==G&&(console.warn("THREE.WebGLRenderer:",
|
|
|
-G,"not supported, using",P,"instead."),G=P);var Qb=new THREE.SpritePlugin(this,ra),Rb=new THREE.LensFlarePlugin(this,Ya);this.getContext=function(){return t};this.getContextAttributes=function(){return t.getContextAttributes()};this.forceContextLoss=function(){X.get("WEBGL_lose_context").loseContext()};this.getMaxAnisotropy=function(){var a;return function(){if(void 0!==a)return a;var b=X.get("EXT_texture_filter_anisotropic");return a=null!==b?t.getParameter(b.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0}}();
|
|
|
+G,"not supported, using",P,"instead."),G=P);var Qb=new THREE.SpritePlugin(this,pa),Rb=new THREE.LensFlarePlugin(this,Ya);this.getContext=function(){return t};this.getContextAttributes=function(){return t.getContextAttributes()};this.forceContextLoss=function(){X.get("WEBGL_lose_context").loseContext()};this.getMaxAnisotropy=function(){var a;return function(){if(void 0!==a)return a;var b=X.get("EXT_texture_filter_anisotropic");return a=null!==b?t.getParameter(b.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0}}();
|
|
|
this.getPrecision=function(){return G};this.getPixelRatio=function(){return D};this.setPixelRatio=function(a){void 0!==a&&(D=a)};this.getSize=function(){return{width:J,height:F}};this.setSize=function(a,b,c){J=a;F=b;C.width=a*D;C.height=b*D;!1!==c&&(C.style.width=a+"px",C.style.height=b+"px");this.setViewport(0,0,a,b)};this.setViewport=function(a,b,c,d){Ga=a*D;Ha=b*D;Aa=c*D;wa=d*D;t.viewport(Ga,Ha,Aa,wa)};this.setScissor=function(a,b,c,d){t.scissor(a*D,b*D,c*D,d*D)};this.enableScissorTest=function(a){K.setScissorTest(a)};
|
|
|
this.getClearColor=function(){return Z};this.setClearColor=function(a,c){Z.set(a);fa=void 0!==c?c:1;b(Z.r,Z.g,Z.b,fa)};this.getClearAlpha=function(){return fa};this.setClearAlpha=function(a){fa=a;b(Z.r,Z.g,Z.b,fa)};this.clear=function(a,b,c){var d=0;if(void 0===a||a)d|=t.COLOR_BUFFER_BIT;if(void 0===b||b)d|=t.DEPTH_BUFFER_BIT;if(void 0===c||c)d|=t.STENCIL_BUFFER_BIT;t.clear(d)};this.clearColor=function(){t.clear(t.COLOR_BUFFER_BIT)};this.clearDepth=function(){t.clear(t.DEPTH_BUFFER_BIT)};this.clearStencil=
|
|
|
function(){t.clear(t.STENCIL_BUFFER_BIT)};this.clearTarget=function(a,b,c,d){this.setRenderTarget(a);this.clear(b,c,d)};this.resetGLState=d;this.dispose=function(){C.removeEventListener("webglcontextlost",e,!1)};this.renderBufferImmediate=function(a,b,c){K.initAttributes();var d=$.get(a);a.hasPositions&&!d.position&&(d.position=t.createBuffer());a.hasNormals&&!d.normal&&(d.normal=t.createBuffer());a.hasUvs&&!d.uv&&(d.uv=t.createBuffer());a.hasColors&&!d.color&&(d.color=t.createBuffer());b=b.getAttributes();
|
|
@@ -554,7 +554,7 @@ z=y.stride,r=r.offset;t.bindBuffer(t.ARRAY_BUFFER,w);t.vertexAttribPointer(s,v,t
|
|
|
y.count)}}else if(t.bindBuffer(t.ARRAY_BUFFER,w),t.vertexAttribPointer(s,v,t.FLOAT,!1,0,k*v*4),r instanceof THREE.InstancedBufferAttribute){if(null===q){console.error("THREE.WebGLRenderer.setupVertexAttributes: using THREE.InstancedBufferAttribute but hardware does not support extension ANGLE_instanced_arrays.");break a}q.vertexAttribDivisorANGLE(s,r.meshPerAttribute);void 0===d.maxInstancedCount&&(d.maxInstancedCount=r.meshPerAttribute*r.count)}}else if(void 0!==n&&(v=n[p],void 0!==v))switch(v.length){case 2:t.vertexAttrib2fv(s,
|
|
|
v);break;case 3:t.vertexAttrib3fv(s,v);break;case 4:t.vertexAttrib4fv(s,v);break;default:t.vertexAttrib1fv(s,v)}}}K.disableUnusedAttributes()}null!==a&&t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,xa.getAttributeBuffer(a))}void 0===g&&(g={start:0,count:null!==a?a.array.length:c instanceof THREE.InterleavedBufferAttribute?c.data.array.length/3:c.array.length/3});f instanceof THREE.Mesh?(!0===e.wireframe?(K.setLineWidth(e.wireframeLinewidth*D),b.setMode(t.LINES)):b.setMode(t.TRIANGLES),d instanceof THREE.InstancedBufferGeometry&&
|
|
|
0<d.maxInstancedCount?b.renderInstances(d):c instanceof THREE.InterleavedBufferAttribute?b.render(0,c.data.count):b.render(g.start,g.count)):f instanceof THREE.Line?(d=e.linewidth,void 0===d&&(d=1),K.setLineWidth(d*D),f instanceof THREE.LineSegments?b.setMode(t.LINES):b.setMode(t.LINE_STRIP),b.render(g.start,g.count)):f instanceof THREE.PointCloud&&(b.setMode(t.POINTS),b.render(g.start,g.count))};this.render=function(a,b,c,d){if(!1===b instanceof THREE.Camera)console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");
|
|
|
-else{var e=a.fog;Ia="";Xa=-1;Wa=null;ib=!0;!0===a.autoUpdate&&a.updateMatrixWorld();null===b.parent&&b.updateMatrixWorld();b.matrixWorldInverse.getInverse(b.matrixWorld);Ja.multiplyMatrices(b.projectionMatrix,b.matrixWorldInverse);Za.setFromMatrix(Ja);ga.length=0;va.length=0;la.length=0;sa.length=0;Ca.length=0;ra.length=0;Ya.length=0;q(a);!0===ma.sortObjects&&(va.sort(n),la.sort(p));na.render(a,b);ka.calls=0;ka.vertices=0;ka.faces=0;ka.points=0;this.setRenderTarget(c);(this.autoClear||d)&&this.clear(this.autoClearColor,
|
|
|
+else{var e=a.fog;Ia="";Xa=-1;Wa=null;ib=!0;!0===a.autoUpdate&&a.updateMatrixWorld();null===b.parent&&b.updateMatrixWorld();b.matrixWorldInverse.getInverse(b.matrixWorld);Ja.multiplyMatrices(b.projectionMatrix,b.matrixWorldInverse);Za.setFromMatrix(Ja);ga.length=0;va.length=0;la.length=0;sa.length=0;Ca.length=0;pa.length=0;Ya.length=0;q(a);!0===ma.sortObjects&&(va.sort(n),la.sort(p));na.render(a,b);ka.calls=0;ka.vertices=0;ka.faces=0;ka.points=0;this.setRenderTarget(c);(this.autoClear||d)&&this.clear(this.autoClearColor,
|
|
|
this.autoClearDepth,this.autoClearStencil);a.overrideMaterial?(d=a.overrideMaterial,s(va,b,ga,e,d),s(la,b,ga,e,d),r(sa,b,ga,e,d),r(Ca,b,ga,e,d)):(K.setBlending(THREE.NoBlending),s(va,b,ga,e),r(sa,b,ga,e),s(la,b,ga,e),r(Ca,b,ga,e));Qb.render(a,b);Rb.render(a,b,nb,ob);c&&c.generateMipmaps&&c.minFilter!==THREE.NearestFilter&&c.minFilter!==THREE.LinearFilter&&(c instanceof THREE.WebGLRenderTargetCube?(K.bindTexture(t.TEXTURE_CUBE_MAP,$.get(c).__webglTexture),t.generateMipmap(t.TEXTURE_CUBE_MAP),K.bindTexture(t.TEXTURE_CUBE_MAP,
|
|
|
null)):(K.bindTexture(t.TEXTURE_2D,$.get(c).__webglTexture),t.generateMipmap(t.TEXTURE_2D),K.bindTexture(t.TEXTURE_2D,null)));K.setDepthTest(!0);K.setDepthWrite(!0);K.setColorWrite(!0)}};var cc={MeshDepthMaterial:"depth",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointCloudMaterial:"particle_basic"};this.setFaceCulling=function(a,b){a===THREE.CullFaceNone?K.disable(t.CULL_FACE):
|
|
|
(b===THREE.FrontFaceDirectionCW?t.frontFace(t.CW):t.frontFace(t.CCW),a===THREE.CullFaceBack?t.cullFace(t.BACK):a===THREE.CullFaceFront?t.cullFace(t.FRONT):t.cullFace(t.FRONT_AND_BACK),K.enable(t.CULL_FACE))};this.setTexture=function(a,b){var c=$.get(a);if(0<a.version&&c.__version!==a.version){var d=a.image;if(void 0===d)console.warn("THREE.WebGLRenderer: Texture marked for update but image is undefined",a);else if(!1===d.complete)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete",
|