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

Updated builds.

上级 5ad66bf1
......@@ -23608,24 +23608,9 @@ THREE.WebGLObjects = function ( gl, properties, info ) {
}
function removeInstances( objlist, object ) {
for ( var o = objlist.length - 1; o >= 0; o -- ) {
if ( objlist[ o ].object === object ) {
objlist.splice( o, 1 );
}
}
}
//
this.objects = objects;
this.geometries = geometries;
this.init = function ( object ) {
......@@ -23670,7 +23655,7 @@ THREE.WebGLObjects = function ( gl, properties, info ) {
var geometry = geometries.get( object );
if ( object.geometry.dynamic === true ) {
if ( object.geometry instanceof THREE.Geometry ) {
geometry.updateFromObject( object );
......@@ -23790,7 +23775,7 @@ THREE.WebGLObjects = function ( gl, properties, info ) {
} else if ( data.updateRange.count === 0 ) {
console.error( 'THREE.WebGLRenderer.updateObject: using updateRange for THREE.DynamicBufferAttribute and marked as needsUpdate but count is 0, ensure you are using set methods or updating manually.' );
console.error( 'THREE.WebGLObjects.updateBuffer: using updateRange for THREE.DynamicBufferAttribute and marked as needsUpdate but count is 0, ensure you are using set methods or updating manually.' );
} else {
......
......@@ -589,10 +589,10 @@ break;case "WEBGL_compressed_texture_pvrtc":d=a.getExtension("WEBGL_compressed_t
THREE.WebGLGeometries=function(a,b){function c(e){e=e.target;var g=d[e.id],f;for(f in g.attributes){var h=g.attributes[f];void 0!==h.buffer&&(a.deleteBuffer(h.buffer),delete h.buffer)}e.removeEventListener("dispose",c);delete d[e.id];b.memory.geometries--}var d={};this.get=function(a){var g=a.geometry;if(void 0!==d[g.id])return d[g.id];g.addEventListener("dispose",c);d[g.id]=g instanceof THREE.BufferGeometry?g:(new THREE.BufferGeometry).setFromObject(a);b.memory.geometries++;return d[g.id]}};
THREE.WebGLObjects=function(a,b,c){function d(a){a.target.traverse(function(a){a.removeEventListener("remove",d);(a instanceof THREE.Mesh||a instanceof THREE.PointCloud||a instanceof THREE.Line)&&delete g[a.id];delete a._modelViewMatrix;delete a._normalMatrix;b.delete(a)})}function e(a,b){return b[0]-a[0]}var g={},f=new Float32Array(8),h=new THREE.WebGLGeometries(a,c);this.objects=g;this.geometries=h;this.init=function(a){var c=b.get(a);void 0===c.__webglInit&&(c.__webglInit=!0,a._modelViewMatrix=
new THREE.Matrix4,a._normalMatrix=new THREE.Matrix3,a.addEventListener("removed",d));void 0===c.__webglActive&&(c.__webglActive=!0,a instanceof THREE.Mesh||a instanceof THREE.Line||a instanceof THREE.PointCloud)&&(g[a.id]={id:a.id,object:a,z:0})};this.getAttributeBuffer=function(a){return a instanceof THREE.InterleavedBufferAttribute?b.get(a.data).__webglBuffer:b.get(a).__webglBuffer};this.update=function(c){for(var d=0,g=c.length;d<g;d++){var p=c[d].object;if(!1!==p.material.visible){var n=p,p=h.get(n);
!0===n.geometry.dynamic&&p.updateFromObject(n);if(void 0!==n.morphTargetInfluences){for(var q=[],s=n.morphTargetInfluences,r=0,u=s.length;r<u;r++)q.push([s[r],r]);q.sort(e);8<q.length&&(q.length=8);r=0;for(u=q.length;r<u;r++)f[r]=q[r][0],p.addAttribute("morphTarget"+r,p.morphAttributes[q[r][1]]);n=n.material;void 0!==n.program?(n=n.program.getUniforms(),null!==n.morphTargetInfluences&&a.uniform1fv(n.morphTargetInfluences,f)):console.warn("TOFIX: material.program is undefined")}p=p.attributes;n=void 0;
for(n in p)if(s=p[n],q="index"===n?a.ELEMENT_ARRAY_BUFFER:a.ARRAY_BUFFER,s=s instanceof THREE.InterleavedBufferAttribute?s.data:s,r=b.get(s),void 0===r.__webglBuffer){r.__webglBuffer=a.createBuffer();a.bindBuffer(q,r.__webglBuffer);u=a.STATIC_DRAW;if(s instanceof THREE.DynamicBufferAttribute||s instanceof THREE.InstancedBufferAttribute&&!0===s.dynamic||s instanceof THREE.InterleavedBuffer&&!0===s.dynamic)u=a.DYNAMIC_DRAW;a.bufferData(q,s.array,u);r.version=s.version}else r.version!==s.version&&(a.bindBuffer(q,
r.__webglBuffer),void 0===s.updateRange||-1===s.updateRange.count?a.bufferSubData(q,0,s.array):0===s.updateRange.count?console.error("THREE.WebGLRenderer.updateObject: using updateRange for THREE.DynamicBufferAttribute and marked as needsUpdate but count is 0, ensure you are using set methods or updating manually."):(a.bufferSubData(q,s.updateRange.offset*s.array.BYTES_PER_ELEMENT,s.array.subarray(s.updateRange.offset,s.updateRange.offset+s.updateRange.count)),s.updateRange.count=0),r.version=s.version)}}};
this.clear=function(){g={}}};
n.geometry instanceof THREE.Geometry&&p.updateFromObject(n);if(void 0!==n.morphTargetInfluences){for(var q=[],s=n.morphTargetInfluences,r=0,u=s.length;r<u;r++)q.push([s[r],r]);q.sort(e);8<q.length&&(q.length=8);r=0;for(u=q.length;r<u;r++)f[r]=q[r][0],p.addAttribute("morphTarget"+r,p.morphAttributes[q[r][1]]);n=n.material;void 0!==n.program?(n=n.program.getUniforms(),null!==n.morphTargetInfluences&&a.uniform1fv(n.morphTargetInfluences,f)):console.warn("TOFIX: material.program is undefined")}p=p.attributes;
n=void 0;for(n in p)if(s=p[n],q="index"===n?a.ELEMENT_ARRAY_BUFFER:a.ARRAY_BUFFER,s=s instanceof THREE.InterleavedBufferAttribute?s.data:s,r=b.get(s),void 0===r.__webglBuffer){r.__webglBuffer=a.createBuffer();a.bindBuffer(q,r.__webglBuffer);u=a.STATIC_DRAW;if(s instanceof THREE.DynamicBufferAttribute||s instanceof THREE.InstancedBufferAttribute&&!0===s.dynamic||s instanceof THREE.InterleavedBuffer&&!0===s.dynamic)u=a.DYNAMIC_DRAW;a.bufferData(q,s.array,u);r.version=s.version}else r.version!==s.version&&
(a.bindBuffer(q,r.__webglBuffer),void 0===s.updateRange||-1===s.updateRange.count?a.bufferSubData(q,0,s.array):0===s.updateRange.count?console.error("THREE.WebGLObjects.updateBuffer: using updateRange for THREE.DynamicBufferAttribute and marked as needsUpdate but count is 0, ensure you are using set methods or updating manually."):(a.bufferSubData(q,s.updateRange.offset*s.array.BYTES_PER_ELEMENT,s.array.subarray(s.updateRange.offset,s.updateRange.offset+s.updateRange.count)),s.updateRange.count=0),
r.version=s.version)}}};this.clear=function(){g={}}};
THREE.WebGLProgram=function(){function a(a){var b=[],c;for(c in a){var f=a[c];!1!==f&&b.push("#define "+c+" "+f)}return b.join("\n")}function b(a){return""!==a}var c=0;return function(d,e,g,f){var h=d.context,k=g.defines,l=g.__webglShader.vertexShader,m=g.__webglShader.fragmentShader,p=g.index0AttributeName,n="SHADOWMAP_TYPE_BASIC";f.shadowMapType===THREE.PCFShadowMap?n="SHADOWMAP_TYPE_PCF":f.shadowMapType===THREE.PCFSoftShadowMap&&(n="SHADOWMAP_TYPE_PCF_SOFT");var q="ENVMAP_TYPE_CUBE",s="ENVMAP_MODE_REFLECTION",
r="ENVMAP_BLENDING_MULTIPLY";if(f.envMap){switch(g.envMap.mapping){case THREE.CubeReflectionMapping:case THREE.CubeRefractionMapping:q="ENVMAP_TYPE_CUBE";break;case THREE.EquirectangularReflectionMapping:case THREE.EquirectangularRefractionMapping:q="ENVMAP_TYPE_EQUIREC";break;case THREE.SphericalReflectionMapping:q="ENVMAP_TYPE_SPHERE"}switch(g.envMap.mapping){case THREE.CubeRefractionMapping:case THREE.EquirectangularRefractionMapping:s="ENVMAP_MODE_REFRACTION"}switch(g.combine){case THREE.MultiplyOperation:r=
"ENVMAP_BLENDING_MULTIPLY";break;case THREE.MixOperation:r="ENVMAP_BLENDING_MIX";break;case THREE.AddOperation:r="ENVMAP_BLENDING_ADD"}}var u=0<d.gammaFactor?d.gammaFactor:1,x=a(k),v=h.createProgram();g instanceof THREE.RawShaderMaterial?d=k="":(k=["precision "+f.precision+" float;","precision "+f.precision+" int;","#define SHADER_NAME "+g.__webglShader.name,x,f.supportsVertexTextures?"#define VERTEX_TEXTURES":"",d.gammaInput?"#define GAMMA_INPUT":"",d.gammaOutput?"#define GAMMA_OUTPUT":"","#define GAMMA_FACTOR "+
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册