从头开始学习 GLSL 着色器
使用自定义着色器让您的 WebGL 焕发活力
讲师:Nicholas Lever
口袋资源独家Udemy付费课程,独家中英文字幕,配套资料齐全!
用不到1/10的价格,即可享受同样的高品质课程,且可以完全拥有,随时随地都可以任意观看和分享。
你将学到什么
- 学习使用 GLSL 创建出色的着色器。
- 创建出色的图像操作着色器,以获得炫酷的网站效果。
- 学习将着色器与灯光效果相结合。
- 了解如何创建爆炸和火焰着色器。
- 了解如何创建程序纹理。
- 了解为实时 3D 应用程序创建 HUD 显示。
- 了解如何使用着色器来操纵模型的几何形状
要求
- 只需要访问互联网即可。
描述
在本课程中,我们将学习GLSL(OpenGL 着色语言)来创建令人惊叹的效果。
也许你是
- 一位设计师看到过一些很棒的、前沿的网站使用了很酷的过渡,并且想知道它是如何完成的。您可能听说过 WebGL,并且知道您可以使用一些简单的THREE.js代码来完成一些非凡的事情。
- 一名开发人员试图以引人注目的方式可视化一些数据。
- 想要向 3D 对象表面添加一些自定义效果的游戏开发人员。
GLSL是您使用OpenGL来显示表面的方式。代码语法基于 C 语言,但不用担心,我们会假设您根本不了解这种语言,并且正如课程标题所述,我们将从头开始学习。GLSL 使用GPU(图形处理单元)同时处理多个程序,因此速度快得令人难以置信。
在课程中,我们将为浏览器编写代码,因为这使我们能够专注于 GLSL,而无需担心安装任何其他软件。我们将使用THREE.js WebGL 库和CodePen,这样您就可以立即编辑源代码并查看结果,只需要浏览器即可进行实验。仅使用了少量的 Javascript,但随着它的出现,将会对其进行彻底的解释。但您也可以在C/C++/C#程序或Python程序中使用您学到的 GLSL 知识。
我们将从非常简单的示例开始,慢慢地完成开发自定义着色器的每个阶段。您将能够在 CodePen 上使用着色器代码,因此您可以尝试不同的值以查看它对最终结果的影响。
GLSL 着色器分为顶点着色器和片段着色器,我们将首先关注片段着色器,它基本上在 2d 环境中工作。通过课程资源中的数十个着色器,您将轻松地学习该语言。
创建您自己的着色器意味着理解GLSL 语言,这就是本课程的目的。您可以在 ShaderToy、ShaderFrog 或 glslViewer 上搜索合适的着色器,然后尝试调整代码。但如果不了解语言,你会发现这很难做到。要真正发挥作用,您需要了解 GLSL 语言、整形函数、平铺、极坐标和光照计算。为此,您需要遵循课程并完成建议的许多挑战。最后,您将能够创建您可以想象的任何着色器。
与往常一样,有30 天退款保证。所以你没有什么可失去的。今天我们就来晒晒太阳吧!
学生怎么说
“我来这里的目的是在 obj 模型上制作自定义照明着色器,并且我确实找到了我的问题和更多问题的答案。课程的两个面和 CodePen 草图都很棒。我谢谢!”
“很棒的课程!不仅对 GLSL 进行了有条理的分步解释,而且还对着色器背后的一般理论进行了解释,可用于任何着色器系统。如果您喜欢计算机图形或生成艺术,那么这是必不可少的。谢谢!”
“我过去曾尝试学习着色器,但发现非常困难。与我发现的其他资源不同,这门课程最终帮助我更好地掌握了 glsl。它结构良好,内容丰富.我会向任何想要学习 glsl 的人推荐它。”
“这正是我所需要的。我是一名具有设计背景和大量 JavaScript 经验的 Web 设计师/开发人员,我正在尝试进入 Web 3D 可视化领域。由于 GLSL 是用 C 语言编写的,因此它一直是一个巨大的障碍。我完全向任何有问题的人推荐这门课程,以清楚地了解 GLSL。 ”
“到目前为止,这门课程确实令人惊叹。很少有关于着色器的课程真正花时间来解释正在发生的事情背后的数学原理,让我们的“非数学”人员对此产生直觉。干得好!”
“尽管我是一名高级前端开发人员,但我总是对 GLSL 的想法感到害怕。我的数学一直很糟糕;但 Nik 的教学风格让我非常直观地理解一切,我感到很舒服现在使用着色器。我在 Udemy 上购买了 60 多门课程;看了几个视频后我就退出了其中的大部分。这个课程让我着迷在椅子上,直到我完成所有内容!按照这门课程进行编码很有趣,Nik 的挑战感觉非常好通过他清晰的解释来解决或理解是值得的!”
“对于任何想要逐步学习 GLSL 的人来说,这是一门完美的课程。讲师确保在 GLSL 的基本功能上花费足够的时间,以便学生在继续下一个概念之前能够获得正确的理解。我有过去发现 GLSL 有点令人畏惧,因为示例很快就会失控,所以我真的很欣赏这门课程的方法。 ”
本课程适合谁:
- Web 开发人员希望使用最新技术来制作脱颖而出的网站。
- 3D 开发人员需要创建自己的着色器。