static string BuildVertSource(BlurDirection dir, int length) { var sb = new StringBuilder(); var fmt = dir == BlurDirection.Horizontal ? "blurTexCoords[{0}] = texCoord0 + vec2(TexelSize * {1}.0, 0.0);\n" : "blurTexCoords[{0}] = texCoord0 + vec2(0.0, TexelSize * {1}.0);\n"; for (var i = 0; i < length; i++) { sb.AppendFormat(fmt, i, i - length); } for (var i = length; i < length * 2; i++) { sb.AppendFormat(fmt, i, i - length + 1); } return(string.Format(VertSourceFormat, length * 2, sb.ToString())); }
public BlurShader(BlurDirection dir, int kernel, double sigma) : base(BuildVertSource(dir, kernel), BuildFragSource(kernel, sigma), string.Format("blur::{0}:{1}:{2}", dir, kernel, sigma)) { }
/** Creates a new BlurEffect. * * @param direction horizontal or vertical * @param strength range 0-1 */ public BlurEffect(BlurDirection direction = BlurDirection.HORIZONTAL, float strength = 1) { Strength = strength; Direction = direction; }