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);