Implements a modifier for blurring effects.

Constructors

BlurValueModifier

#
public BlurValueModifier(ValueShader basisShader, double radius0, double radius1, Angle angle)
Create a new blur shader.
basisShader (ValueShader)Value shader to blur.
radius0 (double)First radius (horizontal).
radius1 (double)Second radius (vertical).
angle (Angle)Counter-clockwise rotation of blur axes (in radians).

Fields

_basis

protected readonly ValueShader _basis
Shader to operate on.
inherited fromValueShaderModifier

Methods

Dilate

public ValueShader Dilate(double sx, double sy)
Apply a dilation (or scaling) transformation to this shader.
inherited fromValueShader
sx (double)Horizontal dilation.
sy (double)Vertical dilation.
Dilated shader.

Flip

protected double Flip(double value, double limit)
Repeat and flip a value within a [0, limit] domain.
inherited fromValueShader
value (double)
limit (double)

Flip

protected float Flip(float value, float limit)
Repeat and flip a value within a [0, limit] domain.
inherited fromValueShader
value (float)
limit (float)

Rotate

public ValueShader Rotate(Angle angle)
Apply a rotation transformation to this shader.
inherited fromValueShader
angle (Angle)Rotation angle (counter-clockwise).
Rotated shader.

Transform

public ValueShader Transform(Transform2D transform)
Apply a custom transformation to this shader.
inherited fromValueShader
transform (Transform2D)Transformation.
Transformed shader.

Translate

public ValueShader Translate(double dx, double dy)
Apply a translation transformation to this shader.
inherited fromValueShader
dx (double)Horizontal translation.
dy (double)Vertical translation.
Translated shader.

ValueAt

#
public override float ValueAt(Ray ray, IObjectStack stack)
Evaluate this shader at a specific ray location.
ray (Ray)Coincident ray.
stack (IObjectStack)Object stack context.