Unity Shader 学习(1) —— 概述

Unity Shader 学习 —— 概述

 

1. 材质球

2. Shader 概述

3. 文本编辑器

4. 结语


1. 材质球

假如你从 Asset Store 中下载素材资源时,你会发现会导入的资源包会伴随着很多 Material,这也称为材质球。

Unity Shader 学习(1) —— 概述

这些材质球可以设置到 Render 类型的控件,从而把材质球定义的效果呈现到场景中。假如把 1 个材质球设置到不同的 Render 类型的控件,那么这个材质球所定义的属性会同时影响所绑定的 Render 类型控件。或许你想让 2 个不同的 GameObject 显示的效果不一样,那就需要分别给予不同的材质球。

点击材质球资源后,我们可以在 Inspector 中看到能够设置的属性。当然,不是所有的材质球所包含的属性都一样!!!

Unity Shader 学习(1) —— 概述

根据上图显示的例子可是,材质球包含了 2 个部分,一部分是定义渲染时使用的 Shader,也称为着色器;另一部分就是能够设置的资源属性。

所定义的属性从 Unity 编辑器中输入,然后 Shader 就根据这些资源属性以及能够的渲染规则进行效果渲染。


2. Shader 概述

前面提及了 GameObject — Material — Shader 之间的关系。这里简单地说一下 Shader 具体是什么东西,用来干什么?

假如有学习过 DirectX 或者 OpenGL 的读者,都知道,把定义的虚拟物体呈现在窗口的过程称为渲染,整个渲染过程有一套流程的,称为渲染管线。这个渲染管线会基于 GPU 进行运行操作。由于基于 GPU 进行渲染,渲染的速度比使用 CPU 快得多(毕竟 GPU 在渲染方面上是专业的)。

Shader 定义了渲染的细节部分。这部分可以通过文本编辑来定义整个部分,就像敲代码一样。也可以使用 2018 Unity 官方推出的 Shader 可视化编辑器 —— Shader Graph 进行编写。这个编辑器在网络上有很多安装教程与基本 Demo,在这里就不进行详细讲解。

Unity Shader 学习(1) —— 概述

但本系列不会对 Shader Graph 进行开展,而是讲解文本方向的 Shader。


3. 文本编辑器

对于大多数人来说,使用 Unity3D 进行开发时,编写脚本都是使用 Visual Studio 的,毕竟它具有良好的调试功能,友好的提示功能,以及舒适的代码高亮等。然而,若使用 Visual Studio 进行 Shader 编写,会十分让人抓狂。让下载了 Unity Shader 编写扩展包后,高亮让人十分混乱,缩进乱七八糟,自动缩进总是让人不如意,有时还不如不要自动缩进。

因此,在这里我建议:假如你真的无法忍受 Visual Stuido,可以尝试使用下载该编辑器 Sublime Text。虽然比不上在 VS 编写脚本, 但总比在 VS 编写 Shader 好多了。下载的时候可能需要*。

下载了 Sublime Text 以后,就可能安装 Unity Shader 编辑高亮插件。但是安装插件前还需要安装 Package Controller,对下载的插件进行管理。在插件官网中可下载 Package Controller 。

  • 进入插件官网,点击 Install Now 按钮。

Unity Shader 学习(1) —— 概述

  • 根据指引进行下载操作。本人使用的是第 2 种方法。

Unity Shader 学习(1) —— 概述

  • 假如是第 2 种方法,下载 Package Control.sublime-package 到本地。打开 Sublime Text > Preferences > Browse Packages。进入上一级目录,这时候就会看见 Packages 文件夹,点击进去,把刚刚下载的东西放进去,重启 Sublime Text 即可。

Unity Shader 学习(1) —— 概述

下载完 Package Controller 以后,就可以下载使用 Unity Shader 编辑高亮插件。

  • 点击 Sublime Text > Preferences > Package Controller,出现文本框,输入 install,选择第一个,进入下载插件选项界面

Unity Shader 学习(1) —— 概述

  • 输入选择 ShaderLanguages 插件,进行安装。安装提示会在窗口的左下角出现,等待安装完成。完成后点击右下角选择语法高亮,选择 Unity ShaderLab 即可。

Unity Shader 学习(1) —— 概述


4. 结语

本节内容结束,下一节开始了解渲染管线的工作过程以及在 Unity 的 Shader 语法。若以上内容有错误的地方,欢迎指出。