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

Updated builds.

上级 b66d8b01
......@@ -12221,7 +12221,9 @@ THREE.SceneLoader.prototype = {
// lights
} else if (objJSON.type === "PointLight" || objJSON.type === "AmbientLight" || objJSON.type === "SpotLight" || objJSON.type === "HemisphereLight" || objJSON.type === "AreaLight") {
} else if ( objJSON.type === "AmbientLight" || objJSON.type === "PointLight" ||
objJSON.type === "DirectionalLight" || objJSON.type === "SpotLight" ||
objJSON.type === "HemisphereLight" || objJSON.type === "AreaLight" ) {
var color = objJSON.color;
var intensity = objJSON.intensity;
......@@ -12240,6 +12242,11 @@ THREE.SceneLoader.prototype = {
light.position.fromArray( position );
break;
case 'DirectionalLight':
light = new THREE.DirectionalLight( color, intensity );
light.position.fromArray( objJSON.direction );
break;
case 'SpotLight':
light = new THREE.SpotLight( color, intensity, distance, 1 );
light.angle = objJSON.angle;
......
......@@ -237,24 +237,25 @@ THREE.SceneLoader.prototype={constructor:THREE.SceneLoader,load:function(a,b){va
E.objects)}function f(a,b){var c,e,h,i,k,m;for(m in b){var n=y.objects[m],p=b[m];if(void 0===n){if(p.type&&p.type in l.hierarchyHandlers){if(void 0===p.loading){c={type:1,url:1,material:1,position:1,rotation:1,scale:1,visible:1,children:1,userData:1,skin:1,morph:1,mirroredLoop:1,duration:1};var u={},v;for(v in p)v in c||(u[v]=p[v]);r=y.materials[p.material];p.loading=!0;c=l.hierarchyHandlers[p.type].loaderObject;c.options?c.load(d(p.url,E.urlBaseType),g(m,a,r,p)):c.load(d(p.url,E.urlBaseType),g(m,
a,r,p),u)}}else if(void 0!==p.geometry){if(s=y.geometries[p.geometry]){n=!1;r=y.materials[p.material];n=r instanceof THREE.ShaderMaterial;e=p.position;h=p.rotation;i=p.scale;c=p.matrix;k=p.quaternion;p.material||(r=new THREE.MeshFaceMaterial(y.face_materials[p.geometry]));r instanceof THREE.MeshFaceMaterial&&0===r.materials.length&&(r=new THREE.MeshFaceMaterial(y.face_materials[p.geometry]));if(r instanceof THREE.MeshFaceMaterial)for(u=0;u<r.materials.length;u++)n=n||r.materials[u]instanceof THREE.ShaderMaterial;
n&&s.computeTangents();p.skin?n=new THREE.SkinnedMesh(s,r):p.morph?(n=new THREE.MorphAnimMesh(s,r),void 0!==p.duration&&(n.duration=p.duration),void 0!==p.time&&(n.time=p.time),void 0!==p.mirroredLoop&&(n.mirroredLoop=p.mirroredLoop),r.morphNormals&&s.computeMorphNormals()):n=new THREE.Mesh(s,r);n.name=m;c?(n.matrixAutoUpdate=!1,n.matrix.set(c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7],c[8],c[9],c[10],c[11],c[12],c[13],c[14],c[15])):(n.position.fromArray(e),k?n.quaternion.fromArray(k):n.rotation.fromArray(h),
n.scale.fromArray(i));n.visible=p.visible;n.castShadow=p.castShadow;n.receiveShadow=p.receiveShadow;a.add(n);y.objects[m]=n}}else if("PointLight"===p.type||"AmbientLight"===p.type||"SpotLight"===p.type||"HemisphereLight"===p.type||"AreaLight"===p.type){u=p.color;c=p.intensity;e=p.distance;h=p.position;i=p.rotation;switch(p.type){case "AmbientLight":t=new THREE.AmbientLight(u);break;case "PointLight":t=new THREE.PointLight(u,c,e);t.position.fromArray(h);break;case "SpotLight":t=new THREE.SpotLight(u,
c,e,1);t.angle=p.angle;t.position.fromArray(h);t.target.set(h[0],h[1]-e,h[2]);t.target.applyEuler(new THREE.Euler(i[0],i[1],i[2],"XYZ"));break;case "HemisphereLight":t=new THREE.DirectionalLight(u,c,e);t.target.set(h[0],h[1]-e,h[2]);t.target.applyEuler(new THREE.Euler(i[0],i[1],i[2],"XYZ"));break;case "AreaLight":t=new THREE.AreaLight(u,c),t.position.fromArray(h),t.width=p.size,t.height=p.size_y}a.add(t);t.name=m;y.lights[m]=t;y.objects[m]=t}else"PerspectiveCamera"===p.type||"OrthographicCamera"===
p.type?(e=p.position,h=p.rotation,k=p.quaternion,"PerspectiveCamera"===p.type?q=new THREE.PerspectiveCamera(p.fov,p.aspect,p.near,p.far):"OrthographicCamera"===p.type&&(q=new THREE.OrthographicCamera(p.left,p.right,p.top,p.bottom,p.near,p.far)),q.name=m,q.position.fromArray(e),void 0!==k?q.quaternion.fromArray(k):void 0!==h&&q.rotation.fromArray(h),a.add(q),y.cameras[m]=q,y.objects[m]=q):(e=p.position,h=p.rotation,i=p.scale,k=p.quaternion,n=new THREE.Object3D,n.name=m,n.position.fromArray(e),k?n.quaternion.fromArray(k):
n.rotation.fromArray(h),n.scale.fromArray(i),n.visible=void 0!==p.visible?p.visible:!1,a.add(n),y.objects[m]=n,y.empties[m]=n);if(n){if(void 0!==p.userData)for(var w in p.userData)n.userData[w]=p.userData[w];if(void 0!==p.groups)for(u=0;u<p.groups.length;u++)c=p.groups[u],void 0===y.groups[c]&&(y.groups[c]=[]),y.groups[c].push(m)}}void 0!==n&&void 0!==p.children&&f(n,p.children)}}function h(a){return function(b,c){b.name=a;y.geometries[a]=b;y.face_materials[a]=c;e();v-=1;l.onLoadComplete();k()}}function g(a,
b,c,d){return function(f){var f=f.content?f.content:f.dae?f.scene:f,h=d.rotation,g=d.quaternion,i=d.scale;f.position.fromArray(d.position);g?f.quaternion.fromArray(g):f.rotation.fromArray(h);f.scale.fromArray(i);c&&f.traverse(function(a){a.material=c});var m=void 0!==d.visible?d.visible:!0;f.traverse(function(a){a.visible=m});b.add(f);f.name=a;y.objects[a]=f;e();v-=1;l.onLoadComplete();k()}}function i(a){return function(b,c){b.name=a;y.geometries[a]=b;y.face_materials[a]=c}}function k(){l.callbackProgress({totalModels:x,
totalTextures:F,loadedModels:x-v,loadedTextures:F-w},y);l.onLoadProgress();if(0===v&&0===w){for(var a=0;a<D.length;a++){var c=D[a],d=y.objects[c.targetName];d?c.object.target=d:(c.object.target=new THREE.Object3D,y.scene.add(c.object.target));c.object.target.userData.targetInverse=c.object}b(y)}}function m(a,b){b(a);if(void 0!==a.children)for(var c in a.children)m(a.children[c],b)}var l=this,n=THREE.Loader.prototype.extractUrlBase(c),s,r,q,p,u,t,v,w,x,F,y,D=[],E=a,J;for(J in this.geometryHandlers)a=
this.geometryHandlers[J].loaderClass,this.geometryHandlers[J].loaderObject=new a;for(J in this.hierarchyHandlers)a=this.hierarchyHandlers[J].loaderClass,this.hierarchyHandlers[J].loaderObject=new a;w=v=0;y={scene:new THREE.Scene,geometries:{},face_materials:{},materials:{},textures:{},objects:{},cameras:{},lights:{},fogs:{},empties:{},groups:{}};if(E.transform&&(J=E.transform.position,a=E.transform.rotation,c=E.transform.scale,J&&y.scene.position.fromArray(J),a&&y.scene.rotation.fromArray(a),c&&y.scene.scale.fromArray(c),
J||a||c))y.scene.updateMatrix(),y.scene.updateMatrixWorld();J=function(a){return function(){w-=a;k();l.onLoadComplete()}};for(var G in E.fogs)a=E.fogs[G],"linear"===a.type?p=new THREE.Fog(0,a.near,a.far):"exp2"===a.type&&(p=new THREE.FogExp2(0,a.density)),a=a.color,p.color.setRGB(a[0],a[1],a[2]),y.fogs[G]=p;for(var B in E.geometries)p=E.geometries[B],p.type in this.geometryHandlers&&(v+=1,l.onLoadStart());for(var M in E.objects)m(E.objects[M],function(a){a.type&&a.type in l.hierarchyHandlers&&(v+=
1,l.onLoadStart())});x=v;for(B in E.geometries)if(p=E.geometries[B],"cube"===p.type)s=new THREE.CubeGeometry(p.width,p.height,p.depth,p.widthSegments,p.heightSegments,p.depthSegments),s.name=B,y.geometries[B]=s;else if("plane"===p.type)s=new THREE.PlaneGeometry(p.width,p.height,p.widthSegments,p.heightSegments),s.name=B,y.geometries[B]=s;else if("sphere"===p.type)s=new THREE.SphereGeometry(p.radius,p.widthSegments,p.heightSegments),s.name=B,y.geometries[B]=s;else if("cylinder"===p.type)s=new THREE.CylinderGeometry(p.topRad,
p.botRad,p.height,p.radSegs,p.heightSegs),s.name=B,y.geometries[B]=s;else if("torus"===p.type)s=new THREE.TorusGeometry(p.radius,p.tube,p.segmentsR,p.segmentsT),s.name=B,y.geometries[B]=s;else if("icosahedron"===p.type)s=new THREE.IcosahedronGeometry(p.radius,p.subdivisions),s.name=B,y.geometries[B]=s;else if(p.type in this.geometryHandlers){M={};for(u in p)"type"!==u&&"url"!==u&&(M[u]=p[u]);this.geometryHandlers[p.type].loaderObject.load(d(p.url,E.urlBaseType),h(B),M)}else"embedded"===p.type&&(M=
E.embeds[p.id],M.metadata=E.metadata,M&&(M=this.geometryHandlers.ascii.loaderObject.parse(M,""),i(B)(M.geometry,M.materials)));for(var z in E.textures)if(B=E.textures[z],B.url instanceof Array){w+=B.url.length;for(u=0;u<B.url.length;u++)l.onLoadStart()}else w+=1,l.onLoadStart();F=w;for(z in E.textures){B=E.textures[z];void 0!==B.mapping&&void 0!==THREE[B.mapping]&&(B.mapping=new THREE[B.mapping]);if(B.url instanceof Array){M=B.url.length;p=[];for(u=0;u<M;u++)p[u]=d(B.url[u],E.urlBaseType);u=(u=/\.dds$/i.test(p[0]))?
THREE.ImageUtils.loadCompressedTextureCube(p,B.mapping,J(M)):THREE.ImageUtils.loadTextureCube(p,B.mapping,J(M))}else u=/\.dds$/i.test(B.url),M=d(B.url,E.urlBaseType),p=J(1),u=u?THREE.ImageUtils.loadCompressedTexture(M,B.mapping,p):THREE.ImageUtils.loadTexture(M,B.mapping,p),void 0!==THREE[B.minFilter]&&(u.minFilter=THREE[B.minFilter]),void 0!==THREE[B.magFilter]&&(u.magFilter=THREE[B.magFilter]),B.anisotropy&&(u.anisotropy=B.anisotropy),B.repeat&&(u.repeat.set(B.repeat[0],B.repeat[1]),1!==B.repeat[0]&&
(u.wrapS=THREE.RepeatWrapping),1!==B.repeat[1]&&(u.wrapT=THREE.RepeatWrapping)),B.offset&&u.offset.set(B.offset[0],B.offset[1]),B.wrap&&(M={repeat:THREE.RepeatWrapping,mirror:THREE.MirroredRepeatWrapping},void 0!==M[B.wrap[0]]&&(u.wrapS=M[B.wrap[0]]),void 0!==M[B.wrap[1]]&&(u.wrapT=M[B.wrap[1]]));y.textures[z]=u}var I,A;for(I in E.materials){z=E.materials[I];for(A in z.parameters)"envMap"===A||"map"===A||"lightMap"===A||"bumpMap"===A?z.parameters[A]=y.textures[z.parameters[A]]:"shading"===A?z.parameters[A]=
"flat"===z.parameters[A]?THREE.FlatShading:THREE.SmoothShading:"side"===A?z.parameters[A]="double"==z.parameters[A]?THREE.DoubleSide:"back"==z.parameters[A]?THREE.BackSide:THREE.FrontSide:"blending"===A?z.parameters[A]=z.parameters[A]in THREE?THREE[z.parameters[A]]:THREE.NormalBlending:"combine"===A?z.parameters[A]=z.parameters[A]in THREE?THREE[z.parameters[A]]:THREE.MultiplyOperation:"vertexColors"===A?"face"==z.parameters[A]?z.parameters[A]=THREE.FaceColors:z.parameters[A]&&(z.parameters[A]=THREE.VertexColors):
"wrapRGB"===A&&(J=z.parameters[A],z.parameters[A]=new THREE.Vector3(J[0],J[1],J[2]));void 0!==z.parameters.opacity&&1>z.parameters.opacity&&(z.parameters.transparent=!0);z.parameters.normalMap?(J=THREE.ShaderLib.normalmap,B=THREE.UniformsUtils.clone(J.uniforms),u=z.parameters.color,M=z.parameters.specular,p=z.parameters.ambient,G=z.parameters.shininess,B.tNormal.value=y.textures[z.parameters.normalMap],z.parameters.normalScale&&B.uNormalScale.value.set(z.parameters.normalScale[0],z.parameters.normalScale[1]),
z.parameters.map&&(B.tDiffuse.value=z.parameters.map,B.enableDiffuse.value=!0),z.parameters.envMap&&(B.tCube.value=z.parameters.envMap,B.enableReflection.value=!0,B.uReflectivity.value=z.parameters.reflectivity),z.parameters.lightMap&&(B.tAO.value=z.parameters.lightMap,B.enableAO.value=!0),z.parameters.specularMap&&(B.tSpecular.value=y.textures[z.parameters.specularMap],B.enableSpecular.value=!0),z.parameters.displacementMap&&(B.tDisplacement.value=y.textures[z.parameters.displacementMap],B.enableDisplacement.value=
!0,B.uDisplacementBias.value=z.parameters.displacementBias,B.uDisplacementScale.value=z.parameters.displacementScale),B.uDiffuseColor.value.setHex(u),B.uSpecularColor.value.setHex(M),B.uAmbientColor.value.setHex(p),B.uShininess.value=G,z.parameters.opacity&&(B.uOpacity.value=z.parameters.opacity),r=new THREE.ShaderMaterial({fragmentShader:J.fragmentShader,vertexShader:J.vertexShader,uniforms:B,lights:!0,fog:!0})):r=new THREE[z.type](z.parameters);r.name=I;y.materials[I]=r}for(I in E.materials)if(z=
E.materials[I],z.parameters.materials){A=[];for(u=0;u<z.parameters.materials.length;u++)A.push(y.materials[z.parameters.materials[u]]);y.materials[I].materials=A}e();y.cameras&&E.defaults.camera&&(y.currentCamera=y.cameras[E.defaults.camera]);y.fogs&&E.defaults.fog&&(y.scene.fog=y.fogs[E.defaults.fog]);l.callbackSync(y);k()}};THREE.TextureLoader=function(a){this.manager=void 0!==a?a:THREE.DefaultLoadingManager};THREE.TextureLoader.prototype={constructor:THREE.TextureLoader,load:function(a,b){var c=new THREE.ImageLoader(this.manager);c.setCrossOrigin(this.crossOrigin);c.load(a,function(a){a=new THREE.Texture(a);a.needsUpdate=!0;void 0!==b&&b(a)})},setCrossOrigin:function(a){this.crossOrigin=a}};THREE.Material=function(){this.id=THREE.MaterialIdCount++;this.uuid=THREE.Math.generateUUID();this.name="";this.side=THREE.FrontSide;this.opacity=1;this.transparent=!1;this.blending=THREE.NormalBlending;this.blendSrc=THREE.SrcAlphaFactor;this.blendDst=THREE.OneMinusSrcAlphaFactor;this.blendEquation=THREE.AddEquation;this.depthWrite=this.depthTest=!0;this.polygonOffset=!1;this.overdraw=this.alphaTest=this.polygonOffsetUnits=this.polygonOffsetFactor=0;this.needsUpdate=this.visible=!0};
n.scale.fromArray(i));n.visible=p.visible;n.castShadow=p.castShadow;n.receiveShadow=p.receiveShadow;a.add(n);y.objects[m]=n}}else if("AmbientLight"===p.type||"PointLight"===p.type||"DirectionalLight"===p.type||"SpotLight"===p.type||"HemisphereLight"===p.type||"AreaLight"===p.type){u=p.color;c=p.intensity;e=p.distance;h=p.position;i=p.rotation;switch(p.type){case "AmbientLight":t=new THREE.AmbientLight(u);break;case "PointLight":t=new THREE.PointLight(u,c,e);t.position.fromArray(h);break;case "DirectionalLight":t=
new THREE.DirectionalLight(u,c);t.position.fromArray(p.direction);break;case "SpotLight":t=new THREE.SpotLight(u,c,e,1);t.angle=p.angle;t.position.fromArray(h);t.target.set(h[0],h[1]-e,h[2]);t.target.applyEuler(new THREE.Euler(i[0],i[1],i[2],"XYZ"));break;case "HemisphereLight":t=new THREE.DirectionalLight(u,c,e);t.target.set(h[0],h[1]-e,h[2]);t.target.applyEuler(new THREE.Euler(i[0],i[1],i[2],"XYZ"));break;case "AreaLight":t=new THREE.AreaLight(u,c),t.position.fromArray(h),t.width=p.size,t.height=
p.size_y}a.add(t);t.name=m;y.lights[m]=t;y.objects[m]=t}else"PerspectiveCamera"===p.type||"OrthographicCamera"===p.type?(e=p.position,h=p.rotation,k=p.quaternion,"PerspectiveCamera"===p.type?q=new THREE.PerspectiveCamera(p.fov,p.aspect,p.near,p.far):"OrthographicCamera"===p.type&&(q=new THREE.OrthographicCamera(p.left,p.right,p.top,p.bottom,p.near,p.far)),q.name=m,q.position.fromArray(e),void 0!==k?q.quaternion.fromArray(k):void 0!==h&&q.rotation.fromArray(h),a.add(q),y.cameras[m]=q,y.objects[m]=
q):(e=p.position,h=p.rotation,i=p.scale,k=p.quaternion,n=new THREE.Object3D,n.name=m,n.position.fromArray(e),k?n.quaternion.fromArray(k):n.rotation.fromArray(h),n.scale.fromArray(i),n.visible=void 0!==p.visible?p.visible:!1,a.add(n),y.objects[m]=n,y.empties[m]=n);if(n){if(void 0!==p.userData)for(var w in p.userData)n.userData[w]=p.userData[w];if(void 0!==p.groups)for(u=0;u<p.groups.length;u++)c=p.groups[u],void 0===y.groups[c]&&(y.groups[c]=[]),y.groups[c].push(m)}}void 0!==n&&void 0!==p.children&&
f(n,p.children)}}function h(a){return function(b,c){b.name=a;y.geometries[a]=b;y.face_materials[a]=c;e();v-=1;l.onLoadComplete();k()}}function g(a,b,c,d){return function(f){var f=f.content?f.content:f.dae?f.scene:f,h=d.rotation,g=d.quaternion,i=d.scale;f.position.fromArray(d.position);g?f.quaternion.fromArray(g):f.rotation.fromArray(h);f.scale.fromArray(i);c&&f.traverse(function(a){a.material=c});var m=void 0!==d.visible?d.visible:!0;f.traverse(function(a){a.visible=m});b.add(f);f.name=a;y.objects[a]=
f;e();v-=1;l.onLoadComplete();k()}}function i(a){return function(b,c){b.name=a;y.geometries[a]=b;y.face_materials[a]=c}}function k(){l.callbackProgress({totalModels:x,totalTextures:F,loadedModels:x-v,loadedTextures:F-w},y);l.onLoadProgress();if(0===v&&0===w){for(var a=0;a<D.length;a++){var c=D[a],d=y.objects[c.targetName];d?c.object.target=d:(c.object.target=new THREE.Object3D,y.scene.add(c.object.target));c.object.target.userData.targetInverse=c.object}b(y)}}function m(a,b){b(a);if(void 0!==a.children)for(var c in a.children)m(a.children[c],
b)}var l=this,n=THREE.Loader.prototype.extractUrlBase(c),s,r,q,p,u,t,v,w,x,F,y,D=[],E=a,J;for(J in this.geometryHandlers)a=this.geometryHandlers[J].loaderClass,this.geometryHandlers[J].loaderObject=new a;for(J in this.hierarchyHandlers)a=this.hierarchyHandlers[J].loaderClass,this.hierarchyHandlers[J].loaderObject=new a;w=v=0;y={scene:new THREE.Scene,geometries:{},face_materials:{},materials:{},textures:{},objects:{},cameras:{},lights:{},fogs:{},empties:{},groups:{}};if(E.transform&&(J=E.transform.position,
a=E.transform.rotation,c=E.transform.scale,J&&y.scene.position.fromArray(J),a&&y.scene.rotation.fromArray(a),c&&y.scene.scale.fromArray(c),J||a||c))y.scene.updateMatrix(),y.scene.updateMatrixWorld();J=function(a){return function(){w-=a;k();l.onLoadComplete()}};for(var G in E.fogs)a=E.fogs[G],"linear"===a.type?p=new THREE.Fog(0,a.near,a.far):"exp2"===a.type&&(p=new THREE.FogExp2(0,a.density)),a=a.color,p.color.setRGB(a[0],a[1],a[2]),y.fogs[G]=p;for(var B in E.geometries)p=E.geometries[B],p.type in
this.geometryHandlers&&(v+=1,l.onLoadStart());for(var M in E.objects)m(E.objects[M],function(a){a.type&&a.type in l.hierarchyHandlers&&(v+=1,l.onLoadStart())});x=v;for(B in E.geometries)if(p=E.geometries[B],"cube"===p.type)s=new THREE.CubeGeometry(p.width,p.height,p.depth,p.widthSegments,p.heightSegments,p.depthSegments),s.name=B,y.geometries[B]=s;else if("plane"===p.type)s=new THREE.PlaneGeometry(p.width,p.height,p.widthSegments,p.heightSegments),s.name=B,y.geometries[B]=s;else if("sphere"===p.type)s=
new THREE.SphereGeometry(p.radius,p.widthSegments,p.heightSegments),s.name=B,y.geometries[B]=s;else if("cylinder"===p.type)s=new THREE.CylinderGeometry(p.topRad,p.botRad,p.height,p.radSegs,p.heightSegs),s.name=B,y.geometries[B]=s;else if("torus"===p.type)s=new THREE.TorusGeometry(p.radius,p.tube,p.segmentsR,p.segmentsT),s.name=B,y.geometries[B]=s;else if("icosahedron"===p.type)s=new THREE.IcosahedronGeometry(p.radius,p.subdivisions),s.name=B,y.geometries[B]=s;else if(p.type in this.geometryHandlers){M=
{};for(u in p)"type"!==u&&"url"!==u&&(M[u]=p[u]);this.geometryHandlers[p.type].loaderObject.load(d(p.url,E.urlBaseType),h(B),M)}else"embedded"===p.type&&(M=E.embeds[p.id],M.metadata=E.metadata,M&&(M=this.geometryHandlers.ascii.loaderObject.parse(M,""),i(B)(M.geometry,M.materials)));for(var z in E.textures)if(B=E.textures[z],B.url instanceof Array){w+=B.url.length;for(u=0;u<B.url.length;u++)l.onLoadStart()}else w+=1,l.onLoadStart();F=w;for(z in E.textures){B=E.textures[z];void 0!==B.mapping&&void 0!==
THREE[B.mapping]&&(B.mapping=new THREE[B.mapping]);if(B.url instanceof Array){M=B.url.length;p=[];for(u=0;u<M;u++)p[u]=d(B.url[u],E.urlBaseType);u=(u=/\.dds$/i.test(p[0]))?THREE.ImageUtils.loadCompressedTextureCube(p,B.mapping,J(M)):THREE.ImageUtils.loadTextureCube(p,B.mapping,J(M))}else u=/\.dds$/i.test(B.url),M=d(B.url,E.urlBaseType),p=J(1),u=u?THREE.ImageUtils.loadCompressedTexture(M,B.mapping,p):THREE.ImageUtils.loadTexture(M,B.mapping,p),void 0!==THREE[B.minFilter]&&(u.minFilter=THREE[B.minFilter]),
void 0!==THREE[B.magFilter]&&(u.magFilter=THREE[B.magFilter]),B.anisotropy&&(u.anisotropy=B.anisotropy),B.repeat&&(u.repeat.set(B.repeat[0],B.repeat[1]),1!==B.repeat[0]&&(u.wrapS=THREE.RepeatWrapping),1!==B.repeat[1]&&(u.wrapT=THREE.RepeatWrapping)),B.offset&&u.offset.set(B.offset[0],B.offset[1]),B.wrap&&(M={repeat:THREE.RepeatWrapping,mirror:THREE.MirroredRepeatWrapping},void 0!==M[B.wrap[0]]&&(u.wrapS=M[B.wrap[0]]),void 0!==M[B.wrap[1]]&&(u.wrapT=M[B.wrap[1]]));y.textures[z]=u}var I,A;for(I in E.materials){z=
E.materials[I];for(A in z.parameters)"envMap"===A||"map"===A||"lightMap"===A||"bumpMap"===A?z.parameters[A]=y.textures[z.parameters[A]]:"shading"===A?z.parameters[A]="flat"===z.parameters[A]?THREE.FlatShading:THREE.SmoothShading:"side"===A?z.parameters[A]="double"==z.parameters[A]?THREE.DoubleSide:"back"==z.parameters[A]?THREE.BackSide:THREE.FrontSide:"blending"===A?z.parameters[A]=z.parameters[A]in THREE?THREE[z.parameters[A]]:THREE.NormalBlending:"combine"===A?z.parameters[A]=z.parameters[A]in THREE?
THREE[z.parameters[A]]:THREE.MultiplyOperation:"vertexColors"===A?"face"==z.parameters[A]?z.parameters[A]=THREE.FaceColors:z.parameters[A]&&(z.parameters[A]=THREE.VertexColors):"wrapRGB"===A&&(J=z.parameters[A],z.parameters[A]=new THREE.Vector3(J[0],J[1],J[2]));void 0!==z.parameters.opacity&&1>z.parameters.opacity&&(z.parameters.transparent=!0);z.parameters.normalMap?(J=THREE.ShaderLib.normalmap,B=THREE.UniformsUtils.clone(J.uniforms),u=z.parameters.color,M=z.parameters.specular,p=z.parameters.ambient,
G=z.parameters.shininess,B.tNormal.value=y.textures[z.parameters.normalMap],z.parameters.normalScale&&B.uNormalScale.value.set(z.parameters.normalScale[0],z.parameters.normalScale[1]),z.parameters.map&&(B.tDiffuse.value=z.parameters.map,B.enableDiffuse.value=!0),z.parameters.envMap&&(B.tCube.value=z.parameters.envMap,B.enableReflection.value=!0,B.uReflectivity.value=z.parameters.reflectivity),z.parameters.lightMap&&(B.tAO.value=z.parameters.lightMap,B.enableAO.value=!0),z.parameters.specularMap&&
(B.tSpecular.value=y.textures[z.parameters.specularMap],B.enableSpecular.value=!0),z.parameters.displacementMap&&(B.tDisplacement.value=y.textures[z.parameters.displacementMap],B.enableDisplacement.value=!0,B.uDisplacementBias.value=z.parameters.displacementBias,B.uDisplacementScale.value=z.parameters.displacementScale),B.uDiffuseColor.value.setHex(u),B.uSpecularColor.value.setHex(M),B.uAmbientColor.value.setHex(p),B.uShininess.value=G,z.parameters.opacity&&(B.uOpacity.value=z.parameters.opacity),
r=new THREE.ShaderMaterial({fragmentShader:J.fragmentShader,vertexShader:J.vertexShader,uniforms:B,lights:!0,fog:!0})):r=new THREE[z.type](z.parameters);r.name=I;y.materials[I]=r}for(I in E.materials)if(z=E.materials[I],z.parameters.materials){A=[];for(u=0;u<z.parameters.materials.length;u++)A.push(y.materials[z.parameters.materials[u]]);y.materials[I].materials=A}e();y.cameras&&E.defaults.camera&&(y.currentCamera=y.cameras[E.defaults.camera]);y.fogs&&E.defaults.fog&&(y.scene.fog=y.fogs[E.defaults.fog]);
l.callbackSync(y);k()}};THREE.TextureLoader=function(a){this.manager=void 0!==a?a:THREE.DefaultLoadingManager};THREE.TextureLoader.prototype={constructor:THREE.TextureLoader,load:function(a,b){var c=new THREE.ImageLoader(this.manager);c.setCrossOrigin(this.crossOrigin);c.load(a,function(a){a=new THREE.Texture(a);a.needsUpdate=!0;void 0!==b&&b(a)})},setCrossOrigin:function(a){this.crossOrigin=a}};THREE.Material=function(){this.id=THREE.MaterialIdCount++;this.uuid=THREE.Math.generateUUID();this.name="";this.side=THREE.FrontSide;this.opacity=1;this.transparent=!1;this.blending=THREE.NormalBlending;this.blendSrc=THREE.SrcAlphaFactor;this.blendDst=THREE.OneMinusSrcAlphaFactor;this.blendEquation=THREE.AddEquation;this.depthWrite=this.depthTest=!0;this.polygonOffset=!1;this.overdraw=this.alphaTest=this.polygonOffsetUnits=this.polygonOffsetFactor=0;this.needsUpdate=this.visible=!0};
THREE.Material.prototype={constructor:THREE.Material,setValues:function(a){if(void 0!==a)for(var b in a){var c=a[b];if(void 0===c)console.warn("THREE.Material: '"+b+"' parameter is undefined.");else if(b in this){var d=this[b];d instanceof THREE.Color?d.set(c):d instanceof THREE.Vector3&&c instanceof THREE.Vector3?d.copy(c):this[b]="overdraw"==b?Number(c):c}}},clone:function(a){void 0===a&&(a=new THREE.Material);a.name=this.name;a.side=this.side;a.opacity=this.opacity;a.transparent=this.transparent;
a.blending=this.blending;a.blendSrc=this.blendSrc;a.blendDst=this.blendDst;a.blendEquation=this.blendEquation;a.depthTest=this.depthTest;a.depthWrite=this.depthWrite;a.polygonOffset=this.polygonOffset;a.polygonOffsetFactor=this.polygonOffsetFactor;a.polygonOffsetUnits=this.polygonOffsetUnits;a.alphaTest=this.alphaTest;a.overdraw=this.overdraw;a.visible=this.visible;return a},dispose:function(){this.dispatchEvent({type:"dispose"})}};THREE.EventDispatcher.prototype.apply(THREE.Material.prototype);
THREE.MaterialIdCount=0;THREE.LineBasicMaterial=function(a){THREE.Material.call(this);this.color=new THREE.Color(16777215);this.linewidth=1;this.linejoin=this.linecap="round";this.vertexColors=!1;this.fog=!0;this.setValues(a)};THREE.LineBasicMaterial.prototype=Object.create(THREE.Material.prototype);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册