找回密码
 立即注册
查看: 243|回复: 0

【Unity Shader 中Properties 相关介绍】

[复制链接]
发表于 2022-6-21 16:33 | 显示全部楼层 |阅读模式
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) = "" {}
对应的代码块,可以直观的对比一下。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-15 23:46 , Processed in 0.092313 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表