Skip to main content

Glow Filter Component

Component Screenshot

Overview

This component adds a visual glow effect to the UI object it is applied to.

WebGL Demo

Properties

Component Screenshot

Property                            Type    Range    DefaultDescription
Alpha Threshold
    MinInt[0..255]0The minimum alpha value to consider as pure background. Only needs to be set when your source image has low alpha values / noise you want to exclude.
    MaxInt[0..255]255The maximum alpha value to consider as pure foreground. Only needs to be changed when your source image has high alpha values / noise you want to exclude.
Distance
    Edge SideEnumBothThe side of the graphic edge that the glow occupies. Options are:
Both - Grow both inside and outside.
Inside - Only grow inside.
Outside - Only grow outside.
    ShapeEnumCircleThe shape of the glow. Options are:
Square - Useful when you don't want rounded glow.
Diamond - Pointy sharper glow.
Circle - Useful for rounded glow and usually the best option.
    Max DistanceFloat[0..1024]128.0The maximum distance the glow can travel. Higher values generate a larger glow which can be more GPU intensive.
    Reuse Distance MapBoolFalseThe distance map try not to regenerate (expensive). This requires Blur == 0. Changing distancemap settings, or changing the size of the source graphic will cause it to regenerate. This is an ideal optimisation for content that doesn't change or transform.
Falloff
    ModeEnumExponentialSpecifies which options to use to control the falloff of the glow. Options are:
Exponential - A procedural exponential function is used to generate a glow with natural looking falloff.
Curve - A user controlled curve is used to control the falloff. This option is generally less realistic but can be used for more artistic control or alternative styles.
    EnergyFloat[1..16]4.0How much energy the glow has. This corresponds to how bright the glow is. This energy is dissipated using the FallOff value. Higher values generate a larger glow which can be more GPU intensive.
    PowerFloat[1..8]2.0The rate at which the energy dissipates. Lower values generate a larger glow which can be more GPU intensive.
    OffsetFloat[-inf..inf]0.0An artistic control to offset the glow.
    CurveCurveA curve that controls the falloff rate.
Fill
    ModeEnumColorSpecifies how to fill the color of the glow. Options are:
Color - A single color is used.
Texture - A texture containing a horizontal gradient is used to color the glow. Left to right corresponds to going from the edge to the outside of the glow.
Gradient - A gradient is used to color the glow. Left to right corresponds to going from the edge to the outside of the glow.
    ColorColorWhiteThe color of the glow.
    TextureTextureWhiteThe texture used to specify a horizontal gradient to color the glow.
    GradientGradientA gradient used to color the glow.
    OffsetFloat[-1..1]0.0In Texture and Gradient fill modes, this biases which side of the gradient to use for coloring.
    GammaFloat[0..10]1.0In Texture and Gradient fill modes, this creates exponential biasing of the gradient.
    ReverseBoolFalseIn Texture and Gradient fill modes, this creates reverses the gradient.
Blur
    BlurFloat[0..28]0.0Optionally blur the glow.
Apply
    Noise ScaleFloat[0..10]1.0Amount to scale the noise (useful for hiding banding artifacts especially in dark regions). Set to zero to disable this shader feature.
    AdditiveFloat[0..1]1.0Controls the blending mode used to blend the glow over the source graphic and background. 0.0 uses a standard alpha blend, 1.0 uses an additive blend.
    Source AlphaFloat[0..1]1.0Fades the source Graphic.
    StrengthFloat[0..1]1.0Strength of the effect.
    Render SpaceEnumCanvasWhich coordinate system use when rendering this filter. Options are:
Canvas: Render the filter before any transforms (scale/rotation/translation etc) are applied.
Screen: Render the filter after transforms have been applied.
Read more about this property here.
    ExpandEnumExpandWhether to expand the Graphic area to accommodate this filter overflowing the original bounds. Setting this to None can be useful when applying effects to content you want to enclose in a frame using something like the FrameFilter component.

Usage

Add this component to any GameObject that contains a UI Graphic component (eg Text, Image, RawImage, etc). The object will now render with glow.

Usage with TextMeshPro

To use this filter effect with TextMeshPro - Text (UI) use the Filter Stack (TextMeshPro) component.

Examples

Scripting

Namespace

The namespace
using ChocDino.UIFX;

Adding the GlowFilter Component

Add the GlowFilter component to your GameObject
// Add the component to your GameObject and set default properties
var glow = AddComponent<GlowFilter>();

glow.BeginPropertyChange();
glow.AlphaMin = 0;
glow.AlphaMax = 255;
glow.EdgeSide = EdgeSide.Both;
glow.DistanceShape = DistanceShape.Circle;
glow.MaxDistance = 128f;
glow.FalloffMode = GlowFalloffMode.Exponential;
glow.ExpFalloffEnergy = 4f;
glow.ExpFalloffPower = 2f;
glow.ExpFalloffOffset = 0f;
glow.FillMode = GlowFillMode.Color;
glow.Color = Color.White;
glow.Blur = 1f;
glow.NoiseScale = 1f;
glow.Additive = 1f;
glow.SourceAlpha = 1f;
glow.Strength = 1f;
glow.EndPropertyChange();