着色器:一个简短的故事

认识着色器,图形编程的摇滚明星。

前言

图片如下:

您正在参加聚会。 很酷的一个。 配上精美的鸡尾酒和闪闪发光的连衣裙。 周围都是很棒的人, 几乎和你一样酷。 派对如火如荼。 在那个角落发生了一场局域网之战,他们有蘸酱的美味玉米片,而您正在与新朋友进行理性的讨论。 一切都很好。

当被问及您作为职业或业余爱好做什么时,您回答“好,我做游戏”。 当您感到一阵满足感冲击您时,整个小组中到处都有呜呜的 叫声 。 “伙计,那太酷了。”“哇,一定很棒!”,人们到处都在说。 好吧,确保游戏一整天都胜过制作工资软件或接听电话的过程,您会自以为是并自鸣得意。

就在这时,有人问:“嘿,您必须了解着色器,对吗? 前几天,我有点想知道它们。 愿意向我解释一下,伙计?”

你死定了 你开始流汗。 很好。 着色器 ? 伙计,那是您不用理会的话题。 他们听起来复杂,古怪和混乱。 而且您显然也不必了解它。

“嗯,嗯。他们让游戏中的东西看起来不错……嗯。”,当您设法喃喃地回答这些半生半熟的答案时,您会想知道如果您愿意,您的生活会有多大不同?对这些着色器进行了一些研究。 你现在在哪里? 可能是同一地方,但知识和知识却更多。 您现在要说的是什么,而不是听起来有些像牛粪的线条。 该死,您真的希望您之前做过一些着色器,对吗? 对?

那么,什么是着色器? 为什么要学习它们?

简而言之,着色器是在GPU上运行的计算机程序,用于为视频游戏中的每个像素着色。 而已。 它们不是拥有解锁宇宙或其他疯狂事物秘密的力量的古老神秘密码。

除了避免上述尴尬的聚会情况之外,这就是为什么您应该了解着色器的原因:

  1. 您将了解有关“图形”管道,像素如何在屏幕上显示的更多信息。 如果您对游戏开发和图形编程充满热情和好奇,这非常方便。
  2. 许多游戏开发人员都不了解着色器。 了解着色器将使您在着色器上拥有更多优势,无论是使下一个Flappy Bird看起来很棒,还是在工作室中被雇用。
  3. 编写着色器很有趣! 您将掌握游戏中每个元素的外观总命令。

那么,我将教什么呢? 与本教程系列有何不同?

首先,欢迎来到此着色器系列。 该系列将包含我最近自己学习的有关着色器的各种主题。 以前,我一直很害怕着色器,因此在编写或了解更多有关着色器的信息时都避免使用它。

但是,据我了解,着色器并不那么复杂,只要您愿意自己付出一点努力并了解它。 当然,其中涉及数学,我们也将不得不深入物理。 但这正是使它如此有趣的原因。

在高中和大学时,对光,反射,矢量数学等主题的学习对我来说非常无聊。 但是,当我发现它们在为游戏像素着色中的应用时,就感到很着迷。 运用一些我学到的东西,使我感到:

另外,编写和使用着色器很有趣。 使用它们本身也成为一种艺术体验。

而且,我计划写以下内容:

  1. 基本着色器概念:照明,照明,着色等
  2. 着色器涉及的向量数学
  3. 照明模型
  4. 缓冲液
  5. 表面,顶点和片段着色器
  6. 编写自己的着色器
  7. 一些很酷的效果:Cel Shading,Rim Lighting,全息图等等。

从初学者的角度来看,这些是我知道的,迫不及待想与大家分享。 作为一个初学者,我知道将其引入着色器并不容易。 在线上的大多数高质量教程和视频已经要求您具有一些数学,物理和编程方面的基础知识和背景知识。

但是,我的系列文章将采用不同的方法。 它将像“ For Dummies”类型的样式。 不久之前,我对这些主题很不满意,所以我觉得我可以做很好的教育同伴假人的工作。

因此,总而言之,此系列的不同之处在于:

  1. 一切都变了。 简单的话,温柔的概念,我都做。
  2. 测验:测试您(希望)学到的东西!
  3. 数学概念不需要您拥有数学博士学位即可理解。
  4. 而且是免费的。

这是我希望你知道的

好吧,我可能无法解释制作着色器所涉及的所有内容。 我将解释所有核心概念,但您需要了解以下内容:

  1. 基本编程 :您应该熟悉For循环,If和Else,条件运算符,数据类型和变量。 不需要语言首选项,但是如果您对Unity API上下文中的C#有一些了解,那么它会有所帮助。
  2. Unity Game Engine:如果您知道什么是GameObject,如何编写和附加脚本以及使用Inspector,那将是一件很好的事。

我希望你是这个人

本系列仅针对初学者和假人。 如果您是其中之一,那么您将是我的理想听众:

  1. 您知道一些编程知识,并且正在寻找开始编写自己的着色器的开始。
  2. 您不知道什么是着色器,并且以前从未编写过它们。
  3. 您已经了解了一些关于此处和此处的着色器的知识,但是还没有开始编写自己的着色器。

换句话说,如果您符合以下条件, 则不适合:

  1. 您已经学习过其他一些有关着色器的课程,并且可以自己编写一些基本的着色器。
  2. 您可以通过为大型游戏开发公司编写着色器来谋生。 (在这种情况下,请教我?)
  3. 您是Alan Zucconi。

那里有它。 如果您发现自己是这一名单上的一员,那么您可以放心地继续。 如果不是,请停在正轨上。 你已经知道太多了!

让我们开始吧!

好的,现在我们已经完成了介绍和手续,让我们开始学习! 让我们直接进入Shader编程领域,以便您深入了解像素如何在屏幕上显示,并由此了解图形的操作方式,视频游戏的特殊外观以及最后,当您被问到有关着色器的信息时,您永远不会在派对上感到尴尬。

前往第1部分:与着色器见面并获得Shady!

图片来源:聚会,Minecraft着色器,Hello World