Shaders
Jump to navigation
Jump to search
General
- https://en.wikipedia.org/wiki/Shading_language - a graphics programming language adapted to programming shader effects (characterizing surfaces, volumes, and objects). Such language forms usually consist of special data types, like "vector", "matrix", "color" and "normal". Due to the variety of target markets for 3D computer graphics, different shading languages have been developed.
- https://github.com/lettier/3d-game-shaders-for-beginners - video_game A step-by-step guide on how to implement SSAO, depth of field, lighting, normal mapping, and more for your 3D game. [1]
- Uniform (GLSL) - OpenGL Wiki - a global Shader variable declared with the "uniform" storage qualifier. These act as parameters that the user of a shader program can pass to that program. Their values are stored in a program object.Uniforms are so named because they do not change from one shader invocation to the next within a particular rendering call thus their value is uniform among all invocations. This makes them unlike shader stage inputs and outputs, which are often different for each invocation of a shader stage.
- https://www.khronos.org/opengl/wiki/Fragment_Shader - the Shader stage that will process a Fragment generated by the Rasterization into a set of colors and a single depth value.
- The Book of Shaders - by Patricio Gonzalez Vivo and Jen Lowe. This is a gentle step-by-step guide through the abstract and complex universe of Fragment Shaders.
- Inigo Quilez - fractals, computer graphics, mathematics, shaders, demoscene and more
- Interactive Shader Format - a file format used to describe GLSL shaders for use in interactive applications. It can be used to create image filters or generative video sources. Learn more about ISF, check out the spec or check out the examples below.
Shaders
- https://github.com/mckennapsean/wood-shader - based on the original paper (by Marschner et al.) which established a new sub-surface reflection component to the bidirectional reflectance distribution function (BRDF) that creates a sub-surface highlight distinct to the appearance of actual, finished wood. The key features of this process include identifying the direction/angle of the sub-surface wooden fibers, refracating and reflecting the incoming light ray along this angled wooden fiber, and producing a Gaussian-spread along a cone in the direction of this angled reflection ray. All of these features were coded and ported into GLSL. A sample, rendered image of tiger wood is presented below.
- https://github.com/kbinani/colormap-shaders - A collection of shaders to draw color maps.
- https://github.com/tuxalin/procedural-tileable-shaders - Collection of tileable procedural textures such as: cellular noise, fbm, voronoi, perlin and other.
- GL Transitions - The open collection of GL Transitions
- https://github.com/kosua20/opengl-skydome - A fragment-shader skydome implementation
- ReShade - generic post-processing injector for games and video software developed by crosire. Imagine your favorite game with ambient occlusion, real depth of field effects, color correction and more ... ReShade exposes an automated and generic way to access both frame color and depth information (latter is automatically disabled during multiplayer to prevent exploitation) and all the tools to make it happen.The possibilities are endless! Add advanced depth-edge-detection-driven SMAA antialiasing, screen space ambient occlusion, depth of field effects, chromatic aberration, dynamic film grain, automatic saturation and color correction, cross processing, multi-pass blurring ... you name it.
- https://github.com/CounterPillow/Matura-Fraktale - Code for the final thesis paper I wrote for my Swiss matura, a GLSL-powered Mandelbrot viewer
- https://github.com/substack/glsl-ntsc-video - modulate and demodulate an ntsc video signal in a shader
Tools
Bonzomatic
- https://github.com/Gargaj/Bonzomatic - a live-coding tool, where you can write a 2D fragment/pixel shader while it is running in the background.
ShaderTool
- https://github.com/Chabloom/ShaderTool - a source-level shader translation tool for translating between GLSL, HLSL and MSL (Metal Shading Language).
Shadershop
- http://tobyschachman.com/Shadershop - an interface for programming GPU shaders in the mode of a direct manipulation image editor like Photoshop. It is an experiment in leveraging the programmer’s spatial reasoning the way that coding today leverages the programmer’s symbolic reasoning.
sre_glsl_editor
- https://github.com/mortennobel/sre_glsl_editor - allows you to play with shaders without having to set up everything in OpenGL. The editor is build using SimpleRenderEngine
gpuc
- https://github.com/garettbass/gpuc - A header-only C-like shading language compiler that writes Metal, HLSL, GLSL
Shdr
- Shdr - an online GLSL (ESSL) shader editor, viewer and validator written in CoffeeScript/WebGL that I decided to code while working on HexGL. Indeed, I've been looking for a tool to help me quickly iterate over shader development and didn't find any that would fit my needs.
SHADERed
- SHADERed - an IDE that makes developing advanced shaders easier. With this tool, you are not limited to vertex and pixel shaders - your projects can also use compute and geometry shaders.SHADERed also comes with a built-in shader debugger (check out the ShaderDebugger project). The debugger currently only supports pixel and vertex shaders but the support for geometry and compute shaders is coming soon.Besides those two prominent features, SHADERed also supports: render textures, render states (blend, stencil, etc...), buffers, 3D & 2D textures, cubemaps, instancing, 3D models & geometry, live preview, plugin API, etc...
GLSL Sandbox Gallery
- GLSL Sandbox Gallery - Online live editor for fragment shaders.
Shadertweak
- https://github.com/warrenm/Shadertweak - an iPad app that allows you to rapidly prototype fragment shaders in the Metal shading language.
PixelSpirit
- PixelSpirit - Each Pixel Spirit card presents a visual element together with the GLSL shader code that generates it. Ultimately, these elements can be reused and combined to compose an infinite visual language. This deck is a tool for learning, a library, and an oracle.The cards are ordered as an unfolding continuum that goes from simplicity to complexity, from darkness to light, so they can be learned and memorized easily. Through this progression, the cards present new functions, creating a library of functions that can be reused and combined like a portable book of spells. Within the 50 cards of this deck you will find the 22 major arcana, the ancestral archetypes of the traditional Tarot deck: the wisdom of these powerful cards will guide you.
CrossShader
- https://alain.xyz/libraries/crossshader - A tool for cross compiling shaders. Convert between GLSL, HLSL, Metal Shader Language, or older versions of GLSL.
glslViewer
- glslViewer - a flexible console-base OpenGL Sandbox to display 2D/3D GLSL shaders without the need of an UI. You can definitely make your own UI or wrapper using the Python Module (include) or any other tool that communicates back/forth with glslViewer thought the standard POSIX console In/Out or OSC.GlslViewer support both 2D shaders and/or 3D shaders when a geometry (PLY, OBJ or GLTF) is provided.
tosort
- https://github.com/dancrn/shade - a quick-and-dirty glsl prototyping tool. it's like shader-toy, but with basically no features of shader-toy. but you can run it off-line, and not in a browser. it has only one dependency - SDL2. this is not intended to be a standalone tool per se, but rather just something that you can easily modify (and extend, if required) to prototype a shader. [5]
- https://github.com/polymonster/pmfx-shader - Cross platform shader system targetting HLSL, GLSL, Metal and SPIR-V. Offline compilation, reflection, metadata +so much more.
- https://github.com/podgorskiy/ShaderBoiler - Aimed to eliminate preprocessor hell in shaders and kernels.
- https://github.com/radixzz/awesome-glsl - sparkler Compilation of the best resources to learn programming OpenGL Shaders
- https://github.com/KhronosGroup/glslang - Khronos-reference front end for GLSL/ESSL, partial front end for HLSL, and a SPIR-V generator.
- https://github.com/butterw/bShaders - Effects/Filters for video playback This project aims at providing shaders (DirectX .hlsl files), tools and comparison screenshots for realtime video Effects. The focus is on best implementation (and tuned parameter settings) of lightweight gpu shaders.
- https://github.com/stackgl/shader-school - mortar_board A workshopper for GLSL shaders and graphics programming
- https://github.com/Gargaj/Bonzomatic - This is a live-coding tool, where you can write a 2D fragment/pixel shader while it is running in the background.
- https://github.com/kajott/GIPS - An image processing application that applies filters written in the OpenGL Shading Language (GLSL).
- https://github.com/rohatsu/ShaderGlass - Overlay for running GPU shaders on top of Windows desktop
- https://github.com/jamieowen/glsl-blend - glsl photoshop blending modes. glslify formatted.
- https://github.com/kosua20/calco - A calculator with a syntax close to GLSL
- ChatGL - GLSL shader generator using GPT-3
- https://github.com/jmaselbas/bonz - live shader coding
- https://codeberg.org/tectogen/tectogen/src/branch/main/README.md - an experimental graphical application to live-code, combine and music-match visual effects, provided in the form of GLSL fragment shader functions. All of this is currently in pre-alpha/tech demo stage.
Slang
- https://github.com/shader-slang/slang - a shading language that makes it easier to build and maintain large shader codebases in a modular and extensible fashion, while also maintaining the highest possible performance on modern GPUs and graphics APIs. Slang is based on years of collaboration between researchers at NVIDIA, Carnegie Mellon University, Stanford, MIT, UCSD and the University of Washington.
marching
- https://github.com/charlieroberts/marching - A JavaScript library that compiles GLSL ray marchers.
glslViewer
https://github.com/patriciogonzalezvivo/glslViewer - a flexible console-base OpenGL Sandbox to display 2D/3D GLSL shaders without the need of an UI. You can definitely make your own UI or wrapper using the Python Module (include) or any other tool that communicates back/forth with glslViewer through the standard POSIX console In/Out or OSC.
Shader-Playground
- https://github.com/Foltik/Shader-Playground - A shader editor inspired by ShaderToy featuring live reloading and automatic GUI generation for uniform variables.
tool
LiveShaderPalette
- https://github.com/ianacaburian/LiveShaderPalette - Live code your animated OpenGL fragment shaders. Interactive graphics design made easier with ready made uniform routings for mouse/touch input events. Arrange panels by rows, columns or in a tiled layout fashion for quick side-by-side comparison editing. With a high number of panels in fullscreen, shader code quality can be profiled or benchmarked. Includes separate window console displaying the state of all uniforms and any OpenGL compilation errors.
shadplay
- https://github.com/alphastrata/shadplay - Real-time wgsl visualisation tooling for educating oneself in the art of shader programming