Mecanim 发表于 2022-6-21 16:33

【Unity Shader 中Properties 相关介绍】

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读取命令并且执行。      //上面这些是渲染流水线的基础知识,具体的细节可以参考第一篇里的书籍。http://t.csdn.cn/Dm8Hs      //////////////////////////////////////////////////////////////////////////////////////    }    SubShader      这一部分的内容留到下次介绍      //////////////////////////////////////////////////////////////////////////////////////    {      **************************************      Pass      {            CGPROGRAM            **************************************            }            ENDCG      }    }}



显示在Inspector面板上的内容

        _MainTex ("Texture", 2D) = "white" {}
      _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) = "" {}
对应的代码块,可以直观的对比一下。
页: [1]
查看完整版本: 【Unity Shader 中Properties 相关介绍】