Audio (334) Datatype (50) Demo (199) Development (582) Document (21) Driver (97) Emulation (145) Game (952) Graphics (488) Library (108) Network (224) Office (62) Utility (886) Video (65)
Total files: 4213
Full index file Recent index file
Amigans.net OpenAmiga Aminet IntuitionBase
|
Shaderjoy | Description: | Display fragment shaders | Download: | shaderjoy.lha (TIPS: Use the right click menu if your browser takes you back here all the time) | Size: | 4Mb | Version: | 1.22 | Date: | 09 Jan 2022 | Author: | Juha Niemimaki | Submitter: | Juha Niemimaki | Homepage: | http://capehill.kapsi.fi | Requirements: | OpenGL ES 2.0, Warp3D Nova | Category: | graphics/viewer | Replaces: | graphics/viewer/shaderjoy.lha | License: | Freeware | Distribute: | yes | Min OS Version: | 4.1 | FileID: | 11909 | | | Snapshots:
| Videos:
 |
| Comments: | 5 | Snapshots: | 1 | Videos: | 1 | Downloads: | 59 (Current version) | | 624 (Accumulated) | Votes: | 23 (0/0) (30 days/7 days) | |
# Shaderjoy 1.22
Shaderjoy allows you to display and create Shadertoy (https://www.shadertoy.com)
compatible fragment shaders. Fragment shaders (sometimes called pixel shaders)
are programs that are executed per fragment (pixel) on the GPU.
## Requirements
Ogles2.library 3.1.
Warp3D Nova 1.83.
## Usage
- Load/Save/Create new shader using RMB menu.
- Load/Save/Create new project using RMB menu.
- Reload shader using RMB menu or 'r' key.
- Drop shader file (.frag) into the window.
- Drop project file (.sjp) into the window.
- Load texture (or select buffer) channel using RMB menu.
- Add/Remove Common/Buffer A-D tabs.
- Select VSYNC method using RMB menu.
- Toggle fullscreen mode with LMB double-click, using RMB menu or 'f' key.
- Toggle FPS counter using RMB menu.
- Toggle verbose logging using RMB menu.
- Toggle special shader debug logging using RMB menu (requires ogles2.library
version 3).
- Toggle pause mode with SPACE key.
- Save a screenshot using RMB menu or 's' key.
## Vertical sync method
- WaitTOF: interrupt-based (*)
- WaitBOVP: busyloop (*)
- Disabled: do not limit frame rate
*) as explained in the Graphics.library Autodoc.
## Supported uniform variables
- vec3 iResolution: the window size in pixels (xy).
- vec4 iMouse: x/y have the mouse coordinate if LMB is pressed, z/w have the
original mouse coordinate when "dragging" started.
- float iTime: second.microsecond.
- float iTimeDelta
- int iFrame: current frame number, starting from 0.
- float iFrameRate
- sampler2D iChannel0...3: texture.
- vec3 iChannelResolution[4]: texture width (x) and height (y).
- vec4 iDate: year (x), month (y), day (z) and seconds (w).
## Tooltypes
- LOGLEVEL: one of DETAIL, DEBUG, INFO, WARNING or ERROR.
- CHECKUNINITIALIZED: let ogles2.library find uninitialized variables in shader
code.
- SHADERDEBUG: enable detailed shader debug log.
- VSYNC: enable vertical sync.
- SHOWFPS: display FPS counter in fullscreen mode.
- FULLSCREEN: start in fullscreen mode.
- EDITORVIEW: enable shader code editor in window mode.
- SCREENMODE: override system resolution in fullscreen mode.
- FONTNAME: editor font name.
- FONTSIZE: editor font size.
- EDITORNAME: external editor, for example NotePad.
- AUTORELOAD: monitor current shader source file and reload on change.
- WINDOWSIZE: window inner size.
- FLOATTEXTURE: FBOs use floating point texture, instead of unsigned byte.
## Multipass rendering
|- iChannel0
|- iChannel1
Common----> Buffer A/B/C/D -*- iChannel2
| | |- iChannel3
| v
| |- iChannel0 (buffer/texture)
v |- iChannel1
Window - Image shader -*- iChannel2
|- iChannel3
## Project files
Shaderjoy project files (.sjp) are text files that connect shaders and channel
inputs together. Project
file can be created by loading shader program(s) and textures and then saving
the project file.
If you end up modifying project files by hand, be careful: file parser is
case-sensitive and simple.
## ARexx commands
- QUIT: exit program. Example: rx "ADDRESS SHADERJOY.1 QUIT".
## Known issues
- Many Shadertoy shaders don't work properly:
- Future driver update will improve situation.
- Some shaders rely on undefined behaviour.
- Buffer A...D dynamic range is limited to 0...1.0, because floating point
textures are not used yet.
- Rendering order is from Buffer A to D (instead of the loading order).
## TODO
- Audio support (sound shaders, audio playing, FFT...)
- Keyboard support
- Better Shadertoy compatibility
## Changes
1.22
- Add LOGLEVEL tooltype.
- Add ARexx port.
- Add twister and tunnel shaders.
- Check CTRL-C signal during event handling.
- Display VSYNC status on window info bar.
- Fix issue with FPS counter when starting in fullscreen mode.
|