Hey,
we (@lecloneur & me) have just released a new version of VL.Addons which (at least for now) contains the all new Texture FX+.
Compute Inputs
Nearly all inputs are now of type compute.
This allows to use the texture output of one effect to be used as input parameter for another (via ColorMap, ValueMap and the various ShaderFX Vector and Operation nodes).
There is currently one snag, while floats & vector types can be input directly via io-box you have to use a ColorIn node to input a color. Chances are good though that this is going to be rectified soonish.
Wrappers
All shader files are made Internal and are wrapped in a class. Those classes all implement the interface ITextureFX and depending on their “catgory” additionally either IFilter, IMixer or ISource. (Utils currently are either IFilter or ISource). While ITextureFX comprises the operations and parameters that are common to all TFX, the others contain those that are only available in their respective category. Also all (most) TFX have another member operation called SetParameters which is not part of any interface and specific to the particular node.
For filters that consist of more than one shader file aka “mulitpass” we were not quite sure on which member operation (Update, SetTexture, GetTexture) to pass the texture between the shaders and would really appreciate some feedback on this.
The interfaces are Advanced so you’ll only see them if the respective checkbox in the node browser is checked.
To see an application of the interfaces check the explanation patch called “Strategy Pattern”.
For those who want to add their own effects :
There are templates for Filter, Mixer and Source that can be found in those same categories in a comment inside the definitions.
Please use them since it makes sure that the colors of the member operations stay consistent.
What you’ll get
With this release we are just shy of 200 nodes (199 tbp). The bulk are TextureFX with some ShaderFX sprinkled on top.
SFX Node List
- ColorMap
- ColorMatrix [same as TFX with ComputeFloat4 as in/output instead of texture]
- Invert [currently broken, enum doesn’t update seems to be a vvvv bug]
- Transform (Color) [currently broken, also most likely caused by a vvvv bug]
- ValueMap
- Vector2
- Vector3
- Vector4 (Vector2)
TFX Node List
Sources
- BubbleNoise
- Checkerboard
- Color
- ColorPalette
- Electricity
- Emboss
- Gradient
- Grain
- Halo
- Halo (Gradient)
- Halo (Rectangle)
- Hex
- JoinChannels
- Lava
- Liquish
- Mandelbrot
- Neurons
- Noise
- Perlin
- Pillow
- Plasma
- QuasiCrystal
- Reaction Diffusion
- Square
- TexCoord
- Voronoi
- Voronoi (Border)
- Voronoi (Dots)
- Voronoi (Inside)
- Voronoise
Mixers
- BandedSwirl
- Blend
- Blind
- Blood
- Circle (Reveal)
- Circle (Stretch)
- Dissolve
- DropFade
- Leaking
- Ripple
- Slide
- Wave
Filters
- AdaptiveSharpen
- Anaglyph
- AngularFlow
- ASCII
- AutoColor
- Average
- BackgroundSubtraction
- Bias
- Blur
- Blur (Directional)
- Blur (Flow)
- Blur (Glow)
- Blur (Max)
- Blur (Mips)
- Blur (Noise)
- Blur (NoMips)
- Blur (Radial 3D)
- Blur (Radial)
- Blur (Perfector)
- Bump
- CameraMotionBlur [currently broken]
- CartesianToPolar
- Cartoon
- Charcoal
- Clamp
- Colorama
- ColorGrading
- Colorize
- ColorMatrix
- ColorWaveShaper
- ComputeFeedback
- ConvertColor
- ConvertColorspace
- Convolution
- Crop
- CrossStitch
- CRT
- DeBayer
- DeInterlace
- Dilate
- Displace
- Displace (Channel)
- Displace (Echo)
- Displace (Height)
- Displace (Warp)
- Distort (Flow)
- Distort (Sin)
- Dither
- Dithering (Noise)
- Dots
- DropShadow
- Droste
- Echo
- Edge
- Emboss
- Erode
- FluidSolver
- FrameDifference
- Frost
- Garbage
- GetChannel
- Glitch
- Glow
- Glow (Radial)
- GradientMap
- Grain
- Growth
- Halftone
- Hatch (Square)
- Hatch (Cross)
- Hatch (Dot)
- Hatch (FromTexture)
- Hatch (Line)
- Hexagonize
- Highlights
- HighPass
- HSCB
- Invert
- Kaleidoscope
- Keying (Channel)
- Keying (Chroma)
- Keying (Luma)
- Levels
- Light (2d)
- LinearDepth
- Lomograph
- Magnify
- MapColor
- Median
- Metallica
- Midtones
- Mosaic
- Muffy
- NormalGlow
- NormalMap
- OldGlass
- OpticalFlow
- OpticalFlow (HS)
- OpticalFlow (LK)
- PhotoFilm
- PolarToCartesian
- Posterize
- Pulse
- Quantize
- RemoveGrain
- Resize
- Ringbuffer
- Rotate
- Scale
- Scanline
- Seamless
- SetAlpha
- SetChannel
- Shadow (Height)
- Shadows
- Sharpen
- ShiftRGB
- Sift (HSV)
- SpreadSampling (Circle)
- SpreadSampling (Linear)
- SpreadSampling (Random)
- Swizzle
- Threshold
- Threshold (Discard)
- Tiles
- Tonemap
- Tonemap (Exponential)
- Tonemap (Filmic Alu)
- Tonemap (Filmic U2)
- Tonemap (Linear)
- Tonemap (Logarithmic)
- Tonemap (Logarithmic Drago)
- Tonemap (Reinhard)
- Tonemap (Reinhard Modiefied)
- Transform
- Transform (Color)
- Transform (ColorChannel)
- Translate
- TriColor
- Tunnels
- Twirl
- Undistort
- UnPremultiply
- UnsharpMask
- UVDilate
- Vibrance
- Wave (Warp)
- Wave
The filters are sorted into sub categories. Some of these “classifications” we are not entirely sure of. If you have some opinion on that please give us a shout (see getting involved below).
All nodes come with a reference patch.
HowTo use it
The most convenient way is of course to just install the nuget:
nuget install VL.Addons
For more information on how to use nugets with VL, see Managing Nugets in the VL documentation.
Another possibility is to download a zip of the addons repo, unzip it to some place you like and then reference one of the following files in your document:
- VL.Addons, if you want to have all addons at hand
- VL.Addons.Stride, if you only care for the TFX
If you want to go fully ascetic (and don’t need the whole interface shebang) just copy the shaders folder beside the document you want to use the shaders in.
Getting involved
The Reference patches are pretty barebones and could do with some more love and if you look closely at the node list above there are 3 nodes that are not working properly right now.
Also although we tried our best to double and triple check everything there are more bugs to be found for sure.
With two of them (ShaderFX) most likely only the devvvvs can help since they seem to be caused by vvvv (will make a proper bug report soonish).
But when it comes to the patches and maybe broken TFX we’d like to “harness the power of the community”. Please go through all the Reference patches and check if they are working and/or can be improved, for example by adding more in-depth explanations.
What is more, while we tried to port everything we could find, there are still some nuggets we just didn’t have the resources for anymore like:
A lot of stuff in mp.dx and probably things from the contributions page, the addon pack and dx11-vvvv-girlpower.
So if you encounter a bug, have a feature wish or want to add a new effect please head over to github create an issue and ideally also a pull request addressing that issue. For some more info on how to contribute to a library check the gray book.
If you have general questions please make a forum post.
For urgend stuff join the chat .
That said, please bear in mind that we did this whole thing in our spare time without any compensation and it is provided as is. We can’t prioritize fixing bugs over our day jobs (though we are of course available for hire :)
Cheers!