using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; namespace Kav { public class Deferred_ToonEffect : Effect { EffectParameter gPositionParam; EffectParameter gAlbedoParam; EffectParameter gNormalParam; EffectParameter eyePositionParam; EffectParameter directionalLightDirectionParam; public Texture2D GPosition { get; set; } public Texture2D GAlbedo { get; set; } public Texture2D GNormal { get; set; } public Vector3 EyePosition { get; set; } public Vector3 DirectionalLightDirection { get; set; } public Deferred_ToonEffect(GraphicsDevice graphicsDevice) : base(graphicsDevice, Resources.Deferred_ToonEffect) { CacheEffectParameters(); } protected override void OnApply() { gPositionParam.SetValue(GPosition); gAlbedoParam.SetValue(GAlbedo); gNormalParam.SetValue(GNormal); eyePositionParam.SetValue(EyePosition); directionalLightDirectionParam.SetValue(DirectionalLightDirection); } void CacheEffectParameters() { gPositionParam = Parameters["gPosition"]; gAlbedoParam = Parameters["gAlbedo"]; gNormalParam = Parameters["gNormal"]; eyePositionParam = Parameters["EyePosition"]; directionalLightDirectionParam = Parameters["DirectionalLightDirection"]; } } }