知识提要:

Mesh Filter : 存储一个Mesh(网格,模型的网格,就是模型的由哪些三角面组成,组成一个什么样子的模型,三角面的一些顶点信息)

Mesh Renderer:用来渲染一个模型的外观,就是样子, 按照 mesh给它皮肤,给它颜色

通过Material(材质)控制模型渲染的样子

Material

贴图(可以没有,可以是一个单纯的颜色)

Shader

创建shader时的模板和打包容器

(来自知乎tae)

发现有几种shader选项

  • Standard Surface Shader

标准表面着色器,是一种基于物理的着色系统(使用了Physically Based Rendering(简称PBR)技术,即基于物理的渲染技术),以模拟现实真实的方式来模拟材质与灯光之间的关系,可以很轻易的表现出各种金属反光效果,同时此种Shader的书写逻辑也更符合人类的思维模式。

  • Unlit Shader

Vertex/Fragment Shader,也就是最基本的顶点片断着色器,不受光照影响的Shader,多用于特效、UI上的效果制作。

  • Image Effect Shader

也是顶点片断着色器,只不过是针对后处理而定制的模版,后处理是什么呢?Bloom(也有人叫Glow/泛光/辉光等说法)、调色、景深、模糊等,这些基于最终整个屏幕画面而进行再处理的Shader就是后处理。

  • Compute Shader

Compute Shader是运行在图形显卡上的一段程序,独立于常规渲染管线之外的,它可以直接将GPU作为并行处理器加以利用,从而使GPU不仅具有3D渲染能力,还具有其他的运算能力。

  • Shader Variant Collection

Shader变体收集器,在上面创建的时候,你会发现Shader Variant Collection与以上四个是被隔开的,就是因为这个与它们不一样,它不是制作Shader的模版,而只是对Shader变体进行打包用的容器。

  • 注:以上的Standard Surface Shader、Unlit Shader、Image Effect Shader仅仅只是Unity为了方便我们书写而内置的几个模版,你完全可以建一个Unlit Shader,然后将其改成Surface Shader,同样也可以将一个Standard Surface Shader改成顶点片断着色器,所以这一点一定要明白,它们只是内容格式不一样的模版本而已,我们完全可以自由修改成任意我们想要的一种着色器类型,当然我们也可以通过一些手段来定制出我们自己的模版,这在后续章节中我们再进行详细介绍。

材质与shader的关系

shader必须和材质相关联才可以被游戏中的物体所引用。

从Shader子菜单中选择"Unlit Shader"。创建完成后提示让我们输入新的名称,先不管它,默认即可。

由于在Unity中Shader就是运行在图形显卡上的一段包含指令的代码,所以我们需要再创建一个材质来关联它,这样才能把材质赋给场景中的物体来实现我们想要的效果。

再创建一个材质(Material或者经常被叫做材质球),由于材质也是一个资源,所以我们还是在Project面板中点击右键,从中选择Create/Material,如下图所示:

然后现在我们有了一个Shader和一个材质球,此时如果选中材质球在Inspector面板中就可以看到它的相关参数,比如这个材质所引用的是哪个Shader,以及具体暴露出来的参数是哪些等等。

我们先重点关注下其中的Shader这个参数。

它代表的是当前这个材质球是与哪个Shader绑定关联的,我们可以点击它的下拉列表框从中进行选择,前提是我们知道我们想关联的那个Shader的名字路径是哪个,这一点我们在后面会具体说明。

现在我们采用拖动的方式进行关联,在Project面板下直接拖动Shader到材质球上,然后你会发现材质球的Inspector面板中的Shader参数就已经被指定为刚才那个Shader了。

  • 小技巧:在创建材质球的时候,如果我们选中某个Shader,然后在它上面点击右键来创建材质的话,那么这个材质会自动与此Shader进行关联,无需再单独指定。

总结一下Shader与材质的关系:

  1. 一个Shader可以与无数个材质关联。
  2. 一个材质同一时刻只能关联于一个Shader。(为什么说是同一时刻,因为我们可以通过代码去动态改变材质所关联的Shader)
  3. 材质可以赋与模型,但是Shader不行。
  4. 材质就像是Shader的实例,每个材质都可以参数不一样呈现不同的效果,但是当Shader改变时,关联它的所有材质都会相应的改变。
  5. 举个例子:比如游戏中的怪物,我们只需做一个Shader,然后每个怪物给它一个材质球,材质球上赋与不同的贴图与参数来表现不同的怪物。

2.在unity中创建shader模板相关推荐

  1. 在Unity中创建基于Node节点的编辑器 (一)

    孙广东   2018.5.13 Unity  AssetStore中关于Node节点 编辑器相关的插件可是数不胜数, 状态机,行为树,Shader 可视化等等. Unity自己也有 Animator的 ...

  2. 学习在Unity中创建一个动作RPG游戏

    游戏开发变得简单.使用Unity学习C#并创建您自己的动作角色扮演游戏! 你会学到什么 学习C#,一种现代通用的编程语言. 了解Unity中2D发展的能力. 发展强大的和可移植的解决问题的技能. 了解 ...

  3. 学习用C#在Unity中创建一个2D Metroidvania游戏

    学习用C#在Unity中创建一个2D Metroidvania游戏 你会学到: 构建2D Unity游戏 用C#编程 玩家统计,水平提升,米尔和远程攻击 敌方人工智能系统 制定级别和级别选择 Lear ...

  4. 学会在Unity中创建一个Match-3益智游戏 Learn To Create a Match-3 Puzzle Game in Unity

    MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2 Ch 语言:英语+中英文字幕(根据原英文字幕机译更准确) |时长:48场讲座(6h 38m) |大小解压后:2.8 G ...

  5. Unity中创建本地多人游戏完整案例视频教程 Learn To Create A Local Multiplayer Game In Unity

    Unity中创建本地多人游戏完整案例视频教程 Learn To Create A Local Multiplayer Game In Unity MP4 |视频:h264,1280x720 |音频:A ...

  6. unity中创建游戏场景_在Unity中创建Beat Em Up游戏

    unity中创建游戏场景 Learn how to use Unity to create a 3D Beat Em Up game in this full tutorial from Awesom ...

  7. 在Unity中创建基于Node节点的编辑器 (二) 窗口序列化

    孙广东  2018.5.13 csdn 的产品 , 真垃圾, 不想吐槽了, 文章保存就丢!     没办法  .    怎么不满意, 还是得继续用, 哎~~~ 第二部分 在Unity中序列化基于节点的 ...

  8. wordpress模板_如何在WordPress中创建类别模板

    wordpress模板 Have you visited a site where each category has different layout? In WordPress theme dev ...

  9. 如何在PowerPoint中创建自定义模板

    PowerPoint provides extremely useful resources called templates that automatically construct the fou ...

最新文章

  1. VTK:PolyData之GetMiscPointData
  2. matlab 三角形隶属函数,在MATLAB模糊逻辑工具箱中,常用的隶属函数有:
  3. Asp.Net在导入外部脚本
  4. 一招教你舍友学会尤克里里 | 今日最佳
  5. jsap支付_Java命令行界面(第20部分):JSAP
  6. socket 编程入门教程(一)TCP server 端:6、创建“通讯 ”嵌套字
  7. python3123_使用sox和python,基于时间戳列表对音频区域进行静音处理
  8. Linux常用命令(1)
  9. Python计算有向图节点的入度和出度
  10. 如何查看所安装的jdk的版本位数
  11. CSS3属性选择器(CSS3)
  12. 计算机三级——数据库技术
  13. 国密 java springboot 实现 maven依赖 SM2 SM3 SM4 介绍及示例代码 技术专家
  14. html页面批量打印EMS快递单,如何批量打印快递单/电子面单?
  15. 计算机的单位换算字节,关于计算机的存储字节单位换算和使用
  16. 证:单层感知机不能表示异或逻辑
  17. 动画练习:Punch
  18. 输入两个正整数,求其最大公约数和最小公倍数。
  19. RPG类型的游戏革命
  20. How to Find Crappy Programmers

热门文章

  1. Python爬虫开源项目代码(爬取微信、淘宝、豆瓣、知乎、新浪微博、QQ、去哪网 等等)
  2. 【故障处理】ORA-12545: Connect failed because target host
  3. nginx php 0xc0000409,卡巴斯基2016导致爱奇艺PPS影音客户端播放故障
  4. 学习笔记:在WIN11及UBUNTU平台下的基于Tkinter、pydub、pyaudio的音乐播放器
  5. 我的专业我的梦作文计算机,我的学校我的梦作文
  6. 瑞萨单片机学习:RA4M3单片机 BOOTloader升级 跳转到主程序 主程序无法执行问题
  7. Window系统查询电脑生产日期、系统信息、主机序列号和真实配置信息
  8. maven 打包命令,只编译选择模块及其依赖模块
  9. python期末考试重点_python语言基础与应用期末考试OJ
  10. Anterior and posterior commissures