本站聚焦于 Shader 本身,为了提供更好的所见即所得的交互体验,会以 WebGL(GLSL 语法)作为载体在浏览器中实时渲染(推荐使用 Chrome 浏览器)。若您没有代码基础,可先简单入门前端开发,能更好的理解和接受本站内容;若你已经具备编程基础,相信你能更游刃有余地将 Shader 移植到目标平台。
众所周知,计算机图形学对数学(三角函数、线性代数和微积分)有一些要求,请放心,它们并没有想象中的那么难,让我们一同逐一攻克。当然,为了更好的学习效果,你可以提前温习这个优质的视频教程:线性代数的本质(若遇到跳转后提示视频不见,可在地址栏回车重新进入页面后即可看到)。
和国内外相关教程相比,本站在覆盖基础知识点之余,更关注知识的体系化与创造性的启发应用。从模仿到原创,举一反三,触类旁通。覆盖的领域包括滤镜、转场、动效、可视化、程序性纹理等。
当然,我也非常建议大家可以先看看这本电子书(虽然它已部分难产了):The Book Of Shader,具有很好的启发性。
为避免重复造轮子以及节省比不要的时间损耗,本站内容会引用一些书籍内容、在线资料以及开源代码,甚至是搬运一些内容,并会标注引用来源。站在巨人的肩膀才能走的更远。若存在侵权请指出,我会第一时间删除。
课程里几乎所有用到的代码都会通过 ShaderToy、CodeSandbox 等形式展示,能够直接查找到源码,代码采用 MIT 协议。
CodeSandbox 例子(可查看完整项目代码):
ShaderToy 例子(聚焦于 Shader 本身):
PS:由于演示用到了一些域外网站,为了良好的阅读体验请各位自行解决,以提升学习体验。