shader - 属性

着色器可以定义一个参数列表,可以由开发者在材质检视面板编辑参数。着色器文件中的Properties块定义了这些参数:
Syntax
Properties { Property [Property …] }定义属性块,其中可包含多个属性,其定义如下

name (“display name”, Range (min, max)) = number
定义浮点数属性,在检视器中可通过一个标注最大最小值的滑条来修改。number 表示初始赋值

name (“display name”, Color) = (number,number,number,number)
定义颜色属性

name (“display name”, 2D) = “name” { options }
定义2D纹理属性

name (“display name”, Rect) = “name” { options }
定义长方形(非2次方)纹理属性

name (“display name”, Cube) = “name” { options }
定义立方贴图纹理属性

name (“display name”, Float) = number
定义浮点数属性

name (“display name”, Vector) = (number,number,number,number)
定义一个四元素的容器(相当于Vector4)属性

                            **Details 细节**

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

  1. 对于Range和Float类型的属性只能是单精度值。
  2. 对于Color和Vector类型的属性将包含4个由括号围住的数描述。
  3. 对于纹理(2D, Rect, Cube) 缺省值既可以是一个空字符串也可以是某个内置的缺省纹理:”white”, “black”, “gray” or “bump”
  4. 随后在着色器中,属性值通过[name]来访问。

Example 示例

Properties {
    // properties for water shader
    // 水着色器的属性
    _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) = "" {}
}

Texture property options 纹理属性选项

  • 包含在纹理属性的大括号中的选项是可选的。可能的选项有:
  • TexGen texgenmode 纹理生成类型:纹理的自动生成纹理坐标时的模式。可以是ObjectLinear, EyeLinear, SphereMap, CubeReflect, CubeNormal的其中之一;这些模式和OpenGL纹理生成模式相对应。注意如果使用自定义顶点程序,那么纹理生成将被忽略。
  • LightmapMode 光照贴图模式:如果给出这个选项,纹理将能被 渲染器的光线贴图属性所影响。纹理不能被使用在材质中,而是取自渲染器的设定。

Example 示例

// EyeLinear texgen mode example
// EyeLinear 纹理生成模式
Shader "Texgen/Eye Linear" {
    Properties {
        _MainTex ("Base", 2D) = "white" { TexGen EyeLinear }
    }
    SubShader {
        Pass {
            SetTexture [_MainTex] { combine texture }
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值