[笔记]ShaderLab——Properties

Properties
{
    _WaveScale ("Wave scale", Range (0.02,0.15)) = 0.07 // sliders
    _ReflDistort ("Reflection distort", Range (0,1.5)) = 0.5
    _RefrDistort ("Refraction distort", Range (0,1.5)) = 0.4
    _RefrColor ("Refraction color", Color) = (.34, .85, .92, 1) // color
    _ReflectionTex ("Environment Reflection", 2D) = "" {} // textures
    _RefractionTex ("Environment Refraction", 2D) = "" {}
    _Fresnel ("Fresnel (A) ", 2D) = "" {}
    _BumpMap ("Bumpmap (RGB) ", 2D) = "" {}
}
  • Properties 着色器可以定义由Unity的Inspector中的设置的参数列表。着色器文件中的属性块定义了它们。
Properties { Property [Property ...] }
- Numbers and Sliders
name ("display name", Range (min, max)) = number
name ("display name", Float) = number
name ("display name", Int) = number
- Colors and Vectors
name ("display name", Color) = (number,number,number,number)
name ("display name", Vector) = (number,number,number,number)
- Textures
name ("display name", 2D) = "defaulttexture" {} //2d纹理
name ("display name", Cube) = "defaulttexture" {} //3d纹理
name ("display name", 3D) = "defaulttexture" {} //3D (volume) 

在Subshader中可以使用方括号中的属性名称来访问属性值:[name]

  • Property attributes and drawers
    • [HideInInspector] - 不显示Inspector中的属性值。
    • [NoScaleOffset] - Inspector不会使用此属性显示纹理属性的纹理平铺/偏移字段。
    • [Normal] - 表示纹理属性需要一个法线贴图。
    • [HDR] - 表示纹理属性需要高动态范围(HDR)纹理。
    • [Gamma] - 表示在UI中将float / vector属性指定为sRGB值(就像颜色一样),并且可能需要根据所使用的颜色空间进行转换。请参阅着色器程序中的属性。
    • [PerRendererData]- 表示纹理属性将以MaterialPropertyBlock的形式来自每个渲染器数据。Inspector更改这些属性的纹理槽UI。

你可能感兴趣的:([笔记]ShaderLab——Properties)