diff --git a/src/renderers/webgl/WebGLRenderLists.js b/src/renderers/webgl/WebGLRenderLists.js index 2839e8b94ac61e..c3909d4355c46a 100644 --- a/src/renderers/webgl/WebGLRenderLists.js +++ b/src/renderers/webgl/WebGLRenderLists.js @@ -56,6 +56,8 @@ function WebGLRenderList() { const transmissive = []; const transparent = []; + const objectIdToRenderItem = new Map(); + function init() { renderItemsIndex = 0; @@ -64,6 +66,8 @@ function WebGLRenderList() { transmissive.length = 0; transparent.length = 0; + objectIdToRenderItem.clear(); + } function getNextRenderItem( object, geometry, material, groupOrder, z, group ) { @@ -122,6 +126,8 @@ function WebGLRenderList() { } + objectIdToRenderItem.set( object.id, renderItem ); + } function unshift( object, geometry, material, groupOrder, z, group ) { @@ -142,6 +148,8 @@ function WebGLRenderList() { } + objectIdToRenderItem.set( object.id, renderItem ); + } function sort( customOpaqueSort, customTransparentSort ) { @@ -178,6 +186,8 @@ function WebGLRenderList() { transmissive: transmissive, transparent: transparent, + objectIdToRenderItem: objectIdToRenderItem, + init: init, push: push, unshift: unshift,