Browse Source

WebGLRenderer: Traverse only visible lights in compile()

This way the set of lights matches with the ones used during rendering, making sure that the compiled programs have the right parameters for rendering.
Olli Etuaho 4 năm trước cách đây
mục cha
commit
ae115fe061
1 tập tin đã thay đổi với 2 bổ sung2 xóa
  1. 2 2
      src/renderers/WebGLRenderer.js

+ 2 - 2
src/renderers/WebGLRenderer.js

@@ -873,9 +873,9 @@ function WebGLRenderer( parameters ) {
 		currentRenderState = renderStates.get( scene, camera );
 		currentRenderState.init();
 
-		scene.traverse( function ( object ) {
+		scene.traverseVisible( function ( object ) {
 
-			if ( object.isLight ) {
+			if ( object.isLight && object.layers.test( camera.layers ) ) {
 
 				currentRenderState.pushLight( object );