Get to know one of the most cutting-edge parts of the web right now: OpenGL shaders. The top websites are using them in their web designs but most sites aren’t due to the lack of understanding about how to use them.
In this course, we’ll show you how to make shaders from scratch using the programming language, GLSL, along with everything you need to know about uniforms, vertex and fragments, and then how to apply them to both 2D and 3D projects on the web.
What you’ll learn
What a shader is exactly and how to write GLSL code
What uniforms, vertex and fragment shaders are
How to apply GLSL code to the web using GlslCanvas and Three.js
How to connect web events like mouse movement and scroll to our shader code using Javascript
Quick mathematical techniques for producing stunning graphics
How to use procedural noise and randomness to create changeable graphics
Requirements
A computer (Windows, Mac or Linux) with the latest version of Chrome installed and a broadband internet connection. Just that!
Target Audience
This course is aimed at creative people who want to make highly-performant graphics for the web.
As this course is applying shaders to websites, you'll need knowledge of HTML, CSS and Javascript to start this course as we’ll be using them within our projects.
In the first project, we’ll set you up with the groundings of what you need to work with shaders and GLSL to create a dynamically-generated gradient.
In the second project, we’ll talk about sampling textures to change an image into a kaleidoscopic pattern, and how to make a slideshow with shader textures.
What's the difference between random and noise? A lot! In this project, we'll make a natural-looking, interactive texture from nothing but code – no images involved at all!
Distorting and altering textures is a big part of working with shaders. In this project, we'll talk about how we sample texture points in a texture that keeps its aspect ratio intact!
Colors are made from 4 parts in shaders but what if we mess around with those separate parts? In this project, we've divide textures into different channels and stitch them back together to get a color split effect, and then we'll make it transition in-and-out on scroll.
If SuperHi had a record label, we'd use smooth animated gradients to sell those records! In this project, we'll talk about how make those gradients, how to add multiple palettes using arrays then make the texture react to page scroll to change colors.
In the last of our two-dimensional projects, we look at how we transition between multiple textures by making a slideshow-based gallery with history's greatest posers.
Learn how to take your shaders to the next dimension... the z-direction with the first of our 3d projects. In this site we'll use Three.js to make a metal jellyfish with fully-custom lighting and movements.
Make your own rock! We'll be diving into vertex shaders in this project to make a customizable surface that our users can control to make their own digital art, then save it as their own image!
Using all the techniques that we've covered through out the course, we'll create a 3d slideshow with vertex and fragment shader interactions to different surfaces!
Rik (he/him) is a Mancunian coder, teacher and CEO of SuperHi. He was the co-founder of Steer (a code school in London) and has taught several thousand people to code. He is a bit too old to be posting memes on our social media and recently featured as a Sour Patch Kid in the Macy's Thanksgiving Parade.