Code/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" );
	}
}