【unity笔记】L2Unity Shader基础
·
本章导图

一、Unity Shader概述
1.效果的实现需要材质和Unity Shader一起实现
2. 流程为:
- (1)创建一个材质
- (2)创建一个Unity Shader(包含了着色器代码,纹理属性,渲染标签设置),并赋给材质
- (3)在材质面板中调整Unity Shader的属性,控制最终效果
3.材质
-
步骤一:创建材质
面板如下:

-
步骤二:创建unity shader
默认纹理设置:

unity shader详细信息栏

针对不同图形api编译的shader代码

- 步骤三:将shader赋给材质

二、Shader Lab
1、定义:一种为抽象层Unity Shader服务的语言

2.语法
-
shader“ ”:填写shader的名字,加‘/’表示层级关系

-
properties:定义着色器所需的各种属性,可以让对应属性出现在材质面板中。其中,数字类型的默认值就是一个数字;color和vector属性的默认值是一个圆括号包围的一个四维向量;2d,cube,3d这三种纹理类的默认值为字符串(内置纹理名称)结构如下:

实例:

-
SubShader:子着色器:为不同类型的显卡定义不同的着色指令,以满足不同配置的要求。其中,可分为标签(一个键值对,告诉渲染引擎何时以及如何渲染这个对象),状态设置(设置显卡的状态,是否开启混合/深度测试等),Pass(定义的一个完整的渲染流程,有普通Pass,UsePass,GrabPass)三部分,结构如下:

标签:

状态设置:

Pass:

PASS可用于提高代码的复用性。其中,Name部分必须全部大写,Pass的Tag和SubShader的相比只能表示渲染方式。

- Fallback:如果上述的SubShader都不能运行,那么执行Fallback对应的shader

三、Unity Shader形式
- 真正意义上的shader代码都需要包含在shaderLab语义块中,有两种着色器代码类型:表面着色器和顶点/片元着色器

1.表面着色器(主要是Unity后台执行的,不需要过多干预)

2.顶点/片段着色器(在Pass语义块中,而非SubShader,灵活性很高)

更多推荐


所有评论(0)