|
@@ -243,7 +243,7 @@ i[u];m=u*3;w[m]=color.r;w[m+1]=color.g;w[m+2]=color.b}c.bindBuffer(c.ARRAY_BUFFE
|
|
|
u,z,D,n={},y=f.morphTargets!==undefined?f.morphTargets.length:0;f.geometryGroups={};m=0;for(x=f.faces.length;m<x;m++){w=f.faces[m];u=w.materials;z=s(u);n[z]==undefined&&(n[z]={hash:z,counter:0});D=n[z].hash+"_"+n[z].counter;f.geometryGroups[D]==undefined&&(f.geometryGroups[D]={faces:[],materials:u,vertices:0,numMorphTargets:y});w=w instanceof THREE.Face3?3:4;if(f.geometryGroups[D].vertices+w>65535){n[z].counter+=1;D=n[z].hash+"_"+n[z].counter;f.geometryGroups[D]==undefined&&(f.geometryGroups[D]={faces:[],
|
|
|
materials:u,vertices:0,numMorphTargets:y})}f.geometryGroups[D].faces.push(m);f.geometryGroups[D].vertices+=w}}function W(f,s,k){f.push({buffer:s,object:k,opaque:{list:[],count:0},transparent:{list:[],count:0}})}function Z(f){if(f!=ja){switch(f){case THREE.AdditiveBlending:c.blendEquation(c.FUNC_ADD);c.blendFunc(c.SRC_ALPHA,c.ONE);break;case THREE.SubtractiveBlending:c.blendEquation(c.FUNC_ADD);c.blendFunc(c.ZERO,c.ONE_MINUS_SRC_COLOR);break;case THREE.MultiplyBlending:c.blendEquation(c.FUNC_ADD);
|
|
|
c.blendFunc(c.ZERO,c.SRC_COLOR);break;default:c.blendEquationSeparate(c.FUNC_ADD,c.FUNC_ADD);c.blendFuncSeparate(c.SRC_ALPHA,c.ONE_MINUS_SRC_ALPHA,c.ONE,c.ONE_MINUS_SRC_ALPHA)}ja=f}}function X(f,s,k){if((k.width&k.width-1)==0&&(k.height&k.height-1)==0){c.texParameteri(f,c.TEXTURE_WRAP_S,ha(s.wrapS));c.texParameteri(f,c.TEXTURE_WRAP_T,ha(s.wrapT));c.texParameteri(f,c.TEXTURE_MAG_FILTER,ha(s.magFilter));c.texParameteri(f,c.TEXTURE_MIN_FILTER,ha(s.minFilter));c.generateMipmap(f)}else{c.texParameteri(f,
|
|
|
-c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE);c.texParameteri(f,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE);c.texParameteri(f,c.TEXTURE_MAG_FILTER,Fa(s.magFilter));c.texParameteri(f,c.TEXTURE_MIN_FILTER,Fa(s.minFilter))}}function M(f,s){if(f.needsUpdate){if(f.__webglInit){c.bindTexture(c.TEXTURE_2D,f.__webglTexture);c.texSubImage2D(c.TEXTURE_2D,0,0,0,c.RGBA,c.UNSIGNED_BYTE,f.image)}else{f.__webglTexture=c.createTexture();c.bindTexture(c.TEXTURE_2D,f.__webglTexture);c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,
|
|
|
+c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE);c.texParameteri(f,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE);c.texParameteri(f,c.TEXTURE_MAG_FILTER,Fa(s.magFilter));c.texParameteri(f,c.TEXTURE_MIN_FILTER,Fa(s.minFilter))}}function M(f,s){if(f.needsUpdate){if(f.__webglInit){c.bindTexture(c.TEXTURE_2D,f.__webglTexture);c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,f.image)}else{f.__webglTexture=c.createTexture();c.bindTexture(c.TEXTURE_2D,f.__webglTexture);c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,
|
|
|
f.image);f.__webglInit=!0}X(c.TEXTURE_2D,f,f.image);c.bindTexture(c.TEXTURE_2D,null);f.needsUpdate=!1}c.activeTexture(c.TEXTURE0+s);c.bindTexture(c.TEXTURE_2D,f.__webglTexture)}function Ia(f){if(f&&!f.__webglFramebuffer){if(f.depthBuffer===undefined)f.depthBuffer=!0;if(f.stencilBuffer===undefined)f.stencilBuffer=!0;f.__webglFramebuffer=c.createFramebuffer();f.__webglRenderbuffer=c.createRenderbuffer();f.__webglTexture=c.createTexture();c.bindTexture(c.TEXTURE_2D,f.__webglTexture);c.texParameteri(c.TEXTURE_2D,
|
|
|
c.TEXTURE_WRAP_S,ha(f.wrapS));c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,ha(f.wrapT));c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MAG_FILTER,ha(f.magFilter));c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,ha(f.minFilter));c.texImage2D(c.TEXTURE_2D,0,ha(f.format),f.width,f.height,0,ha(f.format),ha(f.type),null);c.bindRenderbuffer(c.RENDERBUFFER,f.__webglRenderbuffer);c.bindFramebuffer(c.FRAMEBUFFER,f.__webglFramebuffer);c.framebufferTexture2D(c.FRAMEBUFFER,c.COLOR_ATTACHMENT0,c.TEXTURE_2D,f.__webglTexture,
|
|
|
0);if(f.depthBuffer&&!f.stencilBuffer){c.renderbufferStorage(c.RENDERBUFFER,c.DEPTH_COMPONENT16,f.width,f.height);c.framebufferRenderbuffer(c.FRAMEBUFFER,c.DEPTH_ATTACHMENT,c.RENDERBUFFER,f.__webglRenderbuffer)}else if(f.depthBuffer&&f.stencilBuffer){c.renderbufferStorage(c.RENDERBUFFER,c.DEPTH_STENCIL,f.width,f.height);c.framebufferRenderbuffer(c.FRAMEBUFFER,c.DEPTH_STENCIL_ATTACHMENT,c.RENDERBUFFER,f.__webglRenderbuffer)}else c.renderbufferStorage(c.RENDERBUFFER,c.RGBA4,f.width,f.height);c.bindTexture(c.TEXTURE_2D,
|
|
@@ -280,7 +280,7 @@ f.numSupportedMorphTargets++}if(y.morphTarget6>=0){c.enableVertexAttribArray(y.m
|
|
|
s.update(undefined,!0);f.update(undefined,!1,s);s.matrixWorldInverse.flattenToArray(Ya);s.projectionMatrix.flattenToArray(Ta);Pa.multiply(s.projectionMatrix,s.matrixWorldInverse);q(Pa);this.initWebGLObjects(f);Ia(k);(this.autoClear||i)&&this.clear();z=f.__webglObjects.length;for(i=0;i<z;i++){m=f.__webglObjects[i];n=m.object;if(n.visible)if(!(n instanceof THREE.Mesh)||r(n)){n.matrixWorld.flattenToArray(n._objectMatrixArray);P(n,s);G(m);m.render=!0;if(this.sortObjects){Ua.copy(n.position);Pa.multiplyVector3(Ua);
|
|
|
m.z=Ua.z}}else m.render=!1;else m.render=!1}this.sortObjects&&f.__webglObjects.sort(H);D=f.__webglObjectsImmediate.length;for(i=0;i<D;i++){m=f.__webglObjectsImmediate[i];n=m.object;if(n.visible){n.matrixAutoUpdate&&n.matrixWorld.flattenToArray(n._objectMatrixArray);P(n,s);E(m)}}Z(THREE.NormalBlending);for(i=0;i<z;i++){m=f.__webglObjects[i];if(m.render){n=m.object;y=m.buffer;w=m.opaque;p(n);for(m=0;m<w.count;m++){u=w.list[m];o(u.depthTest);g(s,B,K,u,y,n)}}}for(i=0;i<D;i++){m=f.__webglObjectsImmediate[i];
|
|
|
n=m.object;if(n.visible){w=m.opaque;p(n);for(m=0;m<w.count;m++){u=w.list[m];o(u.depthTest);x=e(s,B,K,u,n);n.render(function(J){h(J,x,u.shading)})}}}for(i=0;i<z;i++){m=f.__webglObjects[i];if(m.render){n=m.object;y=m.buffer;w=m.transparent;p(n);for(m=0;m<w.count;m++){u=w.list[m];Z(u.blending);o(u.depthTest);g(s,B,K,u,y,n)}}}for(i=0;i<D;i++){m=f.__webglObjectsImmediate[i];n=m.object;if(n.visible){w=m.transparent;p(n);for(m=0;m<w.count;m++){u=w.list[m];Z(u.blending);o(u.depthTest);x=e(s,B,K,u,n);n.render(function(J){h(J,
|
|
|
-x,u.shading)})}}}f.__webglSprites.length&&F(f,s);stencil&&f.__webglShadowVolumes.length&&f.lights.length&&C(f);f.__webglLensFlares.length&&O(f,s);if(k&&k.minFilter!==THREE.NearestFilter&&k.minFilter!==THREE.LinearFilter){c.bindTexture(c.TEXTURE_2D,k.__webglTexture);c.generateMipmap(c.TEXTURE_2D);c.bindTexture(c.TEXTURE_2D,null)}};this.initWebGLObjects=function(f){if(!f.__webglObjects){f.__webglObjects=[];f.__webglObjectsImmediate=[];f.__webglShadowVolumes=[];f.__webglLensFlares=[];f.__webglSprites=
|
|
|
+x,u.shading)})}}}f.__webglSprites.length&&F(f,s);stencil&&f.__webglShadowVolumes.length&&f.lights.length&&C(f);f.__webglLensFlares.length&&O(f,s);if(k&&k.minFilter!==THREE.NearestFilter&&k.minFilter!==THREE.LinearFilter){c.bindTexture(c.TEXTURE_2D,k.__webglTexture);c.generateMipmap(c.TEXTURE_2D);c.bindTexture(c.TEXTURE_2D,null)}c.finish()};this.initWebGLObjects=function(f){if(!f.__webglObjects){f.__webglObjects=[];f.__webglObjectsImmediate=[];f.__webglShadowVolumes=[];f.__webglLensFlares=[];f.__webglSprites=
|
|
|
[]}for(;f.__objectsAdded.length;){var s=f.__objectsAdded[0],k=f,i=void 0,m=void 0,x=void 0;if(s._modelViewMatrix==undefined){s._modelViewMatrix=new THREE.Matrix4;s._normalMatrixArray=new Float32Array(9);s._modelViewMatrixArray=new Float32Array(16);s._objectMatrixArray=new Float32Array(16);s.matrixWorld.flattenToArray(s._objectMatrixArray)}if(s instanceof THREE.Mesh){m=s.geometry;m.geometryGroups==undefined&&ea(m);for(i in m.geometryGroups){x=m.geometryGroups[i];if(!x.__webglVertexBuffer){var w=x;
|
|
|
w.__webglVertexBuffer=c.createBuffer();w.__webglNormalBuffer=c.createBuffer();w.__webglTangentBuffer=c.createBuffer();w.__webglColorBuffer=c.createBuffer();w.__webglUVBuffer=c.createBuffer();w.__webglUV2Buffer=c.createBuffer();w.__webglSkinVertexABuffer=c.createBuffer();w.__webglSkinVertexBBuffer=c.createBuffer();w.__webglSkinIndicesBuffer=c.createBuffer();w.__webglSkinWeightsBuffer=c.createBuffer();w.__webglFaceBuffer=c.createBuffer();w.__webglLineBuffer=c.createBuffer();if(w.numMorphTargets){var u=
|
|
|
void 0,z=void 0;w.__webglMorphTargetsBuffers=[];u=0;for(z=w.numMorphTargets;u<z;u++)w.__webglMorphTargetsBuffers.push(c.createBuffer())}w=x;u=s;var D=void 0,n=void 0,y=void 0;y=void 0;var B=void 0,K=void 0,J=void 0,Y=J=z=0;n=void 0;y=void 0;var Q=void 0;D=void 0;n=void 0;B=u.geometry;Q=B.faces;K=w.faces;D=0;for(n=K.length;D<n;D++){y=K[D];y=Q[y];if(y instanceof THREE.Face3){z+=3;J+=1;Y+=3}else if(y instanceof THREE.Face4){z+=4;J+=2;Y+=4}}D=w;n=u;Q=void 0;K=void 0;var da=void 0,Ga=void 0;da=void 0;
|