public override void ProcessLights(ProcessLightsParameters parameters)
        {
            // Sum contribution from all lights
            var ambientColor = new Color3();
            for (int index = parameters.LightStart; index < parameters.LightEnd; index++)
            {
                var light = parameters.LightCollection[index];
                ambientColor += light.Color;
            }

            // Store ambient sum for this view
            lightShaderGroup.AmbientColor[parameters.ViewIndex] = ambientColor;
        }
        /// <inheritdoc/>
        public override void ProcessLights(ProcessLightsParameters parameters)
        {
            for (int lightIndex = parameters.LightStart; lightIndex < parameters.LightEnd; lightIndex++)
            {
                // For now, we allow only one cubemap at once
                var light = parameters.LightCollection[lightIndex];

                // Prepare LightSkyBoxShaderGroup
                LightSkyBoxShaderGroup lightShaderGroup;
                if (!lightShaderGroupsPerSkybox.TryGetValue(light, out lightShaderGroup))
                {
                    lightShaderGroup = pool.Add();
                    lightShaderGroup.Light = light;

                    lightShaderGroupsPerSkybox.Add(light, lightShaderGroup);
                }
            }
        }
 public abstract void ProcessLights(ProcessLightsParameters parameters);