Displaying 1 to 20 from 97 results

glsl-optimizer - GLSL optimizer based on Mesa's GLSL compiler

  •    C++

A C++ library that takes GLSL shaders, does some GPU-independent optimizations on them and outputs GLSL or Metal source back. Optimizations are function inlining, dead code removal, copy propagation, constant folding, constant propagation, arithmetic optimizations and so on. Apparently quite a few mobile platforms are pretty bad at optimizing shaders; and unfortunately they also lack offline shader compilers. So using a GLSL optimizer offline before can make the shader run much faster on a platform like that. See performance numbers in this blog post.

tinyrenderer - A brief computer graphics / rendering course

  •    C++

Check the wiki for the detailed lessons. My source code is irrelevant. Read the wiki and implement your own renderer. Only when you suffer through all the tiny details you will learn what is going on. I do want to get emails for feedback (dmitry.sokolov@univ-lorraine.fr); do not hesitate to contact me if you have any questions.

awesome-creative-coding - 🎨 Creative Coding: Generative Art, Data visualization, Interaction Design, Resources

  •    HTML

Carefully curated list of awesome creative coding resources primarily for beginners/intermediates. Creative coding is a different discipline than programming systems. The goal is to create something expressive instead of something functional. Interaction design, information visualization and generative art are all different types of creative coding – which has become a household term describing artworks articulated as code.

js - turbo.js - perform massive parallel computations in your browser with GPGPU.

  •    Javascript

turbo.js is a small library that makes it easier to perform complex calculations that can be done in parallel. The actual calculation performed (the kernel executed) uses the GPU for execution. This enables you to work on an array of values all at once. turbo.js is compatible with all browsers (even IE when not using ES6 template strings) and most desktop and mobile GPUs.




phenomenon - ⚡️ A fast 2kB low-level WebGL API.

  •    Javascript

Phenomenon is a very small, low-level WebGL library that provides the essentials to deliver a high performance experience. Its core functionality is built around the idea of moving millions of particles around using the power of the GPU. Returns an instance of Phenomenon.

glslViewer - Live GLSL coding render for MacOS and Linux

  •    C++

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.

ShaderGraph - Unity ShaderGraph project

  •    CSharp

A Shader Graph enables you to build shaders visually. Instead of hand writing code you create and connect nodes in a graph network. The graph framework gives instant feedback on the changes, and it’s simple enough that new users can become involved in shader creation. This repository is under active development. Everything is subject to change. The master branch is our current development branch and may not work on the latest publicly available version of Unity. Unless you intend to modify Shader Graph or want to try out the very latest and unsupported features, we recommend that you acquire Shader Graph through the Unity Package Manager.


Wagner - Effects composer for three.js

  •    Javascript

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 https://github.com/evanw/glfx.js. Others are from different sources and forums, papers, or my own.

The-Forge - The Forge Cross-Platform Rendering Framework PC, Linux, Ray Tracing, macOS / iOS, Android, XBOX, PS4

  •    C++

The intended usage of The Forge is to enable developers to quickly build their own game engines. The Forge can provide the rendering layer for custom next-gen game engines. Added a unified input system based on Gainput to all platforms (https://github.com/jkuhlmann/gainput). The new input system substantially simplified input management on the application level over all platforms. We also simplified the camera controller. Added also new VirtualJoystick class in UI.

gibber - An audiovisual live coding environment for the browser

  •    Javascript

Gibber is a live coding environment for the web browser, using the Gibberish.js audio engine, the CodeMirror code editor library and wrapping Three.js for 3d graphics and shader support. Version 2 of Gibber features a much more efficient audio engine, some interesting mapping abstractions and a server/database backend for publishing and browsing files and collaboratively live coding. In order of preference, Gibber runs in Chrome, Safari, and Firefox. The current public URL for the Gibber environment is http://gibber.mat.ucsb.edu. Below is a code sample that shows off the mapping abstractions in Gibber by mapping the output envelope of various drum sounds to the rotation of a Cube and a shader uniform.

slop - slop (Select Operation) is an application that queries for a selection from the user and prints the region to stdout

  •    C++

slop (Select Operation) is an application that queries for a selection from the user and prints the region to stdout. slop can be used to create a video recording script in only two lines of code.

hlsl2glslfork - HLSL to GLSL language translator based on ATI's HLSL2GLSL. Used in Unity.

  •    C++

DX9 style HLSL in, GLSL / GLSL ES out. For an opposite tool (GLSL ES to HLSL translator), look at Google's ANGLE.

glava - GLava - OpenGL audio spectrum visualizer

  •    C

GLava is an OpenGL audio spectrum visualizer. Its primary use case is for desktop windows or backgrounds. Displayed to the left is the radial shader module, and here is a demonstration video. Development is active, and reporting issues is encouranged. You can pass BUILD=debug to the makefile for debug builds of both glad and glava, and you can manually specify install targets with INSTALL=..., possible arguments are unix for FHS compliant Linux and BSD distros, osx for Mac OSX, and standalone which allows you to run GLava in the build directory.

HologramShader - :pencil2: Test of an hologram material made in Unity.

  •    CSharp

Hologram is a simple shader made in Unity. This package is composed of a shader and a custom material editor to tweak the effect. MIT, see LICENSE for details.

Imogen - GPU Texture Generator

  •    Python

WIP of a GPU Texture generator using dear imgui for UI. Not production ready and a bit messy but really fun to code. Basically, add GPU and CPU nodes in a graph to manipulate and generate images. Nodes are hardcoded now but a discovery system is planned. Currently nodes can be written in GLSL or C or Python. Use CMake and VisualStudio to build it. Only Windows system supported for now.

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

  •    Javascript

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.

shadertoy-export - render ShaderToy demos to PNG

  •    Javascript

A small utility for exporting ShaderToy demos to large (print-ready) PNG images. On my MacBookPro, this can export up to 10,000x10,000 px images.It only features a small set of shaders (those set to Public + API) and doesn't support cube maps, video inputs, etc.

mixmap - interactive webgl mapping library emphasizing direct access to the rendering pipeline

  •    Javascript

mixmap provides basic plumbing for webgl cartography and then gets out of your way. You have direct control over loading data, mapping geometry to a cartographic projection in your vertex shader, and coloring your maps in the fragment shader.mixmap supplies a bounding box layer model. As the bounding box changes, mixmap will call your code to request bounding box manifests at the appropriate zoom level and mixmap will call your code again to handle adding and removing geometry.

azurescens - Renders interactive fractal-like animations

  •    Rust

azurescens renders interactive fractal-like animations. Currently it is a simple toy, and a platform for experimentation. It will probably grow more behaviors over time.