But I'll be the first to say it. Curl Noise, PBR shaders, instancing in the GPU… That math shit is boring and tedious as hell. Creating pretty images definitely makes the process much more rewarding, and fun.
As you create more and more renders, you'll start forming your own ideas of why something looks the way it does. And when it's time to learn the raw concepts, you'll have a foundation to stand on.
- Makio135 creative coding Journey
- The Classic: Book of Shaders
- Warping / Domain distortion by Inigo Quilez
- Explore shaders with Curiously Minded
- Lots of unity resources about shaders
Become a sponsor with your sponsor spot here!
Promote your product/company in this spot to hundreds of creative developers interested in learning and creating. One spot per issue!Learn More!
In this animation, Kishimisu creates a grid that grows and shrinks over time.
uv = fract(abs(uv) * (6.4 + sintime(-3., 1., 0.)))-.5;
Then, he loops the RGB components to slightly slightly offset each one. I didn't know you could access vec3 with "", "", "":
vec3 result = vec3(0);
result = 1.; // Red component
And for the crazy look, he loops over the current cell and the surrounding cells to calculate a circle border using length.
Wrapping, or domain wrapping, is distorting the domain (an image for example) with another function.
This example and article by Inigo Quilez showcase how to "wrap" noise with more noise. Resulting in these interesting detailed results.
float final = snoise(uv + snoise(uv));
On Desktop, you can see this amazing use of Fractal Brownian Motion and domain wrapping on the surface of a sphere with grain added to give it a rougher vibe.
Judging by the previous shader by Kishimisu. This shader seems to also use a grid inside that is mirrored on each axis. Or, it could be a Voronoi pattern of sorts.