public void Render(IGameContext gameContext, IRenderContext renderContext, ILightContext lightContext, IEnumerable <ILight> lights) { if (!_directionalLightEffect.IsReady) { return; } foreach (var ulight in lights) { var light = (IStandardDirectionalLight)ulight; var parameterSet = _directionalLightEffect.Asset.Effect.CreateParameterSet(); parameterSet["Color"]?.SetValue(lightContext.DeferredColorMap); parameterSet["Normal"]?.SetValue(lightContext.DeferredNormalMap); parameterSet["Depth"]?.SetValue(lightContext.DeferredDepthMap); parameterSet["LightDirection"]?.SetValue(light.LightDirection); parameterSet["LightColor"]?.SetValue(light.LightColor.ToVector3()); parameterSet["HalfPixel"]?.SetValue(lightContext.HalfPixel); _graphicsBlit.BlitMRT( renderContext, null, new[] { lightContext.DiffuseLightRenderTarget, lightContext.SpecularLightRenderTarget }, _directionalLightEffect.Asset.Effect, parameterSet, lightContext.LightBlendState); } }
public void Render(IGameContext gameContext, IRenderContext renderContext, ILightContext lightContext) { var parameterSet = _directionalLightEffect.Effect.CreateParameterSet(); parameterSet["Color"]?.SetValue(lightContext.DeferredColorMap); parameterSet["Normal"]?.SetValue(lightContext.DeferredNormalMap); parameterSet["Depth"]?.SetValue(lightContext.DeferredDepthMap); parameterSet["LightDirection"]?.SetValue(LightDirection); parameterSet["LightColor"]?.SetValue(LightColor.ToVector3()); parameterSet["HalfPixel"]?.SetValue(lightContext.HalfPixel); _graphicsBlit.BlitMRT( renderContext, null, new[] { lightContext.DiffuseLightRenderTarget, lightContext.SpecularLightRenderTarget }, _directionalLightEffect.Effect, parameterSet, lightContext.LightBlendState); }