<aside> ☝ 标题图是我学习Shader两周之后画的sketch

</aside>

我从两周前开始学习The Book of Shaders,感觉在这里面找到了之前用processing或者p5js写sketch没有享受到的快感!Processing或者p5js写到复杂的sketch之后难免code很长,而且执行时间也很长,debugging起来也很头痛。但是shader几乎是实时的rendering,有很多快速试验的方法,所以非常有趣。

什么是Shader?

Shader是利用GPU的并行运算功能来作图的指令集。你可以想象每个pixel都经过一个管道,并在管道中同步进行处理,然后生成一个新的pixel。而在processing中,每个指令是单独经过CPU处理来作图,一次处理一部分的像素,这就是为什么Shader比processing要快很多的原理。

Image from The Book of Shaders

Image from The Book of Shaders

Shader语言有很多,听起来都大同小异,基本上他们都包含了很类似于C的语法结构,以及compile到硬件层面指令的compiler。我只学了GLSL,但是对其他语言有兴趣的话可以看一下这篇 A review of Shader Languages

Shader和普通p5js sketch的区别

Shader学习资源和步骤