声明:这里是个人学习《Unity Shader入门精要》这本书的学习笔记,图片文字都是书上抄下来的(文字精简了一下,图片都是书上照搬的)。并非个人原创作品,仅供学习交流使用。
-
3-1 Unity Shader 概述
- 3-1-1 一对好兄弟:材质和Unity Shader
- 在unity中我们需要配合使用材质和unity shader 才能达到需要的效果。
- 3-1-2 Unity中的材质
- unity的可视化材质:
- 3-1-3 unity中的shader
- 在Unity5.2以及以上版本中,Unity一共提供了4种unity shader 模板:
- Standard surface shader:包含了标准光照模型的表面着色器模板
- Unlit shader:不包含光照(但包含雾效)的基本的顶点/片元着色器
- Image effect shader:为我们实现各种屏幕后处理效果提供了一个基础模版
- Compare Shader:产生一种特殊的shader文件,利用GPU的并行性来进行一些与常规渲染流水线无关的计算。
- 设置Unity shader➡️
- 图3-4:
- Default Map:指定该unity shader使用的默认纹理
- 图3-5:
- show generated code:打开一个新的文件,该文件里将显示unity在背后为该表面着色器生成的顶点/片元着色器
- Compile and show code:下拉列表检查unity shader针对不同图像编程接口
- 图3-4:
- 在Unity5.2以及以上版本中,Unity一共提供了4种unity shader 模板:
- 3-1-1 一对好兄弟:材质和Unity Shader
-
3-2 Unity Shader 的基础:shaderlab
- 什么shaderlab?
- 在unity中,所有的unity shader都是使用shaderlab来编写的。
- 一个unity shader的基础结构如下:
- 注意⚠️:文本中Properties、SubShader、Fallback等,为shaderlab的语义。这些语义定义了unity shader的结构,从而帮助unity分析unity shader文件,以便进行正确的编译。
- 什么shaderlab?
-
3-3 unity shader的结构
- 3-3-1 给我们的shader起个名字
- 每个unity shader文件的第一行都需要通过shader语义来指定unity shader的名字。
- 例如,“myshader”。通过在名字添加斜杠/,控制unity shader 在材质版中出现的位置。
- 3-3-2 材质和unity shader的桥梁:Properties
- Properties语义中包含了一系列属性(property),这些属性会出现在材质面板中。
- Properties常见属性类型:
- 3-3-1 给我们的shader起个名字