A port of Filters4Processing to JRubyArt
A growing collection of pixel shaders ported to Processing to be used with the filter() function. Most of these shaders come from the excellent Shadertoy by Iñigo Quilez.
To run / watch shader sketches
NB: glsl files are also watched, so you can edit the shader of the sketch running in watch mode, and it will automatically reload when you save your changes...
# autorun all sketches cd filters4jruby_art rake # assume rake and processing and jruby_art installed
Run / Watch individual sketches as follows
k9 -r sketch.rb
# or k9 -w sketch.rbFilters
Barrel Blur Chroma
Barrel & Pincushion
Bicubic Filter
Bilateral Filter (denoise)
Contrast, Saturation, Brightness
Dithering
Edge filter
Usage
This is a minimal example showing how to import shader file in JRubyArt and use it as a filter.
Note: Some shaders require additional uniforms. For details, refer to the example sketches included.
attr_reader :my_filter, :my_image def settings size(512, 512, P2D) end def setup sketch_title 'My Sketch' # import an image object @my_image = load_image(data_path('texture.jpg')) # load a shader object @my_filter = load_shader(data_path('shader.glsl')) # pass the window size to the shader my_filter.set('sketchSize', width.to_f, height.to_f) end def draw background(0) # Draw the image on the scene image(my_image, 0, 0) # Applies the shader to everything that has already been drawn return if mouse_pressed? filter(my_filter) end
Notes about porting filters from Shadertoy
Shadertoy and Processing both have their own quirks when it comes to shader programming. We need to make some changes in order to make Shadertoy code work with Processing/JRubyArt. See wiki which you are welcome to edit if you know better
Now go dig for some shaders and help us extend the library of filters available for Processing/jruby_art!
Note: It is possible to port other types of shaders, but this repository focuses on filters.
Acknowledgments
Port to processing by Raphaël de Courville. Thanks to all the Shadertoy contributors for their hard work. This collection wouldn't exist without them. Thanks to Andrés Colubri for his work on the Processing Shader API.
License
All shaders from Shadertoy belong to there respective authors. Unless otherwise specified in the shader file, they are licensed under Creative Commons (CC BY-NC-SA 3.0)






