浏览代码

Updated builds.

Mr.doob 6 年之前
父节点
当前提交
9b94ce1e15
共有 3 个文件被更改,包括 17 次插入5 次删除
  1. 6 0
      build/three.js
  2. 5 5
      build/three.min.js
  3. 6 0
      build/three.module.js

+ 6 - 0
build/three.js

@@ -24230,6 +24230,10 @@
 
 					groupOrder = object.renderOrder;
 
+				} else if ( object.isLOD ) {
+
+					if ( object.autoUpdate === true ) object.update( camera );
+
 				} else if ( object.isLight ) {
 
 					currentRenderState.pushLight( object );
@@ -26133,6 +26137,8 @@
 			}
 		} );
 
+		this.autoUpdate = true;
+
 	}
 
 	LOD.prototype = Object.assign( Object.create( Object3D.prototype ), {

+ 5 - 5
build/three.min.js

@@ -162,10 +162,10 @@ for(var f=0;f<d.length;f++){var g=d[f],h=e.getViewport(g),q=w.cameras[f];q.matri
 function(a){z=a};this.dispose=function(){};this.getStandingMatrix=function(){console.warn("THREE.WebXRManager: getStandingMatrix() is no longer needed.");return new L};this.getDevice=function(){console.warn("THREE.WebXRManager: getDevice() has been deprecated.")};this.setDevice=function(){console.warn("THREE.WebXRManager: setDevice() has been deprecated.")};this.setFrameOfReferenceType=function(){console.warn("THREE.WebXRManager: setFrameOfReferenceType() has been deprecated.")};this.submitFrame=
 function(){}}function re(a){var b;function c(){ma=new lg(N);Fa=new jg(N,ma,a);Fa.isWebGL2||(ma.get("WEBGL_depth_texture"),ma.get("OES_texture_float"),ma.get("OES_texture_half_float"),ma.get("OES_texture_half_float_linear"),ma.get("OES_standard_derivatives"),ma.get("OES_element_index_uint"),ma.get("ANGLE_instanced_arrays"));ma.get("OES_texture_float_linear");ka=new xf(N,ma,Fa);da=new nh(N,ma,ka,Fa);da.scissor(aa.copy(ia).multiplyScalar(ca));da.viewport(W.copy(fa).multiplyScalar(ca));ha=new og(N);Z=
 new fh;ba=new oh(N,ma,da,Z,Fa,ka,ha);va=new gg(N);xa=new mg(N,va,ha);ra=new rg(xa,ha);Aa=new qg(N);pa=new eh(X,ma,Fa);wa=new ih;ua=new mh;oa=new hg(X,da,ra,la);Ba=new ig(N,ma,ha,Fa);Da=new ng(N,ma,ha,Fa);ha.programs=pa.programs;X.context=N;X.capabilities=Fa;X.extensions=ma;X.properties=Z;X.renderLists=wa;X.state=da;X.info=ha}function d(a){a.preventDefault();console.log("THREE.WebGLRenderer: Context Lost.");O=!0}function e(){console.log("THREE.WebGLRenderer: Context Restored.");O=!1;c()}function f(a){a=
-a.target;a.removeEventListener("dispose",f);g(a);Z.remove(a)}function g(a){var b=Z.get(a).program;a.program=void 0;void 0!==b&&pa.releaseProgram(b)}function h(a,b){a.render(function(a){X.renderBufferImmediate(a,b)})}function k(a,b,c,d){if(!1!==a.visible){if(a.layers.test(b.layers))if(a.isGroup)c=a.renderOrder;else if(a.isLight)B.pushLight(a),a.castShadow&&B.pushShadow(a);else if(a.isSprite){if(!a.frustumCulled||ea.intersectsSprite(a)){d&&ob.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Mc);var e=
-ra.update(a),f=a.material;f.visible&&E.push(a,e,f,c,ob.z,null)}}else if(a.isImmediateRenderObject)d&&ob.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Mc),E.push(a,null,a.material,c,ob.z,null);else if(a.isMesh||a.isLine||a.isPoints)if(a.isSkinnedMesh&&a.skeleton.update(),!a.frustumCulled||ea.intersectsObject(a))if(d&&ob.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Mc),e=ra.update(a),f=a.material,Array.isArray(f))for(var g=e.groups,h=0,m=g.length;h<m;h++){var q=g[h],p=f[q.materialIndex];p&&
-p.visible&&E.push(a,e,p,c,ob.z,q)}else f.visible&&E.push(a,e,f,c,ob.z,null);a=a.children;h=0;for(m=a.length;h<m;h++)k(a[h],b,c,d)}}function m(a,b,c,d){for(var e=0,f=a.length;e<f;e++){var g=a[e],h=g.object,k=g.geometry,m=void 0===d?g.material:d;g=g.group;if(c.isArrayCamera){U=c;for(var p=c.cameras,l=0,u=p.length;l<u;l++){var r=p[l];h.layers.test(r.layers)&&(da.viewport(W.copy(r.viewport)),B.setupLights(r),q(h,b,r,k,m,g))}}else U=null,q(h,b,c,k,m,g)}}function q(a,c,d,e,f,g){a.onBeforeRender(X,c,d,e,
-f,g);B=ua.get(c,U||d);a.modelViewMatrix.multiplyMatrices(d.matrixWorldInverse,a.matrixWorld);a.normalMatrix.getNormalMatrix(a.modelViewMatrix);if(a.isImmediateRenderObject){da.setMaterial(f);var k=l(d,c.fog,f,a);P=b=null;S=!1;h(a,k)}else X.renderBufferDirect(d,c.fog,e,f,a,g);a.onAfterRender(X,c,d,e,f,g);B=ua.get(c,U||d)}function p(a,b,c){var d=Z.get(a),e=B.state.lights,h=e.state.version;c=pa.getParameters(a,e.state,B.state.shadowsArray,b,Ia.numPlanes,Ia.numIntersection,c);var k=pa.getProgramCode(a,
+a.target;a.removeEventListener("dispose",f);g(a);Z.remove(a)}function g(a){var b=Z.get(a).program;a.program=void 0;void 0!==b&&pa.releaseProgram(b)}function h(a,b){a.render(function(a){X.renderBufferImmediate(a,b)})}function k(a,b,c,d){if(!1!==a.visible){if(a.layers.test(b.layers))if(a.isGroup)c=a.renderOrder;else if(a.isLOD)!0===a.autoUpdate&&a.update(b);else if(a.isLight)B.pushLight(a),a.castShadow&&B.pushShadow(a);else if(a.isSprite){if(!a.frustumCulled||ea.intersectsSprite(a)){d&&ob.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Mc);
+var e=ra.update(a),f=a.material;f.visible&&E.push(a,e,f,c,ob.z,null)}}else if(a.isImmediateRenderObject)d&&ob.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Mc),E.push(a,null,a.material,c,ob.z,null);else if(a.isMesh||a.isLine||a.isPoints)if(a.isSkinnedMesh&&a.skeleton.update(),!a.frustumCulled||ea.intersectsObject(a))if(d&&ob.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Mc),e=ra.update(a),f=a.material,Array.isArray(f))for(var g=e.groups,h=0,m=g.length;h<m;h++){var q=g[h],p=f[q.materialIndex];
+p&&p.visible&&E.push(a,e,p,c,ob.z,q)}else f.visible&&E.push(a,e,f,c,ob.z,null);a=a.children;h=0;for(m=a.length;h<m;h++)k(a[h],b,c,d)}}function m(a,b,c,d){for(var e=0,f=a.length;e<f;e++){var g=a[e],h=g.object,k=g.geometry,m=void 0===d?g.material:d;g=g.group;if(c.isArrayCamera){U=c;for(var p=c.cameras,l=0,u=p.length;l<u;l++){var r=p[l];h.layers.test(r.layers)&&(da.viewport(W.copy(r.viewport)),B.setupLights(r),q(h,b,r,k,m,g))}}else U=null,q(h,b,c,k,m,g)}}function q(a,c,d,e,f,g){a.onBeforeRender(X,c,
+d,e,f,g);B=ua.get(c,U||d);a.modelViewMatrix.multiplyMatrices(d.matrixWorldInverse,a.matrixWorld);a.normalMatrix.getNormalMatrix(a.modelViewMatrix);if(a.isImmediateRenderObject){da.setMaterial(f);var k=l(d,c.fog,f,a);P=b=null;S=!1;h(a,k)}else X.renderBufferDirect(d,c.fog,e,f,a,g);a.onAfterRender(X,c,d,e,f,g);B=ua.get(c,U||d)}function p(a,b,c){var d=Z.get(a),e=B.state.lights,h=e.state.version;c=pa.getParameters(a,e.state,B.state.shadowsArray,b,Ia.numPlanes,Ia.numIntersection,c);var k=pa.getProgramCode(a,
 c),m=d.program,q=!0;if(void 0===m)a.addEventListener("dispose",f);else if(m.code!==k)g(a);else{if(d.lightsStateVersion!==h)d.lightsStateVersion=h;else if(void 0!==c.shaderID)return;q=!1}q&&(c.shaderID?(k=Xa[c.shaderID],d.shader={name:a.type,uniforms:zb(k.uniforms),vertexShader:k.vertexShader,fragmentShader:k.fragmentShader}):d.shader={name:a.type,uniforms:a.uniforms,vertexShader:a.vertexShader,fragmentShader:a.fragmentShader},a.onBeforeCompile(d.shader,X),k=pa.getProgramCode(a,c),m=pa.acquireProgram(a,
 d.shader,c,k),d.program=m,a.program=m);c=m.getAttributes();if(a.morphTargets)for(k=a.numSupportedMorphTargets=0;k<X.maxMorphTargets;k++)0<=c["morphTarget"+k]&&a.numSupportedMorphTargets++;if(a.morphNormals)for(k=a.numSupportedMorphNormals=0;k<X.maxMorphNormals;k++)0<=c["morphNormal"+k]&&a.numSupportedMorphNormals++;c=d.shader.uniforms;if(!a.isShaderMaterial&&!a.isRawShaderMaterial||!0===a.clipping)d.numClippingPlanes=Ia.numPlanes,d.numIntersection=Ia.numIntersection,c.clippingPlanes=Ia.uniform;d.fog=
 b;d.lightsStateVersion=h;a.lights&&(c.ambientLightColor.value=e.state.ambient,c.lightProbe.value=e.state.probe,c.directionalLights.value=e.state.directional,c.spotLights.value=e.state.spot,c.rectAreaLights.value=e.state.rectArea,c.pointLights.value=e.state.point,c.hemisphereLights.value=e.state.hemi,c.directionalShadowMap.value=e.state.directionalShadowMap,c.directionalShadowMatrix.value=e.state.directionalShadowMatrix,c.spotShadowMap.value=e.state.spotShadowMap,c.spotShadowMatrix.value=e.state.spotShadowMatrix,
@@ -210,7 +210,7 @@ ma.get("EXT_color_buffer_half_float"))?36053===N.checkFramebufferStatus(36160)?0
 this.copyFramebufferToTexture=function(a,b,c){var d=b.image.width,e=b.image.height,f=ka.convert(b.format);ba.setTexture2D(b,0);N.copyTexImage2D(3553,c||0,f,a.x,a.y,d,e,0)};this.copyTextureToTexture=function(a,b,c,d){var e=b.image.width,f=b.image.height,g=ka.convert(c.format),h=ka.convert(c.type);ba.setTexture2D(c,0);b.isDataTexture?N.texSubImage2D(3553,d||0,a.x,a.y,e,f,g,h,b.image.data):N.texSubImage2D(3553,d||0,a.x,a.y,g,h,b.image)};"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",
 {detail:this}))}function Ed(a,b){this.name="";this.color=new B(a);this.density=void 0!==b?b:2.5E-4}function Fd(a,b,c){this.name="";this.color=new B(a);this.near=void 0!==b?b:1;this.far=void 0!==c?c:1E3}function Cb(a,b){this.array=a;this.stride=b;this.count=void 0!==a?a.length/b:0;this.dynamic=!1;this.updateRange={offset:0,count:-1};this.version=0}function Oc(a,b,c,d){this.data=a;this.itemSize=b;this.offset=c;this.normalized=!0===d}function pb(a){I.call(this);this.type="SpriteMaterial";this.color=
 new B(16777215);this.map=null;this.rotation=0;this.sizeAttenuation=!0;this.lights=!1;this.transparent=!0;this.setValues(a)}function Pc(a){H.call(this);this.type="Sprite";if(void 0===$b){$b=new E;var b=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]);b=new Cb(b,5);$b.setIndex([0,1,2,0,2,3]);$b.addAttribute("position",new Oc(b,3,0,!1));$b.addAttribute("uv",new Oc(b,2,3,!1))}this.geometry=$b;this.material=void 0!==a?a:new pb;this.center=new C(.5,.5)}function Qc(){H.call(this);
-this.type="LOD";Object.defineProperties(this,{levels:{enumerable:!0,value:[]}})}function Rc(a,b){a&&a.isGeometry&&console.error("THREE.SkinnedMesh no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.");sa.call(this,a,b);this.type="SkinnedMesh";this.bindMode="attached";this.bindMatrix=new L;this.bindMatrixInverse=new L}function Gd(a,b){a=a||[];this.bones=a.slice(0);this.boneMatrices=new Float32Array(16*this.bones.length);if(void 0===b)this.calculateInverses();else if(this.bones.length===
+this.type="LOD";Object.defineProperties(this,{levels:{enumerable:!0,value:[]}});this.autoUpdate=!0}function Rc(a,b){a&&a.isGeometry&&console.error("THREE.SkinnedMesh no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.");sa.call(this,a,b);this.type="SkinnedMesh";this.bindMode="attached";this.bindMatrix=new L;this.bindMatrixInverse=new L}function Gd(a,b){a=a||[];this.bones=a.slice(0);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 boneInverses is the wrong length."),this.boneInverses=[],a=0,b=this.bones.length;a<b;a++)this.boneInverses.push(new L)}function se(){H.call(this);this.type="Bone"}function Q(a){I.call(this);this.type="LineBasicMaterial";this.color=new B(16777215);this.linewidth=1;this.linejoin=this.linecap="round";this.lights=!1;this.setValues(a)}function Z(a,b,c){1===c&&console.error("THREE.Line: parameter THREE.LinePieces no longer supported. Use THREE.LineSegments instead.");
 H.call(this);this.type="Line";this.geometry=void 0!==a?a:new E;this.material=void 0!==b?b:new Q({color:16777215*Math.random()})}function W(a,b){Z.call(this,a,b);this.type="LineSegments"}function Hd(a,b){Z.call(this,a,b);this.type="LineLoop"}function Ja(a){I.call(this);this.type="PointsMaterial";this.color=new B(16777215);this.map=null;this.size=1;this.sizeAttenuation=!0;this.lights=this.morphTargets=!1;this.setValues(a)}function ac(a,b){H.call(this);this.type="Points";this.geometry=void 0!==a?a:new E;
 this.material=void 0!==b?b:new Ja({color:16777215*Math.random()});this.updateMorphTargets()}function te(a,b,c,d,e,f,g,h,k){U.call(this,a,b,c,d,e,f,g,h,k);this.format=void 0!==g?g:1022;this.minFilter=void 0!==f?f:1006;this.magFilter=void 0!==e?e:1006;this.generateMipmaps=!1}function bc(a,b,c,d,e,f,g,h,k,m,q,p){U.call(this,null,f,g,h,k,m,d,e,q,p);this.image={width:b,height:c};this.mipmaps=a;this.generateMipmaps=this.flipY=!1}function Sc(a,b,c,d,e,f,g,h,k){U.call(this,a,b,c,d,e,f,g,h,k);this.needsUpdate=

+ 6 - 0
build/three.module.js

@@ -24224,6 +24224,10 @@ function WebGLRenderer( parameters ) {
 
 				groupOrder = object.renderOrder;
 
+			} else if ( object.isLOD ) {
+
+				if ( object.autoUpdate === true ) object.update( camera );
+
 			} else if ( object.isLight ) {
 
 				currentRenderState.pushLight( object );
@@ -26127,6 +26131,8 @@ function LOD() {
 		}
 	} );
 
+	this.autoUpdate = true;
+
 }
 
 LOD.prototype = Object.assign( Object.create( Object3D.prototype ), {