glsl-fast-gaussian-blur - optimized single-pass blur shaders for GLSL

  •        229

Optimized separable gaussian blurs for GLSL. This is adapted from Efficient Gaussian Blur with Linear Sampling.The function blurs in a single direction. For correct results, the texture should be using gl.LINEAR filtering.



Related Projects

Gaussian Blur

A Gaussian blur is the result of blurring an image by a Gaussian function. It is a widely used effect in graphics software, typically to reduce image noise and reduce detail.

glslCanvas - Simple tool to load GLSL shaders on HTML Canvas using WebGL

GlslCanvas is JavaScript Library that helps you easily load GLSL Fragment and Vertex Shaders into an HTML canvas. I have used this in my Book of Shaders and glslEditor. That's all! glslCanvas will automatically load a WebGL context in that <canvas> element, compile the shader and animate it for you.

glslEditor - Simple WebGL Fragment Shader Editor

Friendly GLSL Shader editor based on Codemirror compatible with glslViewer (C++/OpenGL ES) and glslCanvas (JS/WebGL). Was originaly develop to work as a embebed editor for The Book of Shaders. But now have grown as a stand alone Web app. Thanks to their compatibility with other apps of this ecosystems like glslViewer that runs in the RaspberryPi directly from console, GlslEditor interact with other projects like allowing the user to export the shaders to frames with only one button.

glslViewer - Live GLSL coding render for MacOS and Linux

Live-coding console tool that renders GLSL Shaders. Every file you use (frag/vert shader, images and geometries) are watched for modification, so they can be updated on the fly. This was tested with Ubuntu 16.04.

ShaderEditorExtension - Google Chrome DevTools extension to live edit WebGL GLSL shaders

Alternatively, you can pack the extension yourself and load by dropping the .crx file in the Extensions page.

Iterative refocus plug-in for GIMP

Iterative refocus GIMP plug-in can be used to refocus images acquired by a defocused camera, blurred by gaussian or motion blur or any combination of these. Adaptive or static area smoothing can be used to remove the so called \quot;ringing\quot; effect.

ShaderParticleEngine - A GLSL-heavy particle engine for THREE

The purpose of this library is to make creating particle effects using THREE.js and WebGL as simple as possible. The heavy-lifting is done by the GPU, freeing up CPU cycles. Emitters are created by first creating an instance of SPE.Group. It is in the group where ShaderMaterial settings are applied, and the texture for all emitters added to that group is set. Multiple groups can be created, but if efficiency is a high-priority then as few groups as possible should be created. The group takes care of uploading emitter data to the GPU for simulation and rendering, so the fewer chunks of data that get sent the better.

ofxFX - Unlocking the GPU Power on openFrameworks with this add-on for that make easy to use GLSL Shaders

I start this addon while I was working on Efecto Mariposa. Is the result of adapting different well know algorithms to GLSL Shaders for openFrameworks. An important feature of ofxFX is it ability for fast-prototyping mixing different classes using the << operator.

NShader - HLSL - GLSL - CG - Shader Syntax Highlighter AddIn for Visual Studio

NShader is an extension to Visual Studio 2008/2010/2012 that provides syntax highlighting for various shader languages including HLSL - GLSL - CG.

XBImageFilters - OpenGL ES 2-based image and real-time camera filters for iOS

XBImageFilters allows you to obtain filtered versions of any image or from the camera in realtime. It uses OpenGL ES 2 to filter the images through fragment shaders you write yourself so you can filter your images in whatever way you want and it is super fast. In this screenshot of the sample we have on the top half of the screen a regular UIImageView with contentMode set to UIViewContentModeTop, and on the bottom half a XBFilteredImageView with the same image with contentMode set to UIViewContentModeBottom and a filter [a GLSL fragment shader] that outputs the luminance of the pixel color.

Voodoo Shader Framework

Voodoo Shader is a comprehensive graphics framework for powering shaders in multiple programs, during development or after release. Voodoo uses plugins and a shared core to support many games and other applications and is compatible with Direct3D and OpenGL.

OpenSceneGraph glsl samples

A series of applications that show how to implement glsl shaders in OpenSceneGraph. The shaders include: Bump Map, Parallax Map, Ambient Occlusion, HDR, Depth of Field, etc.

Wagner - Effects composer for three.js

Please use it only for review and test purposes. Don't hesitate to add issues or open a conversation about design decisions. Most of the shaders are from Others are from different sources and forums, papers, or my own.

gl-react - [gl-react v3 alpha] – a React library to write and compose WebGL shaders

This repository hosts gl-react v3. For gl-react v2, please see ProjectSeptemberInc/gl-react. gre/gl-react repository is a complete rewrite of ProjectSeptemberInc/gl-react library (gl-react v2). It plans to be the gl-react v3. We keep both repository at same time because (1) this work is not yet finished and (2) this repository is now a "multi libraries" repository (it's just easier to maintain that way).

PDN C++ AMP Effects

Paint.NET Gaussian blur effect written in C++ AMP

react-native-effects-view - Use iOS8 UIVisualEffectViews's blur and vibrancy with ReactNative

Component to make easy use of iOS8 UIVisualEffectViews with UIBlurEffect and UIVibrancyEffect in ReactNative.All children of <EffectsView /> will be blurred, however you can use it without children and position element on top of background images and other views.


GLSL optimizer based on Mesa's GLSL compiler. Used in Unity for mobile shader optimization.


Lumina is a crossplatform IDE for OpenGL GLSL shaders. The flexible ECMA script based language is used for tools and rendering controll. It enables shader based animation, building renderer prototypes for deferred shading, depth peeling or HDR rendering.


A library for fast computation of Gauss transforms in multiple dimensions, using the Improved Fast Gauss Transform and Approximate Nearest Neighbor searching. This library is useful for efficient Kernel Density Estimation (KDE) using a Gaussian kernel.

THREE.MeshLine - Mesh replacement for THREE.Line

First, create the list of vertices that will define the line. MeshLine accepts THREE.Geometry (looking up the .vertices in it) and Array/Float32Array. THREE.BufferGeometry coming soon, and may be others like Array of THREE.Vector3. Once you have that, you can create a new MeshLine, and call .setGeometry() passing the vertices.