Code Monkey home page Code Monkey logo

shadered's Introduction

SHADERed

SHADERed is a lightweight tool for writing and debugging shaders. It is easy to use, open source, cross-platform (runs on Windows, Linux & Web - HLSL shaders work on all three platforms) and frequently updated with new features.

Table of Contents

Features

Shader debugger

Shader debugger lets you find bugs in your shader. It is simple to use - you just pause the preview and select the pixel that you are interested in. After starting the debugger, you will be able to:

  • step through your shader code line by line
  • run immediate expressions
  • add watches
  • place (conditional) breakpoints
  • see list of all variables and their values

Compute & geometry shaders

You are not limited to vertex and pixel shaders. SHADERed also has support for compute & geometry shaders. To use GS, enable it in the shader pass' properties and set the path to your shader. You can create advanced animations and effects using geometry shaders.

You can also add compute passes alongside normal shader passes:

Plugin API

You can develop your own SHADERed plugins and upload them to our database so that they can be installed through SHADERed: link.

To see the plugin API's potential, check out:

  • GodotShaders - adds support for Godot's shading language
  • ShadertoyImporter - makes loading Shadertoy project a super easy task
  • GIFCapture - SHADERed plugin that adds the ability to capture GIFs
  • Slang - SHADERed plugins that adds support for Slang shader language

You can download them through the shadered.org website or through SHADERed's "Browse online" window.

See changes instantly

There are different ways to compile your shaders. You can: press F5 to manually recompile shader, make it recompile shaders on file modify event (which then allows you to use external editors) or make it recompile shaders when content in built-in text edtior changes:

Render states

You can modify rasterizer, blend and depth-stencil states. Using these states you can: turn on wireframe mode, disable depth test, use stencil buffer, disable culling, custom blending, etc... All these things help you achieve even more advanced effects.

3D models, textures (2D, 3D, cubemaps) & audio files

You can add music and create amazing visualizers!

Custom 3D models can also be easily added to the scene. You can also use built-in geometry objects such as cubes, spheres, planes, full screen quads, etc...

Load textures from files and bind them to your shader. SHADERed also supports cubemaps & 3D textures.

Render textures

You can render your scene to render textures. You can bind multiple render textures as output to one shader pass. This helps with creating G-Buffer and similar things. You can modify these render texture properties: size, format & clear color

Shader input variables

You can create your own variables and edit their values in real time. SHADERed also comes with lots of built-in 'system' shader variables (elapsed time, window size, various view matrices, etc...). You can change shader variable value only for a specific 3D object - no programming required.

Zooming in & pausing

Do you need to zoom in on an area of your shader output? You can do that by holding ALT and then selecting the area you want to zoom in. This can be useful when developing antialiasing shaders. It is also possible to pause the time


Shader made by The Art Of Code

And many more

Instancing, buffers, audio shaders, ability to have more than one camera, shader macros, pausing time, input layout/vertex attribute manager, export as image and image sequence, variable pointers, etc...

You can also check this list too: link.

Sponsors

Supporters

Supporter(s):

Support

Support the development of this project on Patreon:

You can support the development of this project via PayPal: Buy now with PayPal

My e-mail address for businesses (or if you just want to contact me): contact at shadered dot org

Binaries

You can download precompiled binaries through the Releases page or you can use the shadered.org website.

Install using Scoop (Windows)

On Windows, you can use Scoop to install SHADERed:

scoop bucket add extras
scoop install shadered

Install using Flatpak (Linux)

SHADERed is available on Flathub. After setting up Flatpak, you can install it by entering the following commands in a terminal:

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install --user flathub org.shadered.SHADERed -y

Note that the Flatpak version runs in a sandbox and some features may not work correctly yet. Please report Flatpak-specific issues here.

Building

First clone the project & submodules:

git clone https://github.com/dfranx/SHADERed.git
cd SHADERed
git submodule update --init

Linux

Install all the libraries that are needed:

# Ubuntu
sudo apt install libsdl2-dev libsfml-dev libglew-dev libglm-dev libgtk-3-dev
# Fedora
sudo dnf install SFML-devel glm-devel glew-devel SDL2-devel gtk3-devel

Build:

cmake .
make

NOTE: If you want immediate mode and related features, turn on BUILD_IMMEDIATE_MODE flag.

cmake -DBUILD_IMMEDIATE_MODE=ON .
make

NOTE: If you dont have SFML 2.5 installed on your machine, run these commands:

cmake -DUSE_FINDSFML=ON .
make

If you would like to perform an out-of-source build, do the following:

mkdir build
cd build
cmake .. # or, if SFML 2.5 is not installed, cmake -DUSE_FINDSFML=ON ..
make

Run:

./bin/SHADERed

macOS

NOTE: macOS is not officially supported by me + some features are not supported on macOS

Install all the libraries that are needed:

brew install sdl2 sfml glew glm

Build:

mkdir build
cd build
cmake ../
make -j8

Note: If you're building on a macOS version prior to 10.15 (Catalina) you may need to update Xcode and create a symlink for the SDK:

ln -s "$(xcrun --sdk macosx --show-sdk-path)" "$(xcrun --sdk macosx --show-sdk-platform-path)/Developer/SDKs/MacOSX10.15.sdk"

Run:

./bin/SHADERed

Windows

  1. Install SDL2, SFML, GLEW & GLM through your favourite package manager (I recommend vcpkg)
  2. Run cmake-gui and set CMAKE_TOOLCHAIN_FILE variable (and turn on BUILD_IMMEDIATE_MODE flag if you want to have immediate mode and related features)
  3. Press Configure and then Generate if no errors occured
  4. Open the .sln and build the project!

Tutorial

Don't know how or where to start? The debugger is confusing? Want to create your own shader or custom SHADERed theme? Visit the official documentation to see detailed steps on how to do these things. Or you can watch the video tutorials on YouTube.

Screenshots

Shader made by The Art Of Code

Send your own screenshots here!

Dependencies

This project uses:

Some of the examples in the examples directory were taken from AMD's Render Monkey, so credits to AMD.

LICENSE

SHADERed is licensed under MIT license. See LICENSE for more details.

shadered's People

Contributors

bagobor avatar branc116 avatar calinou avatar chances avatar ctrlcctrlv avatar curioustommy avatar define-private-public avatar dfranx avatar fnky avatar jarveson avatar justsid avatar seanballais avatar tanis2000 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.