diff --git a/src/renderers/WebGLRenderer.js b/src/renderers/WebGLRenderer.js index c43583e4ef93aad63e33e28ec935a9620ab03d3a..149e6574b5f9b4236ffe3371cc904bc05eae4aa4 100644 --- a/src/renderers/WebGLRenderer.js +++ b/src/renderers/WebGLRenderer.js @@ -867,7 +867,7 @@ THREE.WebGLRenderer = function ( parameters ) { if ( geometry instanceof THREE.InstancedBufferGeometry && geometry.maxInstancedCount > 0 ) { - renderer.renderInstances( geometry ); + renderer.renderInstances( geometry, drawStart, drawCount ); } else { diff --git a/src/renderers/webgl/WebGLIndexedBufferRenderer.js b/src/renderers/webgl/WebGLIndexedBufferRenderer.js index 5d2c50110e9ab07198834b34483f4d551672c950..228a0358833dc4cfa625cc53f935cc82a27b3c70 100644 --- a/src/renderers/webgl/WebGLIndexedBufferRenderer.js +++ b/src/renderers/webgl/WebGLIndexedBufferRenderer.js @@ -40,7 +40,7 @@ THREE.WebGLIndexedBufferRenderer = function ( _gl, extensions, _infoRender ) { } - function renderInstances( geometry ) { + function renderInstances( geometry, start, count ) { var extension = extensions.get( 'ANGLE_instanced_arrays' ); @@ -53,7 +53,7 @@ THREE.WebGLIndexedBufferRenderer = function ( _gl, extensions, _infoRender ) { var index = geometry.index; - extension.drawElementsInstancedANGLE( mode, index.array.length, type, 0, geometry.maxInstancedCount ); + extension.drawElementsInstancedANGLE( mode, count, type, start * size, geometry.maxInstancedCount ); }