Shaders/Colorblind/ColorblindEffect.cs
using Sandbox;
using Sandbox.Rendering;
public sealed class ColorblindEffect : BasePostProcess<ColorblindEffect>
{
public enum ColorblindMode
{
Normal,
Protanopia,
Deuteranopia,
Tritanopia
}
[Property]
public ColorblindMode Mode { get; set; } = ColorblindMode.Normal;
public override void Render()
{
Attributes.Set( "ColorMode", (float)Mode );
Log.Info( (int)Mode );
var customShader = Shader.Load( "shaders/postprocess/colorblind.shader" );
if ( customShader == null ) return;
var mat = Material.FromShader( customShader );
var blit = BlitMode.WithBackbuffer( mat, Stage.AfterPostProcess, 200, false );
Blit( blit, "Colorblind PP" );
}
}