Unity3d Shader开发(一)Properties

着色器可以定义一个参数列表,可以由开发者在材质检视面板编辑参数。着色器文件中的Properties块定义了这些参数:

   

    该文章出自【狗刨学习网】

    语法:

     Properties { 
          Property [Property ...]
           }


    定义属性块,其中可包含多个属性,其定义如下 :


    name ("display name", Range (min, max)) = number


    定义浮点数属性,在检视器中可通过一个标注最大最小值的滑条来修改。


    _WaveScale ("Wave scale", Range (0.02,0.15)) = 0.07


    


    name ("display name", Color) = (number,number,number,number)


    定义颜色属性。


     _RefrColor ("Refraction color", Color) = (.34, .85, .92, 1) // color

      

    name ("display name", 2D) = "name" { options }


     定义2D纹理属性

    _MainTex ("Base (RGB)", 2D) = "white" {}

      

    name ("display name", Rect) = "name" { options }


   定义长方形(非2次方)纹理属性


   _DisplayRect("Display Rect",Rect)  ="white"


    


    name ("display name", Cube) = "name" { options }


    定义立方贴图纹理属性


    _DisplayCube("Display Cube",Cube)  =""



    


    name ("display name", Float) = number


    定义浮点数属性


    _DisplayFloat("Display Float",Float)  =20.1



    


    name ("display name", Vector) = (number,number,number,number)


    定义四个向量组成的属性


    _DisplayVector("Display Vector",Vector)  =(1,1,1,1)



    


细节:


     包含在着色器中的每一个属性通过name索引(在Unity中, 通常使用下划线来开始一个着色器属性的名字)。属性会将display name显示在材质检视器中,还可以通过在等符号后为每个属性提供缺省值。


    1.对于Range和Float类型的属性只能是单精度值。


    2.对于Color和Vector类型的属性将包含4个由括号围住的数描述。


    3.对于纹理(2D, Rect, Cube) 缺省值既可以是一个空字符串也可以是某个内置的缺省纹理:"white", "black", "gray" or "bump" 。


随后在着色器中,属性值通过[name]来访问。


  1. Properties {
  2.     // properties for water shader
  3.     // 水着色器的属性
  4.     _WaveScale ("Wave scale", Range (0.02,0.15)) = 0.07 // sliders
  5.        _ReflDistort ("Reflection distort", Range (0,1.5)) = 0.5
  6.     _RefrDistort ("Refraction distort", Range (0,1.5)) = 0.4
  7.     _RefrColor ("Refraction color", Color)  = (.34, .85, .92, 1) // color
  8.        _ReflectionTex ("Environment Reflection", 2D) = "" {} // textures
  9.        _RefractionTex ("Environment Refraction", 2D) = "" {}
  10.     _Fresnel ("Fresnel (A) ", 2D) = "" {}
  11.     _BumpMap ("Bumpmap (RGB) ", 2D) = "" {}
  12. }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值