Shader "Unlit/NewUnlitShader"
//第一行代码是shader在项目里的路径位置,类似建文件夹一样。当在Material选择shader时,根据自己定义的路径选择相应的shader,"/"表示文件的下一层。
//下面是一个基础的无阴影的shader正文。
{
Properties
{
//下面是属性面板,会显示到的Inspector,
_MainTex ("Texture", 2D) = "white" {}
//它的结构如下
//_Variable Name ("Inspector GUI Name", Type) = (Default Value)
//_变量名 ("在Inspector面板显示的名称" 变量类型) = (变量的默认值)
//下面是左到右的对应解释
//_Variable Name : 变量名,Pass结构里会用到,会起到相关联作用。
//Inspector GUI Name : 这个是在Inspector面板显示的名称,主要是方便使用和理解,像是对应的注解。
//Type :变量的类型。一般定义了变量名后,变量的类型可选择的就不是很多了,可以在网上找找Unity Shader变量类型。
//Default Value : 变量的默认值,不可省略哦。
//下面是可能会出现的 Properties 的结构
_2D("2D", 2D) = "" {}
_Color("Color",Color) = (1,1,1,1)
_Value("Value",Range(0,10)) = 2.5
_Float("Float",Float) = 0
_Vector("Vector",Vector) = (0,0,0,0)
_Rect("Rect",Rect) = "" {}
_Cube("Cube",Cube) = "" {}
//_Color("Color",Color) = (1,1,1,1) = 白色,也即默认变量值是白色。
//_Value("Value",Range(0,10)) = 2.5 这是常数,其中Range 是一个范围值,在Inspector面板显示的是一个滑动条,左小右大顺序。
//_Float("Float",Float) = 0 其中Float 是浮点数,可以输入数字的变量。
//_Vector("Vector",Vector) = (0,0,0,0) Vector是向量,(0,0,0,0)是个四维向量,在Inspector面板显示的是四个数字坑位。通常会跟相关联的变量做加减乘除数学运算,最终实现效果。
//_A("B",C) = (D)
//等于号的右侧的一目了然,上面介绍得很清楚。
//等于号的左侧(D),为什么有的地方是 "" {} 这种形式,有的是 (1,1,1,1) 这种形式,有的直接是 数字 这种形式?
///
//例如 : _2D _Rect _Cube 这三个变量的默认值是这"" {}形式。
//其中 _2D 是图片, _Rect 是UV _Cube 是模型。
//根据不同的变量名类型造成的,变量名不一样,含义会有所变化。
//而这些图片、UV和模型都需要主存加载相应数据给显存的,渲染所需的数据从硬盘最终加载到显存。
//渲染中需要加载到显存中的数据非常复杂,如果数据全部读取或者存留,
//这样加载的计算量巨大且耗时,需要通过CPU设置渲染状态,"引导"GPU执行的命令。
//也即CPU提供数据给GPU的部分,其中CPU添加命令 (应用阶段),GPU读取命令并且执行。
//上面这些是渲染流水线的基础知识,具体的细节可以参考第一篇里的书籍。
//
}
SubShader
这一部分的内容留到下次介绍
//
{
**************************************
Pass
{
CGPROGRAM
**************************************
}
ENDCG
}
}
}
显示在Inspector面板上的内容。供参考。
其中Inspector GUI Name的命名是可以根据自己喜欢取的,只要自己看得懂即可。