Source:
<code>public WorldRendererImpl(Context context, GLBufferPool bufferPool) { this.context = context; this.worldProvider = context.get(WorldProvider.class); this.backdropProvider = context.get(BackdropProvider.class); this.backdropRenderer = context.get(BackdropRenderer.class); this.renderingConfig = context.get(Config.class).getRendering(); this.renderingDebugConfig = renderingConfig.getDebug(); this.systemManager = context.get(ComponentSystemManager.class); this.shaderManager = context.get(ShaderManager.class); this.entityManager = context.get(EntityManager.class); if (renderingConfig.isOculusVrSupport()) { playerCamera = new OculusStereoCamera(); currentRenderingStage = RenderingStage.LEFT_EYE; } else { playerCamera = new PerspectiveCamera(renderingConfig.getCameraSettings()); currentRenderingStage = RenderingStage.MONO; } LocalPlayerSystem localPlayerSystem = context.get(LocalPlayerSystem.class); localPlayerSystem.setPlayerCamera(playerCamera); <START> renderableWorld = new RenderableWorldImpl(worldProvider, context.get(ChunkProvider.class), bufferPool, playerCamera, dag); <END> renderQueues = renderableWorld.getRenderQueues(); initMainDirectionalLight(); initRenderingSupport(); }</code><technical_language>Hmmm... in light of I suggested pass dag shadowMapCamera. create a new setShadowMapCamera() method get called ShadowMapNode insertion removal graph. However, this bring question do if is ShadowMapCamera set in RenderableWorld instance? I guess isChunkVisibleFromMainLight() method want throw exception if shadowmap camera set. consequences in code? this stage I know. this. way, RenderableWorldImpl instance effectively holds a number of acceleration structures, tempted call caches correct. of is related shadow mapping, is this conversation. EVENTUALLY, ShadowMapNode (or other node), insertion in graph, want chance register acceleration structures needs. So, EVENTUALLY, RenderableWorld class a more generic acceleration structures manager (and renamed accordingly) or, better, acceleration structures nodes in pipeline</technical_language>

Target:
public WorldRendererImpl(Context context, GLBufferPool bufferPool) { this.context = context; this.worldProvider = context.get(WorldProvider.class); this.backdropProvider = context.get(BackdropProvider.class); this.backdropRenderer = context.get(BackdropRenderer.class); this.renderingConfig = context.get(Config.class).getRendering(); this.renderingDebugConfig = renderingConfig.getDebug(); this.systemManager = context.get(ComponentSystemManager.class); this.shaderManager = context.get(ShaderManager.class); this.entityManager = context.get(EntityManager.class); if (renderingConfig.isOculusVrSupport()) { playerCamera = new OculusStereoCamera(); currentRenderingStage = RenderingStage.LEFT_EYE; } else { playerCamera = new PerspectiveCamera(renderingConfig.getCameraSettings()); currentRenderingStage = RenderingStage.MONO; } LocalPlayerSystem localPlayerSystem = context.get(LocalPlayerSystem.class); localPlayerSystem.setPlayerCamera(playerCamera); renderableWorld = new RenderableWorldImpl(worldProvider, context.get(ChunkProvider.class), bufferPool, playerCamera); renderQueues = renderableWorld.getRenderQueues(); initMainDirectionalLight(); initRenderingSupport(); }