ShaderLab基础(属性)

1.    打开上一次课新建的Custom/HelloShader ,接下来分析这个ShaderLab中的内容:


从这个文件可以看出 Shader是定义一个Shader的关键字,”Custom/HelloShader”是这个Shader的名字然后是大括号{}用于定义Shader的内容,因此Shader的定义格式如下:

Shader   “Name” {

}

例子如下图所示


接下来分析{}中的内容

1.    关键字Properties

1.1.用途

关键字Properites主要用于定义Shader的接口变量,以便于Material使用Shader时,对其进行赋值。

比方说这里定义了一个_MainTex变量,当选取HelloMat这个材质的时候,就可以看见HelloMat有Base (RGB)这个属性,如下图所示


当把_MainTex这个属性取消后,发现材质属性没有了。

 

1.2.属性定义

属性定义可以参考http://www.ceeger.com/Components/SL-Properties.html

在这个链接里有对属性的详细定义。

例子如下图所示


 1,3.属性控制

属性控制有下面两种方式:

a).直接通过界面控制,比如上图可以选取Texture对_MainTex进行赋值,物体渲染效果如下


b)通过Material提供的接口进行控制:

     2D           SetTexture("属性名",tex)

    Color      SetColor("属性名",clr)

    Vector     SetVector("属性名",vec)

    float        SetFloat("属性名",f)

   range      SetFloat("属性名",f)


1.4.属性使用

 在shader中使用属性前,需要定义相应的变量,然后才能使用,以下是在不同属性类型相对应的变量定义,需要注意的是变量名与属性名一致

     2D          sampler2D  变量名

    Color      float4(half4,fixed4) 变量名

    Vector     float4(half4,fixed4) 变量名

    float        float(half,fixed) 变量名

   range       float(half,fixed) 变量名

例子如下图所示


上一节 ShaderLab基础(渲染管线)

下一节  ShaderLab语法(SubShader)

xia ShaderLab语法(SubShader) 

Unity开发 QQ群:528152133

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zyq20130118

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值