60 lines
2.0 KiB
C#
60 lines
2.0 KiB
C#
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;
|
|
EffectParameter directionalLightColorParam;
|
|
|
|
EffectParameter softnessParam;
|
|
|
|
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 Vector3 DirectionalLightColor { get; set; }
|
|
|
|
public float Softness { 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);
|
|
directionalLightColorParam.SetValue(DirectionalLightColor);
|
|
|
|
softnessParam.SetValue(Softness);
|
|
}
|
|
|
|
void CacheEffectParameters()
|
|
{
|
|
gPositionParam = Parameters["gPosition"];
|
|
gAlbedoParam = Parameters["gAlbedo"];
|
|
gNormalParam = Parameters["gNormal"];
|
|
|
|
eyePositionParam = Parameters["EyePosition"];
|
|
directionalLightDirectionParam = Parameters["DirectionalLightDirection"];
|
|
directionalLightColorParam = Parameters["DirectionalLightColor"];
|
|
|
|
softnessParam = Parameters["Softness"];
|
|
}
|
|
}
|
|
}
|