Skip to content

In the Mood for Shaders

Abe Pazos edited this page Apr 27, 2019 · 5 revisions

Live coding

GLSL functions

Processing Shader Tool

Makes it easy to add / remove / edit shaders inside the PDE

https://vimeo.com/302483414

Blog about Shadertoy

Useful tricks and links

https://shadertoyunofficial.wordpress.com/

Abbreviated GLSL reference

http://www.shaderific.com/glsl-functions/

Detailed GLSL reference (pages 3 & 4)

https://www.khronos.org/files/opengles20-reference-card.pdf

For more references, search for OpenGL / OpenGL ES at

https://www.khronos.org/developers/reference-cards/

and in those PDF search for Shading Language. One part of the PDF is about the OpenGL API and the rest about GLSL (shaders).

Book of Shaders

https://thebookofshaders.com/

Inigo Quilez, author of Shadertoy

He has many blog posts describing techniques and some live coding video sessions.

http://iquilezles.org/

Signed Distance Functions exercises

SDF is an advanced technique used for rendering 3D worlds in a fragment shader. Frequently used in ShaderToy and in the demo scene. Not mentioned during the workshop.

http://hughsk.io/fragment-foundry/chapters/01-hello-world.html

OpenGL

To understand OpenGL and how frameworks like Processing & oF work: (cameras, lights, matrices, etc)

You can spend a long time trying to understand every detail, but I defend just knowing enough (to keeping it fun) and writing useful shaders in a few lines of code, without studying for months. Unless going deep is what you really want and have time for it :)

GPUGems

3 books by NVidia written by many developers. Describes rendering techniques used in games (blur, DoF, glow, ambient occlussion, etc.)

https://developer.nvidia.com/gpugems/GPUGems/gpugems_pref01.html

How to write shaders in Unity

https://docs.unity3d.com/Manual/SL-VertexFragmentShaderExamples.html

OpenGL in Metal (Apple)

Apple has deprecated OpenGL in favor of their own system called Metal. These people have written a software that enables using OpenGL inside Metal. It runs faster, and allows you to keep using OpenGL so you can use one system cross-platform.

https://moltengl.com/