Welcome, Guest. Please login or register.

Author Topic: ShaderJoy Pack: Big set of Shadertoy's shaders  (Read 1557 times)


0 Members and 1 Guest are viewing this topic.

Offline kas1eTopic starter

ShaderJoy Pack: Big set of Shadertoy's shaders
« on: April 27, 2021, 09:46:55 PM »

NOTE1: Radeon RX users - BE SURE that you set Prefs: PowerManagment to HIGH! Automatic PowerManagment in Radeon RX drivers works wrong probably due to not having
           DMA in the driver and as result resources didn't raise when needed, which causes low FPS. So you should set it to HIGH, save, reboot, and then you will
           have the maximum possible FPS from your Radeon RX. Not doing this will cause lower your FPS quite a lot !!!

NOTE2: The minimum requerements are:

   -- Warp3DNova.library >= v1.83
   -- ogles2.library >= v3.1
   -- RadeonHD >= 3.7 or RadeonRX >= 2.4 (with Prefs:PowerManagment set to HIGH)

... First words ...

Q: What is ShaderJoy?
A: ShaderJoy is a powerful tool written by Juha 'Capehill' Niemimäki which allow you to display and create ShaderToy
   (https://www.shadertoy.com) compatible fragment shaders. It's true AmigaOS4 native app, with supporting tooltypes,
   native Amiga GUI (of course), all sort of verbose logging, inbuild editor (as well as the ability to set external one),
   fully controlled and so on.
   Hats off to Capehill, Hans and Daniel!
Q: What is Fragment Shaders?
A: Fragment shaders (sometimes called pixel shaders) are programs that are executed per fragment (pixel) on the GPU.

Q: On what AmigaOS4 hardware it will work?
A: On any which have the ability to utilize Radeon HD or Radeon RX cards with ogles2.library and warp3dnova.library installed.
   That mean sam440, sam460, x1000, x5000 and still-in-beta Tabor. Pegasos2 and Micros are out of luck.

Q: So what that pack about then?
A: It just collection of about 2000 working shaders, grouped, sorted, coming with tasty readme about how to handle Dbl-click on shaders and their project files,
   with Mason icons done specially for, and with a detailed list of all shader with a name and link to the original Shadertoy database.

Q: Why make a fuzz about and post as news?
A: Because it's quite cool. Think about it like you got 2000 screensavers of good quality just at one time. And the more people know about the progress we reach on the 3D front the better.

... Long Story ...

After Capehill made his awesome ShaderJoy tool to work with fragment shaders, a lot of time was spent to bug-report and bug-fix Warp3DNova, so as of now,
we can handle about 70-80% of ShaderJoy shaders. While still some work to be done on Warp3DNova front for remaining parts, and Capehill improve ShaderJoy all the time,
still the amount of working shaders is high and growing.

As you can see this pack is not a game, or a port of anything, is just a big set of ShaderJoy compatible shaders in a tasty archive from http://shadertoy.com.
Shaders collected during warp3dnova/ogles2 tests in the last year in the light of gazillion bug fixes in the Warp3DNova. Everything grouped, sorted, noted original links to original shaders, etc.
Some of them were fixed by getting rid of original bugs (like, lot of not initialized values while should, etc) which showups only on AmigaOS4, but still general bugs which we report and authors
usually fix them.

Of course in this pack, I choose only "normal" ones, which look good and interesting, and not the crap-test ones.

Archive includes:

1. ~1250 plain shaders
2. ~320 shaders with texture usage
3. ~30 multipass shaders
4. A tasty readme how to setup #?.frag (pure shader fragment files) and #?.sjp (Shaderjoy project files for multipass and textured shaders) for a double click
5. All icons (include default ones for the system) done by Mason (hats off to Mason one more time!)

You also have 3 text files in the "shaders" directory, each one is the list of shaders numerated with the links to original Shadertoy versions on their site.

... Running ...

You need to download ShaderJoy and make default icons for #?.frag and #?.sjp files. And that all. So:

1. Download ShaderJoy from http://osdepot.net as usual: http://os4depot.net/share/graphics/viewer/shaderjoy.lha
WARNING: Version 1.21 is 100% necessary and MINIMUM to make all works correctly. If you have an older version, UPDATE, or things will work wrong!

2. Download ShaderJoy_Pack from http://osdepot.net as usual (currently in the upload query).

  -- In the archive, you will find in directory "deficons" def_fragmentshader.info & def_shadertoy_project.info. Copy them to system:prefs/Env-Archive/Sys/
  -- In the tooltypes of copied files (in both of them, of course) change in the "default tool" path to your Shaderjoy binary (remember, it should be not less than 1.21 for now!)
  -- In the system:prefs/deficons create new macro class called "3D" and in it create new entries: "fragmentshader" with action: pattern #?.frag and  "shadertoy project" with action : pattern #?.sjp.

  -- reboot and you will be able to double-click on .frag and on .sjp icons to run it via Shaderjoy.

3. !NOTE!: For multipass and textured shaders Dbl-click on project (#?.sjp) files: in a project, files described what textures, filters, and channels are used. Without running .sjp file in Texture
and Multipass shaders you will be in needs to set everything manually. When it's about 10 textures, and 4 buffers, you will die until you do so. So, clicking on .sjp is a must![/b]

Nothing else needs. Just run your favorite music, and enjoy clicking on shaders one by one (or simple d&d them one by one).

... Final words ...

In the end, you can see how the older version of ShaderJoy 1.8 looks like almost a year ago:

Youtube video of ShaderJoy 1.19 in action on AmigaOS4, 1920x1080 full HD

... Outro ...

As usual, want to give some credits where they should be:

to Daniel for OpenGL ES2 and all his help with everything: http://www.goldencode.de/
to Hans for Warp3DNova, 2D drivers, and all his help with everything: https://keasigmadelta.com/
to Capehill for never ended work on SDL1/2, glSnoop, ShaderJoy, and all his help with everything: https://github.com/AmigaPorts/SDL https://github.com/capehill/glsnoop
to AEON/AmigaKit because of which we have OpenGL ES2 and Warp3DNova: https://www.facebook.com/AEonTechnologyLtd/