欢迎大家继续学习 Unity 游戏编程进阶 本节我们介绍
Unity 内建着色器 本节将采用 PPT
讲解加项目演示的方式介绍 Uuity 内建着色器的相关知识要点
在项目演示环节,我们演示了Unity 内建着色器在《慕课英雄2》项目中的具体应用
希望大家可以根据自己的专业基础和学习能力,从以下方法中选择一种来学习 第一种方法:先见
PPT 讲解,对相关知识有一个系统的了解 然后观看项目演示视频,学习知识要点的应用
第二种方法:先看项目演示视频,了解知识要点的具体 应用,再回到
PPT 讲解阶段,有针对性的学习相关知识要点 第三种方法:跳过 PPT 讲解,直接进入项目演示
通过项目知识要点的运用,完成相关知识要点的学习 不需回顾 PPT 讲解。
下面进入 PPT 讲解阶段 为了方便开发者,Unity 提供了超过80种内建着色器
使用这些着色器,开发者可以实现从简单的顶点光照,到高光、 透明、
反射等游戏中常见的材质效果 我们可以在材质的检视视图中找到并使用这些着色器 它们在材质的
Shader 的下拉列表中,依据其主要功能 分类存放,下面我们对这些着色器一一进行介绍
[空白音频] 在内建着色器中 Standard
和 Standard (Specular setup) 是 Unity5 新推出的标准着色器,功能非常强大
可以说是一种万能着色器,也是 Unity 材质的默认着色器,FX
列表的 着色器,用于实现水和玻璃等特殊材质 GUI
和 UI 列表下的着色器,是用户界面使用的 Mobile
菜单下的着色器是专门为移动平台设计的 简单高效,Nature
菜单下的着色器是植被和地形系统使用的 Particles 菜单下的着色器是粒子系统使用的
SkyBox 菜单下的着色器用于绘制天空盒等背景环境
Sprites 菜单下面是 2D 精灵系统使用的着色器 Unlit
下的着色器会忽略一切光照和阴影效果,Legacy 中是过时的着色器
这些着色器的功能均已经被标准着色器所取代 [空白音频]
在 Unity5.0 中新增了一种基于物理着色的内建着色器 称为
StandardShader 标准着色器,标准着色器选择吸收了其他很多个着色器的特色功能
能够满足开发者大部分的着色器需求,标准着色器可以明显的简化工作流程
是一种万能着色器
在上一门课程,Unity 游戏编程基础中,我们详细讲解了标准着色器的大部分可配置属性
在这里我们只补充一点,标准着色器的可配置属性虽然种类繁多
但只有设置过的属性对应的功能才会被开启,其他未设置属性
对应的功能则保持禁用状态,因此开发者可以根据具体需求 使用和设置着色器的属性,不用担心着色器的性能
[空白音频] 玻璃着色器位于
FX/Glass 子菜单下,名为 Stained BumpDistort
玻璃着色器一般用于渲染建筑或者交通工具中的玻璃材质 有3个可配置属性,Distortion
是玻璃的 透射畸变程度,该值越大
透过玻璃看到物体的扭曲现象越严重,Tint Color 属性是一张贴图,表示玻璃的颜色
Normalmap 是玻璃的法向贴图,用于调整玻璃表面的法向
[空白音频] 本页 PPT
图片展示了一块彩色玻璃的效果 考虑到手机移动设备计算能力有限
Unity 为移动设备提供了一组经过特殊优化的内建着色器
这些着色器位于 Mobile 列表中 本页 PPT
左侧列表,罗列了主要的移动平台着色器 这些着色器按照计算开销,从低到高排序,相应地
排列靠后的着色器达到的效果也更好,开发者在使用着色器时
需要在游戏画面品质和游戏性能之间做出权衡,选择合适的着色器
这里我们简单介绍一下这些着色器之间的主要区别 本页
PPT 图片中的5个木质大球分别使用这些移动平台着色器进行渲染
其中,最右侧的 Unlit 着色器速度最快 但没有任何光照和阴影效果,无法在地面上
产生阴影,也无法接受其右上角的小球产生的阴影 右边第二个是
Vertex Light 顶点光照着色器 它的速度较快,可以产生阴影,但是不会接受阴影
Diffuse 着色器用于计算漫反射效果,具有光照效果
能够产生阴影,也可以接受阴影,Bumped Diffuse
是带法向贴图的漫反射着色器,运用法向贴图可以在大球表面看到凸凹的效果 Bumped
specular 是带法向贴图的高光效果 的漫反射着色器,我们可以看到大球上具有了高光效果
Unity 官方提供了内建着色器脚本的源代码
大家如果感兴趣,可以在 Unity 历史版本页面中获取 打开 Unity
历史版本下载页面找到 Unity 编辑器的版本 在对应的下载菜单中点击内置着色器,下载内建着色器的源代码
下一节我们介绍 Unity
中的自定义着色器 下面是演示环节
我们在游戏场景中向大家演示多种着色器的效果