|
@@ -245,14 +245,14 @@ e.__webglLineCount,f.UNSIGNED_SHORT,0)):(a&&f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,
|
|
|
0,e.__webglParticleCount),C.info.render.calls++,C.info.render.points+=e.__webglParticleCount):g instanceof THREE.Ribbon&&(f.drawArrays(f.TRIANGLE_STRIP,0,e.__webglVertexCount),C.info.render.calls++)}};this.render=function(a,b,c,d){var e,g,j,l,n=a.__lights,p=a.fog;sa=-1;this.autoUpdateObjects&&this.initWebGLObjects(a);void 0===b.parent&&(console.warn("DEPRECATED: Camera hasn't been added to a Scene. Adding it..."),a.add(b));this.autoUpdateScene&&a.updateMatrixWorld();i(this.renderPluginsPre,a,b);C.info.render.calls=
|
|
|
0;C.info.render.vertices=0;C.info.render.faces=0;C.info.render.points=0;b.matrixWorldInverse.getInverse(b.matrixWorld);if(!b._viewMatrixArray)b._viewMatrixArray=new Float32Array(16);b.matrixWorldInverse.flattenToArray(b._viewMatrixArray);if(!b._projectionMatrixArray)b._projectionMatrixArray=new Float32Array(16);b.projectionMatrix.flattenToArray(b._projectionMatrixArray);Xa.multiply(b.projectionMatrix,b.matrixWorldInverse);Yb.setFromMatrix(Xa);this.setRenderTarget(c);(this.autoClear||d)&&this.clear(this.autoClearColor,
|
|
|
this.autoClearDepth,this.autoClearStencil);l=a.__webglObjects;for(d=0,e=l.length;d<e;d++)if(g=l[d],j=g.object,g.render=!1,j.visible&&(!(j instanceof THREE.Mesh||j instanceof THREE.ParticleSystem)||!j.frustumCulled||Yb.contains(j))){j.matrixWorld.flattenToArray(j._objectMatrixArray);s(j,b);var o=g,q=o.object,u=o.buffer,w=void 0,w=w=void 0,w=q.material;if(w instanceof THREE.MeshFaceMaterial){if(w=u.materialIndex,0<=w)w=q.geometry.materials[w],w.transparent?(o.transparent=w,o.opaque=null):(o.opaque=
|
|
|
-w,o.transparent=null)}else if(w)w.transparent?(o.transparent=w,o.opaque=null):(o.opaque=w,o.transparent=null);g.render=!0;if(this.sortObjects)j.renderDepth?g.z=j.renderDepth:(Na.copy(j.position),Xa.multiplyVector3(Na),g.z=Na.z)}this.sortObjects&&l.sort(h);l=a.__webglObjectsImmediate;for(d=0,e=l.length;d<e;d++)if(g=l[d],j=g.object,j.visible)j.matrixAutoUpdate&&j.matrixWorld.flattenToArray(j._objectMatrixArray),s(j,b),j=g.object.material,j.transparent?(g.transparent=j,g.opaque=null):(g.opaque=j,g.transparent=
|
|
|
-null);a.overrideMaterial?(this.setBlending(a.overrideMaterial.blending),this.setDepthTest(a.overrideMaterial.depthTest),this.setDepthWrite(a.overrideMaterial.depthWrite),y(a.overrideMaterial.polygonOffset,a.overrideMaterial.polygonOffsetFactor,a.overrideMaterial.polygonOffsetUnits),m(a.__webglObjects,!1,"",b,n,p,!0,a.overrideMaterial),k(a.__webglObjectsImmediate,"",b,n,p,!1,a.overrideMaterial)):(this.setBlending(THREE.NormalBlending),m(a.__webglObjects,!0,"opaque",b,n,p,!1),k(a.__webglObjectsImmediate,
|
|
|
-"opaque",b,n,p,!1),m(a.__webglObjects,!1,"transparent",b,n,p,!0),k(a.__webglObjectsImmediate,"transparent",b,n,p,!0));i(this.renderPluginsPost,a,b);c&&c.generateMipmaps&&c.minFilter!==THREE.NearestFilter&&c.minFilter!==THREE.LinearFilter&&(c instanceof THREE.WebGLRenderTargetCube?(f.bindTexture(f.TEXTURE_CUBE_MAP,c.__webglTexture),f.generateMipmap(f.TEXTURE_CUBE_MAP),f.bindTexture(f.TEXTURE_CUBE_MAP,null)):(f.bindTexture(f.TEXTURE_2D,c.__webglTexture),f.generateMipmap(f.TEXTURE_2D),f.bindTexture(f.TEXTURE_2D,
|
|
|
-null)));this.setDepthTest(!0);this.setDepthWrite(!0)};this.renderImmediateObject=function(a,b,c,d,e){var g=p(a,b,c,d,e);J=-1;C.setObjectFaces(e);e.immediateRenderCallback?e.immediateRenderCallback(g,f,Yb):e.render(function(a){C.renderBufferImmediate(a,g,d.shading)})};this.initWebGLObjects=function(a){if(!a.__webglObjects)a.__webglObjects=[],a.__webglObjectsImmediate=[],a.__webglSprites=[],a.__webglFlares=[];for(;a.__objectsAdded.length;){var h=a.__objectsAdded[0],i=a,m=void 0,k=void 0,p=void 0;if(!h.__webglInit)if(h.__webglInit=
|
|
|
-!0,h._modelViewMatrix=new THREE.Matrix4,h._normalMatrixArray=new Float32Array(9),h._modelViewMatrixArray=new Float32Array(16),h._objectMatrixArray=new Float32Array(16),h.matrixWorld.flattenToArray(h._objectMatrixArray),h instanceof THREE.Mesh){if(k=h.geometry,k instanceof THREE.Geometry){if(void 0===k.geometryGroups){var s=k,u=void 0,w=void 0,y=void 0,A=void 0,I=void 0,D=void 0,H=void 0,J={},L=s.morphTargets.length,N=s.morphNormals.length;s.geometryGroups={};for(u=0,w=s.faces.length;u<w;u++)y=s.faces[u],
|
|
|
-A=y.materialIndex,D=void 0!==A?A:-1,void 0===J[D]&&(J[D]={hash:D,counter:0}),H=J[D].hash+"_"+J[D].counter,void 0===s.geometryGroups[H]&&(s.geometryGroups[H]={faces3:[],faces4:[],materialIndex:A,vertices:0,numMorphTargets:L,numMorphNormals:N}),I=y instanceof THREE.Face3?3:4,65535<s.geometryGroups[H].vertices+I&&(J[D].counter+=1,H=J[D].hash+"_"+J[D].counter,void 0===s.geometryGroups[H]&&(s.geometryGroups[H]={faces3:[],faces4:[],materialIndex:A,vertices:0,numMorphTargets:L,numMorphNormals:N})),y instanceof
|
|
|
-THREE.Face3?s.geometryGroups[H].faces3.push(u):s.geometryGroups[H].faces4.push(u),s.geometryGroups[H].vertices+=I;s.geometryGroupsList=[];var M=void 0;for(M in s.geometryGroups)s.geometryGroups[M].id=ta++,s.geometryGroupsList.push(s.geometryGroups[M])}for(m in k.geometryGroups)if(p=k.geometryGroups[m],!p.__webglVertexBuffer){var K=p;K.__webglVertexBuffer=f.createBuffer();K.__webglNormalBuffer=f.createBuffer();K.__webglTangentBuffer=f.createBuffer();K.__webglColorBuffer=f.createBuffer();K.__webglUVBuffer=
|
|
|
-f.createBuffer();K.__webglUV2Buffer=f.createBuffer();K.__webglSkinVertexABuffer=f.createBuffer();K.__webglSkinVertexBBuffer=f.createBuffer();K.__webglSkinIndicesBuffer=f.createBuffer();K.__webglSkinWeightsBuffer=f.createBuffer();K.__webglFaceBuffer=f.createBuffer();K.__webglLineBuffer=f.createBuffer();var T=void 0,X=void 0;if(K.numMorphTargets){K.__webglMorphTargetsBuffers=[];for(T=0,X=K.numMorphTargets;T<X;T++)K.__webglMorphTargetsBuffers.push(f.createBuffer())}if(K.numMorphNormals){K.__webglMorphNormalsBuffers=
|
|
|
+w,o.transparent=null)}else if(w)w.transparent?(o.transparent=w,o.opaque=null):(o.opaque=w,o.transparent=null);g.render=!0;if(this.sortObjects)j.renderDepth?g.z=j.renderDepth:(Na.copy(j.matrixWorld.getPosition()),Xa.multiplyVector3(Na),g.z=Na.z)}this.sortObjects&&l.sort(h);l=a.__webglObjectsImmediate;for(d=0,e=l.length;d<e;d++)if(g=l[d],j=g.object,j.visible)j.matrixAutoUpdate&&j.matrixWorld.flattenToArray(j._objectMatrixArray),s(j,b),j=g.object.material,j.transparent?(g.transparent=j,g.opaque=null):
|
|
|
+(g.opaque=j,g.transparent=null);a.overrideMaterial?(this.setBlending(a.overrideMaterial.blending),this.setDepthTest(a.overrideMaterial.depthTest),this.setDepthWrite(a.overrideMaterial.depthWrite),y(a.overrideMaterial.polygonOffset,a.overrideMaterial.polygonOffsetFactor,a.overrideMaterial.polygonOffsetUnits),m(a.__webglObjects,!1,"",b,n,p,!0,a.overrideMaterial),k(a.__webglObjectsImmediate,"",b,n,p,!1,a.overrideMaterial)):(this.setBlending(THREE.NormalBlending),m(a.__webglObjects,!0,"opaque",b,n,p,
|
|
|
+!1),k(a.__webglObjectsImmediate,"opaque",b,n,p,!1),m(a.__webglObjects,!1,"transparent",b,n,p,!0),k(a.__webglObjectsImmediate,"transparent",b,n,p,!0));i(this.renderPluginsPost,a,b);c&&c.generateMipmaps&&c.minFilter!==THREE.NearestFilter&&c.minFilter!==THREE.LinearFilter&&(c instanceof THREE.WebGLRenderTargetCube?(f.bindTexture(f.TEXTURE_CUBE_MAP,c.__webglTexture),f.generateMipmap(f.TEXTURE_CUBE_MAP),f.bindTexture(f.TEXTURE_CUBE_MAP,null)):(f.bindTexture(f.TEXTURE_2D,c.__webglTexture),f.generateMipmap(f.TEXTURE_2D),
|
|
|
+f.bindTexture(f.TEXTURE_2D,null)));this.setDepthTest(!0);this.setDepthWrite(!0)};this.renderImmediateObject=function(a,b,c,d,e){var g=p(a,b,c,d,e);J=-1;C.setObjectFaces(e);e.immediateRenderCallback?e.immediateRenderCallback(g,f,Yb):e.render(function(a){C.renderBufferImmediate(a,g,d.shading)})};this.initWebGLObjects=function(a){if(!a.__webglObjects)a.__webglObjects=[],a.__webglObjectsImmediate=[],a.__webglSprites=[],a.__webglFlares=[];for(;a.__objectsAdded.length;){var h=a.__objectsAdded[0],i=a,m=
|
|
|
+void 0,k=void 0,p=void 0;if(!h.__webglInit)if(h.__webglInit=!0,h._modelViewMatrix=new THREE.Matrix4,h._normalMatrixArray=new Float32Array(9),h._modelViewMatrixArray=new Float32Array(16),h._objectMatrixArray=new Float32Array(16),h.matrixWorld.flattenToArray(h._objectMatrixArray),h instanceof THREE.Mesh){if(k=h.geometry,k instanceof THREE.Geometry){if(void 0===k.geometryGroups){var s=k,u=void 0,w=void 0,y=void 0,A=void 0,I=void 0,D=void 0,H=void 0,J={},L=s.morphTargets.length,N=s.morphNormals.length;
|
|
|
+s.geometryGroups={};for(u=0,w=s.faces.length;u<w;u++)y=s.faces[u],A=y.materialIndex,D=void 0!==A?A:-1,void 0===J[D]&&(J[D]={hash:D,counter:0}),H=J[D].hash+"_"+J[D].counter,void 0===s.geometryGroups[H]&&(s.geometryGroups[H]={faces3:[],faces4:[],materialIndex:A,vertices:0,numMorphTargets:L,numMorphNormals:N}),I=y instanceof THREE.Face3?3:4,65535<s.geometryGroups[H].vertices+I&&(J[D].counter+=1,H=J[D].hash+"_"+J[D].counter,void 0===s.geometryGroups[H]&&(s.geometryGroups[H]={faces3:[],faces4:[],materialIndex:A,
|
|
|
+vertices:0,numMorphTargets:L,numMorphNormals:N})),y instanceof THREE.Face3?s.geometryGroups[H].faces3.push(u):s.geometryGroups[H].faces4.push(u),s.geometryGroups[H].vertices+=I;s.geometryGroupsList=[];var M=void 0;for(M in s.geometryGroups)s.geometryGroups[M].id=ta++,s.geometryGroupsList.push(s.geometryGroups[M])}for(m in k.geometryGroups)if(p=k.geometryGroups[m],!p.__webglVertexBuffer){var K=p;K.__webglVertexBuffer=f.createBuffer();K.__webglNormalBuffer=f.createBuffer();K.__webglTangentBuffer=f.createBuffer();
|
|
|
+K.__webglColorBuffer=f.createBuffer();K.__webglUVBuffer=f.createBuffer();K.__webglUV2Buffer=f.createBuffer();K.__webglSkinVertexABuffer=f.createBuffer();K.__webglSkinVertexBBuffer=f.createBuffer();K.__webglSkinIndicesBuffer=f.createBuffer();K.__webglSkinWeightsBuffer=f.createBuffer();K.__webglFaceBuffer=f.createBuffer();K.__webglLineBuffer=f.createBuffer();var T=void 0,X=void 0;if(K.numMorphTargets){K.__webglMorphTargetsBuffers=[];for(T=0,X=K.numMorphTargets;T<X;T++)K.__webglMorphTargetsBuffers.push(f.createBuffer())}if(K.numMorphNormals){K.__webglMorphNormalsBuffers=
|
|
|
[];for(T=0,X=K.numMorphNormals;T<X;T++)K.__webglMorphNormalsBuffers.push(f.createBuffer())}C.info.memory.geometries++;var ca=p,$=h,aa=$.geometry,ja=ca.faces3,ka=ca.faces4,S=3*ja.length+4*ka.length,sa=1*ja.length+2*ka.length,xa=3*ja.length+4*ka.length,oa=c($,ca),Aa=e(oa),Ba=d(oa),Ga=oa.vertexColors?oa.vertexColors:!1;ca.__vertexArray=new Float32Array(3*S);if(Ba)ca.__normalArray=new Float32Array(3*S);if(aa.hasTangents)ca.__tangentArray=new Float32Array(4*S);if(Ga)ca.__colorArray=new Float32Array(3*
|
|
|
S);if(Aa){if(0<aa.faceUvs.length||0<aa.faceVertexUvs.length)ca.__uvArray=new Float32Array(2*S);if(1<aa.faceUvs.length||1<aa.faceVertexUvs.length)ca.__uv2Array=new Float32Array(2*S)}if($.geometry.skinWeights.length&&$.geometry.skinIndices.length)ca.__skinVertexAArray=new Float32Array(4*S),ca.__skinVertexBArray=new Float32Array(4*S),ca.__skinIndexArray=new Float32Array(4*S),ca.__skinWeightArray=new Float32Array(4*S);ca.__faceArray=new Uint16Array(3*sa);ca.__lineArray=new Uint16Array(2*xa);var Ha=void 0,
|
|
|
Ma=void 0;if(ca.numMorphTargets){ca.__morphTargetsArrays=[];for(Ha=0,Ma=ca.numMorphTargets;Ha<Ma;Ha++)ca.__morphTargetsArrays.push(new Float32Array(3*S))}if(ca.numMorphNormals){ca.__morphNormalsArrays=[];for(Ha=0,Ma=ca.numMorphNormals;Ha<Ma;Ha++)ca.__morphNormalsArrays.push(new Float32Array(3*S))}ca.__webglFaceCount=3*sa;ca.__webglLineCount=2*xa;if(oa.attributes){if(void 0===ca.__webglCustomAttributesList)ca.__webglCustomAttributesList=[];var Va=void 0;for(Va in oa.attributes){var Sa=oa.attributes[Va],
|