private static void PrepareLightGroups(RenderDrawContext context, FastList <RenderView> renderViews, RenderView renderView, RenderViewLightData renderViewData, ShadowMapRenderer shadowMapRenderer, EntityGroup group) { foreach (var activeRenderer in renderViewData.ActiveRenderers) { // Find lights var lightRenderer = activeRenderer.LightRenderer; var lightCollection = activeRenderer.LightGroup.FindLightCollectionByGroup(group); var processLightsParameters = new LightGroupRendererBase.ProcessLightsParameters { Context = context, ViewIndex = renderViewData.ViewIndex, View = renderView, Views = renderViews, LightCollection = lightCollection, LightType = activeRenderer.LightGroup.LightType, LightStart = 0, LightEnd = lightCollection.Count, ShadowMapRenderer = shadowMapRenderer, ShadowMapTexturesPerLight = renderViewData.LightComponentsWithShadows, }; lightRenderer.ProcessLights(processLightsParameters); } }
private void PrepareLightGroups(RenderDrawContext context, FastList <RenderView> renderViews, RenderView renderView, RenderViewLightData renderViewData, IShadowMapRenderer shadowMapRenderer, RenderGroup group) { var viewIndex = renderViews.IndexOf(renderView); foreach (var activeRenderer in renderViewData.ActiveRenderers) { // Find lights var lightCollection = activeRenderer.LightGroup.FindLightCollectionByGroup(group); // Indices of lights in lightCollection that need processing lightIndicesToProcess.Clear(); for (int i = 0; i < lightCollection.Count; i++) { lightIndicesToProcess.Add(i); } // Loop over all the renderers in order int rendererIndex = 0; foreach (var renderer in activeRenderer.Renderers) { var processLightsParameters = new LightGroupRendererBase.ProcessLightsParameters { Context = context, ViewIndex = viewIndex, View = renderView, Views = renderViews, Renderers = activeRenderer.Renderers, RendererIndex = rendererIndex++, LightCollection = lightCollection, LightIndices = lightIndicesToProcess, LightType = activeRenderer.LightGroup.LightType, ShadowMapRenderer = shadowMapRenderer, ShadowMapTexturesPerLight = renderViewData.LightComponentsWithShadows, }; renderer.ProcessLights(processLightsParameters); } } }
private static void PrepareLightGroups(RenderDrawContext context, FastList<RenderView> renderViews, RenderView renderView, RenderViewLightData renderViewData, ShadowMapRenderer shadowMapRenderer, EntityGroup group) { foreach (var activeRenderer in renderViewData.ActiveRenderers) { // Find lights var lightRenderer = activeRenderer.LightRenderer; var lightCollection = activeRenderer.LightGroup.FindLightCollectionByGroup(group); var processLightsParameters = new LightGroupRendererBase.ProcessLightsParameters { Context = context, ViewIndex = renderViewData.ViewIndex, View = renderView, Views = renderViews, LightCollection = lightCollection, LightType = activeRenderer.LightGroup.LightType, LightStart = 0, LightEnd = lightCollection.Count, ShadowMapRenderer = shadowMapRenderer, ShadowMapTexturesPerLight = renderViewData.LightComponentsWithShadows, }; lightRenderer.ProcessLights(processLightsParameters); } }