提交 4f9a146d 编写于 作者: M Mr.doob

Updated builds.

上级 c43699e1
......@@ -20761,9 +20761,9 @@ THREE.WebGLRenderer = function ( parameters ) {
}
var offsets = geometry.drawcalls;
var drawcall = geometry.drawcalls;
if ( offsets.length === 0 ) {
if ( drawcall.length === 0 ) {
if ( updateBuffers ) {
......@@ -20797,14 +20797,14 @@ THREE.WebGLRenderer = function ( parameters ) {
} else {
// if there is more than 1 chunk
// must set attribute pointers to use new offsets for each chunk
// must set attribute pointers to use new drawcall for each chunk
// even if geometry and materials didn't change
updateBuffers = true;
for ( var i = 0, il = offsets.length; i < il; i ++ ) {
for ( var i = 0, il = drawcall.length; i < il; i ++ ) {
var startIndex = offsets[ i ].index;
var startIndex = drawcall[ i ].index;
if ( updateBuffers ) {
......@@ -20815,7 +20815,7 @@ THREE.WebGLRenderer = function ( parameters ) {
// render indexed triangles
if ( geometry instanceof THREE.InstancedBufferGeometry && offsets[ i ].instances > 0 ) {
if ( geometry instanceof THREE.InstancedBufferGeometry && drawcall[ i ].instances > 0 ) {
var extension = extensions.get( 'ANGLE_instanced_arrays' );
......@@ -20826,17 +20826,17 @@ THREE.WebGLRenderer = function ( parameters ) {
}
extension.drawElementsInstancedANGLE( mode, offsets[ i ].count, type, offsets[ i ].start * size, offsets[ i ].count, type, offsets[ i ].instances ); // Draw the instanced meshes
extension.drawElementsInstancedANGLE( mode, drawcall[ i ].count, type, drawcall[ i ].start * size, drawcall[ i ].count, type, drawcall[ i ].instances ); // Draw the instanced meshes
} else {
_gl.drawElements( mode, offsets[ i ].count, type, offsets[ i ].start * size );
_gl.drawElements( mode, drawcall[ i ].count, type, drawcall[ i ].start * size );
}
_infoRender.calls ++;
_infoRender.vertices += offsets[ i ].count; // not really true, here vertices can be shared
_infoRender.faces += offsets[ i ].count / 3;
_infoRender.vertices += drawcall[ i ].count; // not really true, here vertices can be shared
_infoRender.faces += drawcall[ i ].count / 3;
}
......@@ -20844,17 +20844,17 @@ THREE.WebGLRenderer = function ( parameters ) {
} else {
// non-indexed triangles
if ( updateBuffers ) {
var offsets = geometry.drawcalls;
setupVertexAttributes( material, program, geometry, 0 );
if ( offsets.length === 0 ) {
}
if ( updateBuffers ) {
// non-indexed triangles
setupVertexAttributes( material, program, geometry, 0 );
var drawcall = geometry.drawcalls;
}
if ( drawcall.length === 0 ) {
var position = geometry.attributes.position;
......@@ -20901,17 +20901,7 @@ THREE.WebGLRenderer = function ( parameters ) {
} else {
// if there is more than 1 chunk
// must set attribute pointers to use new offsets for each chunk
// even if geometry and materials didn't change
if ( updateBuffers ) {
setupVertexAttributes( material, program, geometry, 0 );
}
for ( var i = 0, il = offsets.length; i < il; i ++ ) {
for ( var i = 0, il = drawcall.length; i < il; i ++ ) {
// render non-indexed triangles
......@@ -20922,13 +20912,13 @@ THREE.WebGLRenderer = function ( parameters ) {
} else {
_gl.drawArrays( mode, offsets[ i ].start, offsets[ i ].count );
_gl.drawArrays( mode, drawcall[ i ].start, drawcall[ i ].count );
}
_infoRender.calls ++;
_infoRender.vertices += offsets[ i ].count;
_infoRender.faces += ( offsets[ i ].count ) / 3;
_infoRender.vertices += drawcall[ i ].count;
_infoRender.faces += ( drawcall[ i ].count ) / 3;
}
......@@ -20969,9 +20959,9 @@ THREE.WebGLRenderer = function ( parameters ) {
}
var offsets = geometry.drawcalls;
var drawcall = geometry.drawcalls;
if ( offsets.length === 0 ) {
if ( drawcall.length === 0 ) {
if ( updateBuffers ) {
......@@ -20988,14 +20978,14 @@ THREE.WebGLRenderer = function ( parameters ) {
} else {
// if there is more than 1 chunk
// must set attribute pointers to use new offsets for each chunk
// must set attribute pointers to use new drawcall for each chunk
// even if geometry and materials didn't change
if ( offsets.length > 1 ) updateBuffers = true;
if ( drawcall.length > 1 ) updateBuffers = true;
for ( var i = 0, il = offsets.length; i < il; i ++ ) {
for ( var i = 0, il = drawcall.length; i < il; i ++ ) {
var startIndex = offsets[ i ].index;
var startIndex = drawcall[ i ].index;
if ( updateBuffers ) {
......@@ -21006,10 +20996,10 @@ THREE.WebGLRenderer = function ( parameters ) {
// render indexed lines
_gl.drawElements( mode, offsets[ i ].count, type, offsets[ i ].start * size ); // 2 bytes per Uint16Array
_gl.drawElements( mode, drawcall[ i ].count, type, drawcall[ i ].start * size ); // 2 bytes per Uint16Array
_infoRender.calls ++;
_infoRender.vertices += offsets[ i ].count; // not really true, here vertices can be shared
_infoRender.vertices += drawcall[ i ].count; // not really true, here vertices can be shared
}
......@@ -21026,9 +21016,9 @@ THREE.WebGLRenderer = function ( parameters ) {
}
var position = geometry.attributes.position;
var offsets = geometry.drawcalls;
var drawcall = geometry.drawcalls;
if ( offsets.length === 0 ) {
if ( drawcall.length === 0 ) {
_gl.drawArrays( mode, 0, position.array.length / 3 );
......@@ -21037,12 +21027,12 @@ THREE.WebGLRenderer = function ( parameters ) {
} else {
for ( var i = 0, il = offsets.length; i < il; i ++ ) {
for ( var i = 0, il = drawcall.length; i < il; i ++ ) {
_gl.drawArrays( mode, offsets[ i ].index, offsets[ i ].count );
_gl.drawArrays( mode, drawcall[ i ].index, drawcall[ i ].count );
_infoRender.calls ++;
_infoRender.vertices += offsets[ i ].count;
_infoRender.vertices += drawcall[ i ].count;
}
......@@ -21078,9 +21068,9 @@ THREE.WebGLRenderer = function ( parameters ) {
}
var offsets = geometry.drawcalls;
var drawcall = geometry.drawcalls;
if ( offsets.length === 0 ) {
if ( drawcall.length === 0 ) {
if ( updateBuffers ) {
......@@ -21097,14 +21087,14 @@ THREE.WebGLRenderer = function ( parameters ) {
} else {
// if there is more than 1 chunk
// must set attribute pointers to use new offsets for each chunk
// must set attribute pointers to use new drawcall for each chunk
// even if geometry and materials didn't change
if ( offsets.length > 1 ) updateBuffers = true;
if ( drawcall.length > 1 ) updateBuffers = true;
for ( var i = 0, il = offsets.length; i < il; i ++ ) {
for ( var i = 0, il = drawcall.length; i < il; i ++ ) {
var startIndex = offsets[ i ].index;
var startIndex = drawcall[ i ].index;
if ( updateBuffers ) {
......@@ -21115,10 +21105,10 @@ THREE.WebGLRenderer = function ( parameters ) {
// render indexed points
_gl.drawElements( mode, offsets[ i ].count, type, offsets[ i ].start * size );
_gl.drawElements( mode, drawcall[ i ].count, type, drawcall[ i ].start * size );
_infoRender.calls ++;
_infoRender.points += offsets[ i ].count;
_infoRender.points += drawcall[ i ].count;
}
......@@ -21135,9 +21125,9 @@ THREE.WebGLRenderer = function ( parameters ) {
}
var position = geometry.attributes.position;
var offsets = geometry.drawcalls;
var drawcall = geometry.drawcalls;
if ( offsets.length === 0 ) {
if ( drawcall.length === 0 ) {
_gl.drawArrays( mode, 0, position.array.length / 3 );
......@@ -21146,12 +21136,12 @@ THREE.WebGLRenderer = function ( parameters ) {
} else {
for ( var i = 0, il = offsets.length; i < il; i ++ ) {
for ( var i = 0, il = drawcall.length; i < il; i ++ ) {
_gl.drawArrays( mode, offsets[ i ].index, offsets[ i ].count );
_gl.drawArrays( mode, drawcall[ i ].index, drawcall[ i ].count );
_infoRender.calls ++;
_infoRender.points += offsets[ i ].count;
_infoRender.points += drawcall[ i ].count;
}
......
......@@ -554,18 +554,18 @@ s.drawArrays(s.TRIANGLES,0,a.count);a.count=0};this.renderBufferDirect=function(
c,g.normal[k])):(!0===e.morphTargets&&d.removeAttribute("morphTarget"+c),!0===e.morphNormals&&d.removeAttribute("morphNormal"+c));b=a.getUniforms();null!==b.morphTargetInfluences&&s.uniform1fv(b.morphTargetInfluences,fb);b=!0}if(f instanceof THREE.Mesh)a:{f=s.TRIANGLES;!0===e.wireframe&&(f=s.LINES,J.setLineWidth(e.wireframeLinewidth*E));var m=d.attributes.index;if(m)if(g=ta.getAttributeBuffer(m),m.array instanceof Uint32Array&&W.get("OES_element_index_uint")?(c=s.UNSIGNED_INT,h=4):(c=s.UNSIGNED_SHORT,
h=2),k=d.drawcalls,0===k.length){b&&(l(e,a,d,0),s.bindBuffer(s.ELEMENT_ARRAY_BUFFER,g));if(d instanceof THREE.InstancedBufferGeometry&&0<d.maxInstancedCount){var p=W.get("ANGLE_instanced_arrays");if(null===p){console.error("THREE.WebGLRenderer.renderMesh: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");break a}p.drawElementsInstancedANGLE(f,m.array.length,c,0,d.maxInstancedCount)}else s.drawElements(f,m.array.length,c,0);R.calls++;R.vertices+=
m.array.length;R.faces+=m.array.length/3}else{b=!0;for(var m=0,q=k.length;m<q;m++){p=k[m].index;b&&(l(e,a,d,p),s.bindBuffer(s.ELEMENT_ARRAY_BUFFER,g));if(d instanceof THREE.InstancedBufferGeometry&&0<k[m].instances){p=W.get("ANGLE_instanced_arrays");if(null===p){console.error("THREE.WebGLRenderer.renderMesh: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");break a}p.drawElementsInstancedANGLE(f,k[m].count,c,k[m].start*h,k[m].count,c,k[m].instances)}else s.drawElements(f,
k[m].count,c,k[m].start*h);R.calls++;R.vertices+=k[m].count;R.faces+=k[m].count/3}}else if(k=d.drawcalls,0===k.length){b&&l(e,a,d,0);e=d.attributes.position;if(d instanceof THREE.InstancedBufferGeometry&&0<d.maxInstancedCount){p=W.get("ANGLE_instanced_arrays");if(null===p){console.error("THREE.WebGLRenderer.renderMesh: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");break a}e instanceof THREE.InterleavedBufferAttribute?p.drawArraysInstancedANGLE(f,
0,e.data.count,d.maxInstancedCount):p.drawArraysInstancedANGLE(f,0,e.count,d.maxInstancedCount)}else e instanceof THREE.InterleavedBufferAttribute?s.drawArrays(f,0,e.data.count):s.drawArrays(f,0,e.count);R.calls++;R.vertices+=e.count;R.faces+=e.array.length/3}else for(b&&l(e,a,d,0),m=0,q=k.length;m<q;m++){if(d instanceof THREE.InstancedBufferGeometry){console.error("THREE.WebGLRenderer.renderMesh: cannot use drawCalls with THREE.InstancedBufferGeometry.");break a}else s.drawArrays(f,k[m].start,k[m].count);
R.calls++;R.vertices+=k[m].count;R.faces+=k[m].count/3}}else if(f instanceof THREE.Line)if(f=f instanceof THREE.LineSegments?s.LINES:s.LINE_STRIP,J.setLineWidth((void 0!==e.linewidth?e.linewidth:1)*E),p=d.attributes.index)if(k=ta.getAttributeBuffer(p),p.array instanceof Uint32Array&&W.get("OES_element_index_uint")?(h=s.UNSIGNED_INT,g=4):(h=s.UNSIGNED_SHORT,g=2),c=d.drawcalls,0===c.length)b&&(l(e,a,d,0),s.bindBuffer(s.ELEMENT_ARRAY_BUFFER,k)),s.drawElements(f,p.array.length,h,0),R.calls++,R.vertices+=
p.array.length;else for(1<c.length&&(b=!0),p=0,m=c.length;p<m;p++)q=c[p].index,b&&(l(e,a,d,q),s.bindBuffer(s.ELEMENT_ARRAY_BUFFER,k)),s.drawElements(f,c[p].count,h,c[p].start*g),R.calls++,R.vertices+=c[p].count;else if(b&&l(e,a,d,0),e=d.attributes.position,c=d.drawcalls,0===c.length)s.drawArrays(f,0,e.array.length/3),R.calls++,R.vertices+=e.array.length/3;else for(p=0,m=c.length;p<m;p++)s.drawArrays(f,c[p].index,c[p].count),R.calls++,R.vertices+=c[p].count;else if(f instanceof THREE.PointCloud)if(c=
b,f=s.POINTS,p=d.attributes.index)if(k=ta.getAttributeBuffer(p),p.array instanceof Uint32Array&&W.get("OES_element_index_uint")?(h=s.UNSIGNED_INT,g=4):(h=s.UNSIGNED_SHORT,g=2),b=d.drawcalls,0===b.length)c&&(l(e,a,d,0),s.bindBuffer(s.ELEMENT_ARRAY_BUFFER,k)),s.drawElements(f,p.array.length,h,0),R.calls++,R.points+=p.array.length;else for(1<b.length&&(c=!0),p=0,m=b.length;p<m;p++)q=b[p].index,c&&(l(e,a,d,q),s.bindBuffer(s.ELEMENT_ARRAY_BUFFER,k)),s.drawElements(f,b[p].count,h,b[p].start*g),R.calls++,
R.points+=b[p].count;else if(c&&l(e,a,d,0),e=d.attributes.position,b=d.drawcalls,0===b.length)s.drawArrays(f,0,e.array.length/3),R.calls++,R.points+=e.array.length/3;else for(p=0,m=b.length;p<m;p++)s.drawArrays(f,b[p].index,b[p].count),R.calls++,R.points+=b[p].count};this.render=function(a,b,c,d){if(!1===b instanceof THREE.Camera)console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");else{var e=a.fog;wa="";Xa=-1;Wa=null;gb=!0;!0===a.autoUpdate&&a.updateMatrixWorld();
null===b.parent&&b.updateMatrixWorld();b.matrixWorldInverse.getInverse(b.matrixWorld);Ja.multiplyMatrices(b.projectionMatrix,b.matrixWorldInverse);Za.setFromMatrix(Ja);ha.length=0;pa.length=0;za.length=0;Aa.length=0;Ba.length=0;Ya.length=0;Qa.length=0;q(a);!0===ka.sortObjects&&(pa.sort(p),za.sort(m));ma.render(a,b);R.calls=0;R.vertices=0;R.faces=0;R.points=0;this.setRenderTarget(c);(this.autoClear||d)&&this.clear(this.autoClearColor,this.autoClearDepth,this.autoClearStencil);a.overrideMaterial?(d=
a.overrideMaterial,t(pa,b,ha,e,d),t(za,b,ha,e,d),r(Aa,b,ha,e,d),r(Ba,b,ha,e,d)):(J.setBlending(THREE.NoBlending),t(pa,b,ha,e),r(Aa,b,ha,e),t(za,b,ha,e),r(Ba,b,ha,e));Mb.render(a,b);Nb.render(a,b,kb,lb);c&&c.generateMipmaps&&c.minFilter!==THREE.NearestFilter&&c.minFilter!==THREE.LinearFilter&&(c instanceof THREE.WebGLRenderTargetCube?(J.bindTexture(s.TEXTURE_CUBE_MAP,aa.get(c).__webglTexture),s.generateMipmap(s.TEXTURE_CUBE_MAP),J.bindTexture(s.TEXTURE_CUBE_MAP,null)):(J.bindTexture(s.TEXTURE_2D,aa.get(c).__webglTexture),
s.generateMipmap(s.TEXTURE_2D),J.bindTexture(s.TEXTURE_2D,null)));J.setDepthTest(!0);J.setDepthWrite(!0);J.setColorWrite(!0)}};var Zb={MeshDepthMaterial:"depth",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointCloudMaterial:"particle_basic"};this.setFaceCulling=function(a,b){a===THREE.CullFaceNone?J.disable(s.CULL_FACE):(b===THREE.FrontFaceDirectionCW?s.frontFace(s.CW):s.frontFace(s.CCW),
a===THREE.CullFaceBack?s.cullFace(s.BACK):a===THREE.CullFaceFront?s.cullFace(s.FRONT):s.cullFace(s.FRONT_AND_BACK),J.enable(s.CULL_FACE))};this.setTexture=function(a,b){var c=aa.get(a);if(0<a.version&&c.__version!==a.version){var d=a.image;if(void 0===d)console.warn("THREE.WebGLRenderer: Texture marked for update but image is undefined",a);else if(!1===d.complete)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete",a);else{void 0===c.__webglInit&&(c.__webglInit=!0,
a.__webglInit=!0,a.addEventListener("dispose",g),c.__webglTexture=s.createTexture(),Da.textures++);J.activeTexture(s.TEXTURE0+b);J.bindTexture(s.TEXTURE_2D,c.__webglTexture);s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,a.flipY);s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultiplyAlpha);s.pixelStorei(s.UNPACK_ALIGNMENT,a.unpackAlignment);a.image=D(a.image,Kb);var e=a.image,d=THREE.Math.isPowerOfTwo(e.width)&&THREE.Math.isPowerOfTwo(e.height),f=K(a.format),h=K(a.type);C(s.TEXTURE_2D,a,d);var k=a.mipmaps;
if(a instanceof THREE.DataTexture)if(0<k.length&&d){for(var l=0,m=k.length;l<m;l++)e=k[l],J.texImage2D(s.TEXTURE_2D,l,f,e.width,e.height,0,f,h,e.data);a.generateMipmaps=!1}else J.texImage2D(s.TEXTURE_2D,0,f,e.width,e.height,0,f,h,e.data);else if(a instanceof THREE.CompressedTexture)for(l=0,m=k.length;l<m;l++)e=k[l],a.format!==THREE.RGBAFormat&&a.format!==THREE.RGBFormat?-1<J.getCompressedTextureFormats().indexOf(f)?J.compressedTexImage2D(s.TEXTURE_2D,l,f,e.width,e.height,0,e.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):
k[m].count,c,k[m].start*h);R.calls++;R.vertices+=k[m].count;R.faces+=k[m].count/3}}else if(b&&l(e,a,d,0),k=d.drawcalls,0===k.length){e=d.attributes.position;if(d instanceof THREE.InstancedBufferGeometry&&0<d.maxInstancedCount){p=W.get("ANGLE_instanced_arrays");if(null===p){console.error("THREE.WebGLRenderer.renderMesh: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");break a}e instanceof THREE.InterleavedBufferAttribute?p.drawArraysInstancedANGLE(f,
0,e.data.count,d.maxInstancedCount):p.drawArraysInstancedANGLE(f,0,e.count,d.maxInstancedCount)}else e instanceof THREE.InterleavedBufferAttribute?s.drawArrays(f,0,e.data.count):s.drawArrays(f,0,e.count);R.calls++;R.vertices+=e.count;R.faces+=e.array.length/3}else for(m=0,q=k.length;m<q;m++){if(d instanceof THREE.InstancedBufferGeometry){console.error("THREE.WebGLRenderer.renderMesh: cannot use drawCalls with THREE.InstancedBufferGeometry.");break a}else s.drawArrays(f,k[m].start,k[m].count);R.calls++;
R.vertices+=k[m].count;R.faces+=k[m].count/3}}else if(f instanceof THREE.Line)if(f=f instanceof THREE.LineSegments?s.LINES:s.LINE_STRIP,J.setLineWidth((void 0!==e.linewidth?e.linewidth:1)*E),p=d.attributes.index)if(k=ta.getAttributeBuffer(p),p.array instanceof Uint32Array&&W.get("OES_element_index_uint")?(h=s.UNSIGNED_INT,g=4):(h=s.UNSIGNED_SHORT,g=2),c=d.drawcalls,0===c.length)b&&(l(e,a,d,0),s.bindBuffer(s.ELEMENT_ARRAY_BUFFER,k)),s.drawElements(f,p.array.length,h,0),R.calls++,R.vertices+=p.array.length;
else for(1<c.length&&(b=!0),p=0,m=c.length;p<m;p++)q=c[p].index,b&&(l(e,a,d,q),s.bindBuffer(s.ELEMENT_ARRAY_BUFFER,k)),s.drawElements(f,c[p].count,h,c[p].start*g),R.calls++,R.vertices+=c[p].count;else if(b&&l(e,a,d,0),e=d.attributes.position,c=d.drawcalls,0===c.length)s.drawArrays(f,0,e.array.length/3),R.calls++,R.vertices+=e.array.length/3;else for(p=0,m=c.length;p<m;p++)s.drawArrays(f,c[p].index,c[p].count),R.calls++,R.vertices+=c[p].count;else if(f instanceof THREE.PointCloud)if(c=b,f=s.POINTS,
p=d.attributes.index)if(k=ta.getAttributeBuffer(p),p.array instanceof Uint32Array&&W.get("OES_element_index_uint")?(h=s.UNSIGNED_INT,g=4):(h=s.UNSIGNED_SHORT,g=2),b=d.drawcalls,0===b.length)c&&(l(e,a,d,0),s.bindBuffer(s.ELEMENT_ARRAY_BUFFER,k)),s.drawElements(f,p.array.length,h,0),R.calls++,R.points+=p.array.length;else for(1<b.length&&(c=!0),p=0,m=b.length;p<m;p++)q=b[p].index,c&&(l(e,a,d,q),s.bindBuffer(s.ELEMENT_ARRAY_BUFFER,k)),s.drawElements(f,b[p].count,h,b[p].start*g),R.calls++,R.points+=b[p].count;
else if(c&&l(e,a,d,0),e=d.attributes.position,b=d.drawcalls,0===b.length)s.drawArrays(f,0,e.array.length/3),R.calls++,R.points+=e.array.length/3;else for(p=0,m=b.length;p<m;p++)s.drawArrays(f,b[p].index,b[p].count),R.calls++,R.points+=b[p].count};this.render=function(a,b,c,d){if(!1===b instanceof THREE.Camera)console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");else{var e=a.fog;wa="";Xa=-1;Wa=null;gb=!0;!0===a.autoUpdate&&a.updateMatrixWorld();null===b.parent&&b.updateMatrixWorld();
b.matrixWorldInverse.getInverse(b.matrixWorld);Ja.multiplyMatrices(b.projectionMatrix,b.matrixWorldInverse);Za.setFromMatrix(Ja);ha.length=0;pa.length=0;za.length=0;Aa.length=0;Ba.length=0;Ya.length=0;Qa.length=0;q(a);!0===ka.sortObjects&&(pa.sort(p),za.sort(m));ma.render(a,b);R.calls=0;R.vertices=0;R.faces=0;R.points=0;this.setRenderTarget(c);(this.autoClear||d)&&this.clear(this.autoClearColor,this.autoClearDepth,this.autoClearStencil);a.overrideMaterial?(d=a.overrideMaterial,t(pa,b,ha,e,d),t(za,
b,ha,e,d),r(Aa,b,ha,e,d),r(Ba,b,ha,e,d)):(J.setBlending(THREE.NoBlending),t(pa,b,ha,e),r(Aa,b,ha,e),t(za,b,ha,e),r(Ba,b,ha,e));Mb.render(a,b);Nb.render(a,b,kb,lb);c&&c.generateMipmaps&&c.minFilter!==THREE.NearestFilter&&c.minFilter!==THREE.LinearFilter&&(c instanceof THREE.WebGLRenderTargetCube?(J.bindTexture(s.TEXTURE_CUBE_MAP,aa.get(c).__webglTexture),s.generateMipmap(s.TEXTURE_CUBE_MAP),J.bindTexture(s.TEXTURE_CUBE_MAP,null)):(J.bindTexture(s.TEXTURE_2D,aa.get(c).__webglTexture),s.generateMipmap(s.TEXTURE_2D),
J.bindTexture(s.TEXTURE_2D,null)));J.setDepthTest(!0);J.setDepthWrite(!0);J.setColorWrite(!0)}};var Zb={MeshDepthMaterial:"depth",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointCloudMaterial:"particle_basic"};this.setFaceCulling=function(a,b){a===THREE.CullFaceNone?J.disable(s.CULL_FACE):(b===THREE.FrontFaceDirectionCW?s.frontFace(s.CW):s.frontFace(s.CCW),a===THREE.CullFaceBack?
s.cullFace(s.BACK):a===THREE.CullFaceFront?s.cullFace(s.FRONT):s.cullFace(s.FRONT_AND_BACK),J.enable(s.CULL_FACE))};this.setTexture=function(a,b){var c=aa.get(a);if(0<a.version&&c.__version!==a.version){var d=a.image;if(void 0===d)console.warn("THREE.WebGLRenderer: Texture marked for update but image is undefined",a);else if(!1===d.complete)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete",a);else{void 0===c.__webglInit&&(c.__webglInit=!0,a.__webglInit=!0,a.addEventListener("dispose",
g),c.__webglTexture=s.createTexture(),Da.textures++);J.activeTexture(s.TEXTURE0+b);J.bindTexture(s.TEXTURE_2D,c.__webglTexture);s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,a.flipY);s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultiplyAlpha);s.pixelStorei(s.UNPACK_ALIGNMENT,a.unpackAlignment);a.image=D(a.image,Kb);var e=a.image,d=THREE.Math.isPowerOfTwo(e.width)&&THREE.Math.isPowerOfTwo(e.height),f=K(a.format),h=K(a.type);C(s.TEXTURE_2D,a,d);var k=a.mipmaps;if(a instanceof THREE.DataTexture)if(0<k.length&&
d){for(var l=0,m=k.length;l<m;l++)e=k[l],J.texImage2D(s.TEXTURE_2D,l,f,e.width,e.height,0,f,h,e.data);a.generateMipmaps=!1}else J.texImage2D(s.TEXTURE_2D,0,f,e.width,e.height,0,f,h,e.data);else if(a instanceof THREE.CompressedTexture)for(l=0,m=k.length;l<m;l++)e=k[l],a.format!==THREE.RGBAFormat&&a.format!==THREE.RGBFormat?-1<J.getCompressedTextureFormats().indexOf(f)?J.compressedTexImage2D(s.TEXTURE_2D,l,f,e.width,e.height,0,e.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):
J.texImage2D(s.TEXTURE_2D,l,f,e.width,e.height,0,f,h,e.data);else if(0<k.length&&d){l=0;for(m=k.length;l<m;l++)e=k[l],J.texImage2D(s.TEXTURE_2D,l,f,f,h,e);a.generateMipmaps=!1}else J.texImage2D(s.TEXTURE_2D,0,f,f,h,a.image);a.generateMipmaps&&d&&s.generateMipmap(s.TEXTURE_2D);c.__version=a.version;if(a.onUpdate)a.onUpdate(a)}}else J.activeTexture(s.TEXTURE0+b),J.bindTexture(s.TEXTURE_2D,c.__webglTexture)};this.setRenderTarget=function(a){var b=a instanceof THREE.WebGLRenderTargetCube;if(a&&void 0===
aa.get(a).__webglFramebuffer){var c=aa.get(a);void 0===a.depthBuffer&&(a.depthBuffer=!0);void 0===a.stencilBuffer&&(a.stencilBuffer=!0);a.addEventListener("dispose",f);c.__webglTexture=s.createTexture();Da.textures++;var d=THREE.Math.isPowerOfTwo(a.width)&&THREE.Math.isPowerOfTwo(a.height),e=K(a.format),g=K(a.type);if(b){c.__webglFramebuffer=[];c.__webglRenderbuffer=[];J.bindTexture(s.TEXTURE_CUBE_MAP,c.__webglTexture);C(s.TEXTURE_CUBE_MAP,a,d);for(var h=0;6>h;h++)c.__webglFramebuffer[h]=s.createFramebuffer(),
c.__webglRenderbuffer[h]=s.createRenderbuffer(),J.texImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X+h,0,e,a.width,a.height,0,e,g,null),z(c.__webglFramebuffer[h],a,s.TEXTURE_CUBE_MAP_POSITIVE_X+h),A(c.__webglRenderbuffer[h],a);a.generateMipmaps&&d&&s.generateMipmap(s.TEXTURE_CUBE_MAP)}else c.__webglFramebuffer=s.createFramebuffer(),c.__webglRenderbuffer=a.shareDepthFrom?a.shareDepthFrom.__webglRenderbuffer:s.createRenderbuffer(),J.bindTexture(s.TEXTURE_2D,c.__webglTexture),C(s.TEXTURE_2D,a,d),J.texImage2D(s.TEXTURE_2D,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册