Unity3D学习笔记&011(Shader)

自闭症网瘾萝莉.ら 提交于 2020-08-08 12:07:24

笔记来源:史上最全Unity3D教程 2-3

Shader

1.我们有一个需求,我们在打ARPG(动作角色扮演类游戏)游戏时,经常会这样:我在打一个怪物,打的时候,怪物的边缘轮廓会发红;红的目的,是为了让玩家知道在攻击谁。这个效果怎么做?不是让物体红了,而是让边缘轮廓红,
怎么办?
在这里插入图片描述
2.这个事,在实际开发的时候,我们就要使用自己定义的Shader(着色器)。Unity没有提供给我们,那我们就自己做吧。Shader在哪呢?Shader谁做,肯定不是我们做。我们学的主要是用来写游戏逻辑的、实现游戏功能的。像写Shader这种活,专门有人来干,他不处理游戏逻辑,他就专门写这个Shader。Shader写完之后,会给到我们,我们就需要用代码修改里面的属性值,而它写的Shader,就在下面红框中
(资源下载:百度云 提取码:779z;不行了,告诉我一声。路径:unity随堂资料\17课件\Month02\脚本\Shader相关)。
在这里插入图片描述
3.我们先不着急把它们导入进去,咱们先看一下Shader到底是什么。上次笔记中只提到了Shader是文件,是嵌入到渲染管线中的、用于控制GPU如何显示图像的算法。那这个程序长什么样呢?我们右键打开:
在这里插入图片描述
4.选择“从已安装程序列表中选择程序”,点击“确定”。







在这里插入图片描述5.选择VS(没有VS的同学,可以暂时使用记事本),点击确定。在这里插入图片描述
6.我们看到的的就是Shader,说白了就是一个文本文件。这就是那个程序、那段代码,这就是它的一个语法,到第二阶段,就会有笔记。为什么能在材质面板里面看见颜色呢?那是因为
在这里插入图片描述
7.这就是那个程序、那段代码,这就是它的一个语法,到第二阶段,就会有笔记。为什么能在材质面板里面看见颜色呢?那是因为有这段代码:
在这里插入图片描述
8.这个单词认识吗?如果我们不认识,可以去翻译一下。
在这里插入图片描述





9.属性的意思。
在这里插入图片描述
10.就因为Shader里面有这么几段代码,我们才能看见它。所以Shader里面决定了在面板里面,显示什么样的内容。
在这里插入图片描述
11.然后这个Shader怎么工作,都是由后面去定义的。
在这里插入图片描述
12.这里就是结束。
在这里插入图片描述
13.这个Shader我们到后面会有笔记,现在我们现有一个认识——Shader就是一段代码;材质选了什么样的Shader,它里面的面板内容不一样,是因为Shader里面的写的属性不同。
在这里插入图片描述








Shader(续)

1.这个Shader给到我们了,我们得用嘛!怎么用啊?我们要把这个导入进来。
在这里插入图片描述
2.找到刚才导入的Shader。我们发现,无论我们怎么拽它,都不行,那怎么办?
在这里插入图片描述
3.Shader要想给到物体,就必须有材质。所以我们在Project面板右键,创建一个新的Material。
在这里插入图片描述
4.然后把刚才导入的Shader往新创建的材质一拽。
在这里插入图片描述
5.然后这个材质就要给到物体。我们把材质往Hierarchy面板上的游戏对象拽(存在父子物体关系的,要把材质一个一个往子物体拽)。
在这里插入图片描述








6.导入材质后,我们会发现:物体会白了。为什么物体会白了呢?
在这里插入图片描述
7.我们看到Shader里面,它需要贴图,我们没给。
在这里插入图片描述
8.我们导入材质后,物体就会恢复正常了,然后我们就可以继续修改了。
在这里插入图片描述
9.要想把Shader给到物体,不能直接给,要做材质;做了材质,把Shader给过来;然后把材质r给到物体,然后改材质里面的属性——这就是基本流程。
在这里插入图片描述
10.其实我们脑子里需要记的,就是下面这张图:
在这里插入图片描述
11.我们在实际做开发的时候,如果我们有类似于这种需求——比如我要做一个“镜子”,通过它我能看到自己;像这种效果,通过Shader去做。在工作时,Shader从哪来——一方面,我们如果没有特殊要求,就用Unity自带的;如果有特殊的需求,并且没人用过,那就要找人专门写这个。
在这里插入图片描述
12.简单的Shader我们也可以自己写,复杂的Shader还是要请专门的人来写——我们学的是用来写C#代码,写游戏逻辑的。











物理着色器

1.这里我们将一个小的概念:物理着色器。所谓物理着色器(Physically Based Shading,PBS)就是遵从物理学的能量守恒定律,可以创建出在不同光照环境下都接近真实的效果(下图为开启物理着色器的物体)。
在这里插入图片描述
2.总而言之,物理着色器:就是基于物理学定律创建的着色器。在Unity3D中,哪个是物理着色器(⊙o⊙)?
在这里插入图片描述
3.是这两项。
在这里插入图片描述
4.它们俩有一点点小变化,你能找出来吗?





Standard
在这里插入图片描述

Standard(Specular setup)
在这里插入图片描述
5.没错,就是第二项属性。Standard的第二项是Metal(金属),Standard(Specular setup)的第二项是Specular(镜子)。

Standard
在这里插入图片描述

Standard(Specular setup)
在这里插入图片描述
6.只要你使用了Unity提供的标准着色器,那这个着色器就是基于物理的着色器。Unity官方废了很大的劲把这个写出来,很不容易的。
在这里插入图片描述
7.如果我们在做游戏开发的时候,如果我们没有特殊需求,大多数时候我们用标准着色器就可以啦。它会和它的光照在一起,大多数时候,看起来都比较逼真。
在这里插入图片描述




小结

1.对于材质,我们现阶段的重点都在这张图上——我们要去理解纹理、着色器与材质之间,它们是怎样一个关系。
在这里插入图片描述
2.好了,让我们下期笔记再见,ヾ( ̄▽ ̄)ByeBye
在这里插入图片描述


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!