diff --git a/orx-fx/README.md b/orx-fx/README.md new file mode 100644 index 00000000..922f23c8 --- /dev/null +++ b/orx-fx/README.md @@ -0,0 +1,90 @@ +# orx-fx + +orx-fx contains ready-to-use effects, or filters, for OPENRNDR. The provided filters are based on OPENRNDR's [`Filter` class](https://api.openrndr.org/org.openrndr.draw/-filter/index.html) and most will have [orx-parameters](https://github.com/openrndr/orx/tree/master/orx-parameters) annotations such that they can easily be used in combination with tools such as [orx-gui](https://github.com/openrndr/orx/tree/master/orx-gui). + +All filters provided by orx-fx assume pre-multiplied alpha inputs, which is OPENRNDR's default. + +## Effects index + +Here's a (potentially incomplete) list of the effects provded by orx-fx. + +### Anti-alias + + * `FXAA`, fast approximate anti-aliasing. + +### Blends + +Blend filters take two inputs ("source" and "destination"), they are intended to be used in `orx-compositor`'s layer blend. All blend filters are opacity preserving. + +#### Photoshop-style blends + - `ColorBurn` + - `ColorDodge` + - `Darken` + - `HardLight` + - `Lighten` + - `Multiply` + - `Normal` + - `Overlay` + - `Screen` + - `Add`, add source and destination inputs + - `Subtract`, substract destination color from source color + +#### Porter-Duff blends + - `SourceIn`, Porter-Duff source-in blend, intersect source and destination opacity and keep source colors + - `SourceOut`, Porter-Duff source-out blend, subtract destination from source opacity and keep source colors + - `DestinationIn`, Porter-Duff destination-in blend, intersect source and destination opacity and keep source colors + - `DestinationOut`, Porter-Duff destination-out blend, subtract destination from source opacity and keep destination colors + - `Xor`, Porter-Duff xor blend, picks colors from input with highest opacity or none with opacities are equal + +#### Various blends + - `Passthrough`, pass source color and opacity. + +### Blurs + +Most blur effects are opacity preserving + + - `ApproximateGaussianBlur`, a somewhat faster but less precise implementation of `GaussianBlur` + - `Bloom`, a multi-pass bloom/glow effect + - `BoxBlur`, a simple but fast box blur + - `GaussianBlur`, a slow but precise Gaussian blur + - `HashBlur`, a noisy blur effect + +### Color + - `ChromaticAberration`, a chromatic aberration effect based on RGB color separation + - `ColorCorrection`, corrections for brightness, contrast, saturation and hue + - `ColorLookup`, Color LUT filter + - `ColorMix`, filter implementation of OPENRNDR's color matrix mixing + - `LumaMap`, maps luminosity to two colors + - `LumaOpacity`, maps luminosity to opacity but retains source color + - `LumaThreshold`, applies a treshold on the input luminosity and maps to two colors + - `SubtractConstant`, subtract a constant color from the source color + +### Distortion + +All distortion effects are opacity preserving + + - `BlockRepeat` - repeats a single configurable block of the source input + - `StackRepeat` - repeats the source input in a stack fashion + - `HorizontalWave` - applies a horizontal wave effect on the source input + - `VerticalWave` - applies a vertical wave effect on the source input + +### Dither + - `ADither` - a selection of dithering effects + - `CMYKHalftone - a configurable CMYK halftoning effect + + ### Edges + - `LumaSobel` - A Sobel-kernel based luminosity edge detector + + ### Grain + - `FilmGrain` - adds film-like grain to the source input + + ### Shadow + - `DropShadow` - adds a drop shadow based on the opacity in the input image + + ### Tonemap + - `Uncharted2Tonemap` - implements the Uncharted2 tonemapper + + ### Transform + - `FlipVertically` - flips the source input vertically. + +