|
@@ -174,9 +174,9 @@ h.image[m]);b.generateMipmap(b.TEXTURE_CUBE_MAP);b.bindTexture(b.TEXTURE_CUBE_MA
|
|
j(h.wrap_t));b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,j(h.mag_filter));b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,j(h.min_filter));b.generateMipmap(b.TEXTURE_2D);b.bindTexture(b.TEXTURE_2D,null)}b.activeTexture(b.TEXTURE0+d);b.bindTexture(b.TEXTURE_2D,h.__webGLTexture)}}}w=p.attributes;b.bindBuffer(b.ARRAY_BUFFER,s.__webGLVertexBuffer);b.vertexAttribPointer(w.position,3,b.FLOAT,false,0,0);b.enableVertexAttribArray(w.position);if(w.normal>=0){b.bindBuffer(b.ARRAY_BUFFER,s.__webGLNormalBuffer);
|
|
j(h.wrap_t));b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,j(h.mag_filter));b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,j(h.min_filter));b.generateMipmap(b.TEXTURE_2D);b.bindTexture(b.TEXTURE_2D,null)}b.activeTexture(b.TEXTURE0+d);b.bindTexture(b.TEXTURE_2D,h.__webGLTexture)}}}w=p.attributes;b.bindBuffer(b.ARRAY_BUFFER,s.__webGLVertexBuffer);b.vertexAttribPointer(w.position,3,b.FLOAT,false,0,0);b.enableVertexAttribArray(w.position);if(w.normal>=0){b.bindBuffer(b.ARRAY_BUFFER,s.__webGLNormalBuffer);
|
|
b.vertexAttribPointer(w.normal,3,b.FLOAT,false,0,0);b.enableVertexAttribArray(w.normal)}if(w.tangent>=0){b.bindBuffer(b.ARRAY_BUFFER,s.__webGLTangentBuffer);b.vertexAttribPointer(w.tangent,4,b.FLOAT,false,0,0);b.enableVertexAttribArray(w.tangent)}if(w.uv>=0)if(s.__webGLUVBuffer){b.bindBuffer(b.ARRAY_BUFFER,s.__webGLUVBuffer);b.vertexAttribPointer(w.uv,2,b.FLOAT,false,0,0);b.enableVertexAttribArray(w.uv)}else b.disableVertexAttribArray(w.uv);if(n.wireframe||n instanceof THREE.LineBasicMaterial){w=
|
|
b.vertexAttribPointer(w.normal,3,b.FLOAT,false,0,0);b.enableVertexAttribArray(w.normal)}if(w.tangent>=0){b.bindBuffer(b.ARRAY_BUFFER,s.__webGLTangentBuffer);b.vertexAttribPointer(w.tangent,4,b.FLOAT,false,0,0);b.enableVertexAttribArray(w.tangent)}if(w.uv>=0)if(s.__webGLUVBuffer){b.bindBuffer(b.ARRAY_BUFFER,s.__webGLUVBuffer);b.vertexAttribPointer(w.uv,2,b.FLOAT,false,0,0);b.enableVertexAttribArray(w.uv)}else b.disableVertexAttribArray(w.uv);if(n.wireframe||n instanceof THREE.LineBasicMaterial){w=
|
|
n.wireframe_linewidth!==undefined?n.wireframe_linewidth:n.linewidth!==undefined?n.linewidth:1;n=n instanceof THREE.LineBasicMaterial&&v.type==THREE.LineStrip?b.LINE_STRIP:b.LINES;b.lineWidth(w);b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,s.__webGLLineBuffer);b.drawElements(n,s.__webGLLineCount,b.UNSIGNED_SHORT,0)}else{b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,s.__webGLFaceBuffer);b.drawElements(b.TRIANGLES,s.__webGLFaceCount,b.UNSIGNED_SHORT,0)}};this.renderPass=function(d,h,k,n,s,v,p){var m,w,t,i,u;t=0;for(i=
|
|
n.wireframe_linewidth!==undefined?n.wireframe_linewidth:n.linewidth!==undefined?n.linewidth:1;n=n instanceof THREE.LineBasicMaterial&&v.type==THREE.LineStrip?b.LINE_STRIP:b.LINES;b.lineWidth(w);b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,s.__webGLLineBuffer);b.drawElements(n,s.__webGLLineCount,b.UNSIGNED_SHORT,0)}else{b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,s.__webGLFaceBuffer);b.drawElements(b.TRIANGLES,s.__webGLFaceCount,b.UNSIGNED_SHORT,0)}};this.renderPass=function(d,h,k,n,s,v,p){var m,w,t,i,u;t=0;for(i=
|
|
-n.materials.length;t<i;t++){m=n.materials[t];if(m instanceof THREE.MeshFaceMaterial){m=0;for(w=s.materials.length;m<w;m++)if((u=s.materials[m])&&u.blending==v&&u.opacity<1==p){this.setBlending(u.blending);this.renderBuffer(d,h,k,u,s,n)}}else if((u=m)&&u.blending==v&&u.opacity<1==p){this.setBlending(u.blending);this.renderBuffer(d,h,k,u,s,n)}}};this.render=function(d,h,k){var n,s,v,p,m=d.lights,w=d.fog;this.initWebGLObjects(d);if(k){if(k&&!k.__webGLFramebuffer){k.__webGLFramebuffer=b.createFramebuffer();
|
|
|
|
|
|
+n.materials.length;t<i;t++){m=n.materials[t];if(m instanceof THREE.MeshFaceMaterial){m=0;for(w=s.materials.length;m<w;m++)if((u=s.materials[m])&&u.blending==v&&u.opacity<1==p){this.setBlending(u.blending);this.renderBuffer(d,h,k,u,s,n)}}else if((u=m)&&u.blending==v&&u.opacity<1==p){this.setBlending(u.blending);this.renderBuffer(d,h,k,u,s,n)}}};this.render=function(d,h,k){var n,s,v,p,m=d.lights,w=d.fog;this.initWebGLObjects(d);if(k&&!k.__webGLFramebuffer){k.__webGLFramebuffer=b.createFramebuffer();
|
|
k.__webGLRenderbuffer=b.createRenderbuffer();k.__webGLTexture=b.createTexture();b.bindRenderbuffer(b.RENDERBUFFER,k.__webGLRenderbuffer);b.renderbufferStorage(b.RENDERBUFFER,b.DEPTH_COMPONENT16,k.width,k.height);b.bindTexture(b.TEXTURE_2D,k.__webGLTexture);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,j(k.wrap_s));b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,j(k.wrap_t));b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,j(k.mag_filter));b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,j(k.min_filter));
|
|
k.__webGLRenderbuffer=b.createRenderbuffer();k.__webGLTexture=b.createTexture();b.bindRenderbuffer(b.RENDERBUFFER,k.__webGLRenderbuffer);b.renderbufferStorage(b.RENDERBUFFER,b.DEPTH_COMPONENT16,k.width,k.height);b.bindTexture(b.TEXTURE_2D,k.__webGLTexture);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,j(k.wrap_s));b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,j(k.wrap_t));b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,j(k.mag_filter));b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,j(k.min_filter));
|
|
-b.texImage2D(b.TEXTURE_2D,0,j(k.format),k.width,k.height,0,j(k.format),j(k.type),null);b.bindFramebuffer(b.FRAMEBUFFER,k.__webGLFramebuffer);b.framebufferTexture2D(b.FRAMEBUFFER,b.COLOR_ATTACHMENT0,b.TEXTURE_2D,k.__webGLTexture,0);b.framebufferRenderbuffer(b.FRAMEBUFFER,b.DEPTH_ATTACHMENT,b.RENDERBUFFER,k.__webGLRenderbuffer);b.bindTexture(b.TEXTURE_2D,null);b.bindRenderbuffer(b.RENDERBUFFER,null);b.bindFramebuffer(b.FRAMEBUFFER,null)}b.bindFramebuffer(b.FRAMEBUFFER,k?k.__webGLFramebuffer:null)}this.autoClear&&
|
|
|
|
|
|
+b.texImage2D(b.TEXTURE_2D,0,j(k.format),k.width,k.height,0,j(k.format),j(k.type),null);b.bindFramebuffer(b.FRAMEBUFFER,k.__webGLFramebuffer);b.framebufferTexture2D(b.FRAMEBUFFER,b.COLOR_ATTACHMENT0,b.TEXTURE_2D,k.__webGLTexture,0);b.framebufferRenderbuffer(b.FRAMEBUFFER,b.DEPTH_ATTACHMENT,b.RENDERBUFFER,k.__webGLRenderbuffer);b.bindTexture(b.TEXTURE_2D,null);b.bindRenderbuffer(b.RENDERBUFFER,null);b.bindFramebuffer(b.FRAMEBUFFER,null)}b.bindFramebuffer(b.FRAMEBUFFER,k?k.__webGLFramebuffer:null);this.autoClear&&
|
|
this.clear();h.autoUpdateMatrix&&h.updateMatrix();E.set(h.matrix.flatten());C.set(h.projectionMatrix.flatten());n=0;for(s=d.__webGLObjects.length;n<s;n++){v=d.__webGLObjects[n];p=v.object;v=v.buffer;if(p.visible){this.setupMatrices(p,h);this.renderPass(h,m,w,p,v,THREE.NormalBlending,false)}}n=0;for(s=d.__webGLObjects.length;n<s;n++){v=d.__webGLObjects[n];p=v.object;v=v.buffer;if(p.visible){this.setupMatrices(p,h);this.renderPass(h,m,w,p,v,THREE.AdditiveBlending,false);this.renderPass(h,m,w,p,v,THREE.SubtractiveBlending,
|
|
this.clear();h.autoUpdateMatrix&&h.updateMatrix();E.set(h.matrix.flatten());C.set(h.projectionMatrix.flatten());n=0;for(s=d.__webGLObjects.length;n<s;n++){v=d.__webGLObjects[n];p=v.object;v=v.buffer;if(p.visible){this.setupMatrices(p,h);this.renderPass(h,m,w,p,v,THREE.NormalBlending,false)}}n=0;for(s=d.__webGLObjects.length;n<s;n++){v=d.__webGLObjects[n];p=v.object;v=v.buffer;if(p.visible){this.setupMatrices(p,h);this.renderPass(h,m,w,p,v,THREE.AdditiveBlending,false);this.renderPass(h,m,w,p,v,THREE.SubtractiveBlending,
|
|
false);this.renderPass(h,m,w,p,v,THREE.AdditiveBlending,true);this.renderPass(h,m,w,p,v,THREE.SubtractiveBlending,true);this.renderPass(h,m,w,p,v,THREE.NormalBlending,true)}}if(k&&k.min_filter!==THREE.NearestFilter&&k.min_filter!==THREE.LinearFilter){b.bindTexture(b.TEXTURE_2D,k.__webGLTexture);b.generateMipmap(b.TEXTURE_2D);b.bindTexture(b.TEXTURE_2D,null)}};this.initWebGLObjects=function(d){function h(t,i,u,I){if(t[i]==undefined){d.__webGLObjects.push({buffer:u,object:I});t[i]=1}}var k,n,s,v,p,
|
|
false);this.renderPass(h,m,w,p,v,THREE.AdditiveBlending,true);this.renderPass(h,m,w,p,v,THREE.SubtractiveBlending,true);this.renderPass(h,m,w,p,v,THREE.NormalBlending,true)}}if(k&&k.min_filter!==THREE.NearestFilter&&k.min_filter!==THREE.LinearFilter){b.bindTexture(b.TEXTURE_2D,k.__webGLTexture);b.generateMipmap(b.TEXTURE_2D);b.bindTexture(b.TEXTURE_2D,null)}};this.initWebGLObjects=function(d){function h(t,i,u,I){if(t[i]==undefined){d.__webGLObjects.push({buffer:u,object:I});t[i]=1}}var k,n,s,v,p,
|
|
m,w;if(!d.__webGLObjects){d.__webGLObjects=[];d.__webGLObjectsMap={}}k=0;for(n=d.objects.length;k<n;k++){s=d.objects[k];p=s.geometry;if(d.__webGLObjectsMap[s.id]==undefined)d.__webGLObjectsMap[s.id]={};w=d.__webGLObjectsMap[s.id];if(s instanceof THREE.Mesh){for(v in p.geometryChunks){m=p.geometryChunks[v];if(!m.__webGLVertexBuffer){this.createMeshBuffers(m);this.initMeshBuffers(m,s);p.__dirtyVertices=true;p.__dirtyElements=true;p.__dirtyUvs=true;p.__dirtyNormals=true;p.__dirtyTangents=true}if(p.__dirtyVertices||
|
|
m,w;if(!d.__webGLObjects){d.__webGLObjects=[];d.__webGLObjectsMap={}}k=0;for(n=d.objects.length;k<n;k++){s=d.objects[k];p=s.geometry;if(d.__webGLObjectsMap[s.id]==undefined)d.__webGLObjectsMap[s.id]={};w=d.__webGLObjectsMap[s.id];if(s instanceof THREE.Mesh){for(v in p.geometryChunks){m=p.geometryChunks[v];if(!m.__webGLVertexBuffer){this.createMeshBuffers(m);this.initMeshBuffers(m,s);p.__dirtyVertices=true;p.__dirtyElements=true;p.__dirtyUvs=true;p.__dirtyNormals=true;p.__dirtyTangents=true}if(p.__dirtyVertices||
|