Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

ShaderLab 基础结构

一、什么是 ShaderLab

Unity shader 是对 shader 的一种封装 它是对底层图形渲染技术的封装,它提供了一种叫做 shaderLab 的语言。

  • ShaderLab 是 unity 自定义的一种语法规则,用于在 untiy 中编写和管理着色器的专门的语言
  • 它提供了一种结构化的方式来描述 Unity 着色器的各个部分
  • 无论我们编写哪种类型的 shader,或是选择哪种语言去编写 shader 在 Unity 中总会通过 shaderLab 语言对其进行包装和组织

二、ShaderLab 的基本结构

1.基本构成

主要有四部分组成

  • Shader 的名字
  • Shader 的属性
  • 1~n 个子着色器
  • 备用的 shader

2. 基本结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//第一部分
shader "着色器名字"
{
//第二部分 着色器属性
Properties
{
//材质面板上看见的属性
}
//第三部分 子着色器
SubShader
{
//顶点-片元着色器 或 表面着色器 或 固定函数着色器
}
SubShader
{
//更加精简的版本
//目的是为了更加适配旧的设备
//1.渲染标签
Tags{"标签一"="标签值1" "标签二="标签值2"...}
//2.渲染状态
//......
//3.渲染通道
Pass
{
//第一个渲染通道
//1. Name 名称名
//2. 渲染标签
//3. 渲染状态
//4. 其他着色器代码
}
Pass
{
//第二个渲染通道
}
}
//···可以接多个SubShader代码块

//第四部分 备用着色器
Fallback "备用Shader"
}

评论