shader 入门精要 之 学习笔记 02
ShaderLab的基本结构
//以下是ShaderLab的语义,包括Properties{},SubShader{},Fallback{}
//ShaderLab是Unity Shader的基础。
//ShaderLab是Unity提供的编写Unity Shader的一种说明性语言。用Cg/HLSL语言。
//它使用了一些嵌套在花括号中的语义来描述一个Unity Shader文件的结构
//这是Unity Shader的结构
shader “custom/FirstShader //shader名” {
Properties{
_Int ("Int",Int) = 2
_Float("Float",Float) = 1.2 //属性这样写: _大写字母开头的英文名("要显示的名字" ,对应的类型) = 值
}
SubShader{ //除了固定函数着色器外,顶点,片元,表面着色器都要写在CGPROGRAM 和 ENDCG之间
//写表面着色器Surface Shader
//Tags{"TagName//属性名" = " value" "" = "" } //Tags是可选的标签设置, RenderSetUp是可选的状态设置
//renderSetUp //注意:如果在SubShader中进行了标签和状态设置,将会用于所有的pass,pass也可以声明Tags和RenderSetUp
pass{ //每个pass定义了一次完整的渲染流程,数目过多会造成渲染性能下降。
// 在这里写顶点或者片元着色器
[name]
Tags{}
RenderSetUp{}
}
}
SubShader{}
SubShader{}
Fallback Off或者 //最后一条路
Fallback "name"
}