/Shadertoys

Shadertoy.com WebGL shaders converted to DCTL Fuses for use with DaVinci Resolve.

Primary LanguageLuaOtherNOASSERTION

Shadertoys

GitHub release License

DCTL shader fuses for use within Fusion and/or DaVinci Resolve's Fusion page (aka "DaFusion"). These are based on WebGL shaders released on Shadertoy.com with a license that allows for porting (see each Fuse's source code for the respective license information); please note that neither we are related to Shadertoy.com, nor is this an official Shadertoy.com repository; but we are obviously and definitely huge fans of this amazing website!

Furthermore must be mentioned that this repository is only an incubator to develop such fuses and to exchange on experiences, approaches and solutions. If you are searching for production ready extensions to really use for your day to day work, then the Reactor is the right and de facto go to place for you. As soon as an implementation in this repo achieves an appropriate maturity we will suggest it for inclusion into the Reactor - thereby Reactor is the one and only source for the outcomes and stable versions of our experiments. You should find the stable Fuses in Reactor under the same name but without any of the annoying 'ST_', 'BETA_', whatsoever prefixes.

See the following videos to get an idea what these Fuses look like:

Demo 1
Demo 2
Demo 3
Demo 4
Demo 5
Demo 6
Demo 7
Demo 8
Demo 9
Demo 10
Demo 11
Demo 12
Demo 13
Demo 14
Demo 15
Demo 16
Demo 17
Demo 18
Demo 19
Demo 20
Demo 21
Demo 22
Demo 23
Demo 24

This code is mainly based on the work of Chris Ridings and his Guide to Writing Fuses for Resolve/fusion and the FragmentShader.fuse from his Davinci Resolve Page Curl Transition article; Bryan Ray, who did a whole series of blog posts on OpenCL Fuses; JiPi, who did an excellent post on how to Convert a Shadertoy WebGL Code to DCTL accompanied by a (German) DCTL Tutorial video. As an introduction and if you want to know more about shaders in general, a look into The Book of Shaders is highly recommended. Again the We Suck Less forum is the place where you will find tons of information and all the experts. And last but not least are all these fuses based on work shared by those wonderful people on Shadertoy.com.

JiPi nmbr73

Shader of the week

On the home page of ShaderToy.com the "Shader of the Week" is presented. As far as this can be converted to DCTL, the fuse is published here. Shader of the Week

Current Shader of the Week (08th of November 2022):

GenerativeArtDeco4

Fuses

See Shaders/ for a list of all shaders implemented so far - resp. the Overview to have with thumbnails a more 'visual experience'. In particular you may want to have a look at WorkInProgress/ to see what's coming next! And if you want to build shaderfuses yourself, you can see here which projects have already been started: Shaderfuseattempts.

Latest Conversions

MountainsLakes AnisotropicBlurImage HappyBouncing ShareX GrowingWeatheringRocks Dynamism LearningReationDiffusion Oblivion ProceduralWalkAnimation MightyMorphingPowerSphere HeavenAndHell Rendezvous

Installation

Download ZIP

Reactor

Best way to install the Fuses is to just use Reactor. Find the 'Shadertoys' package in the - guess what - 'Shaders' category. This is the most convenient and recommended way to if you just what to use them or have a quick look if they might be useful for you.

Only thing to take into account is that this way you don't get the latest development versions. Stable toys are bundled from time to time and integrated in Reactor when reviewed.

Repository

Just clone the whole repository into a folder where it can reside. Drag'n'drop the Tools/Setup.lua onto your DaFusions working area. Select 'Use Fuses under Shaders straight out of the repository'. Save this setting and restart the application. See the Tools/README.md for further information.

This is the installation method recommended if you want to have with a single git pull all the latest development versions at hand. And in particular it is the way to go if you want to work on the code and contribute to the repository yourself.

ZIP-File

Find on GitHub Pages the Links to download the full .tar.gz or .zip archive. After unpacking you can copy the whole Shaders/ folder into your Fuses directory or pick and choose only single .fuse files you want to keep.

Usage

In the Fusion page of DaVinci Resolve right click into the working area. In the context menu under 'Add tool' you'll find a 'Shadertoys/' submenu. That submenu corresponds to the repository's directory structure and provides access to all fuses installed.

Alternatively you can open the 'Select Tool' dialog (Shift+Space Bar) and start typing "ST-" to filter for all our shadertoy fuses.

And last but not least in 'Effects' (Fusion) resp. the 'Effects Library' (DaVinci Resolve) pane under 'Tools' you should now find an entry 'Shadertoys' that lists all the categories and the different fuses.

Audio Shader

Shaders that use audio data (wave and frequency) over an image for display. Shadertoy provides an interface consisting of an image (512*2 pixels). One line contains 512 sampled waveform values ​​belonging to the current frame and the second line contains the FFT (Spectrum) values. This interface can also be implemented in Resolve/Fusion. The AudioWaveform.fuse generates the corresponding image from a loaded WAV file. The AudioWaveform has a second output for this. This Output is connected to an AudioShaderfuse-Input.

Download Installer

Here are the AudioShaderfuses:

InerciaIntended

Cubemap Shader

These are shaders that require a cubemap as input. nmbr73 created a tool to provide a cubemap for the shader fuses.

Download Installer

Here are the cubemap shader fuses:

Contribute

Discord GitHub Watchers GitHub Stars GitHub Forks

Just fork this repository, have fun and send your pull requests. See also the Wiki (under construction) for some more details on how to port GLSL to DCTL. For further information meet us on the DaVinci Resolve Plug-in Developers Discord server.