美文网首页
2019-08-07Unity Shader常见指令和标签

2019-08-07Unity Shader常见指令和标签

作者: Nmao | 来源:发表于2019-08-07 15:25 被阅读0次

    前言
    学习Shader的过程中,经常见到一些不明其意的指令或标签或常量,本文记录下供以后参考,因ShaderLab语言也是不断发展的,而学习中看到的Shader很可能已过时,所以本文记录的内容也可能过时。

    正文 1.Properties块中的特殊命令
    -命令 - 参数 - 说明
    -[Header(test)] ---括号内即为头标题的显示文字 ---不要加引号,不支持中文
    -[NoScaleOffset] -------------------------------- 隐藏贴图的Tilling和Offset选项
    -[Toggle] ---------------------------------------模拟开关,0为假,1为真,同[MaterialToggle]

    2、SubShader块中的渲染状态设置指令

    指令 参数 说明
    Cull Cull Back/Front/Off 剔除模式
    ZTest ZTest Less/Greater/Equal/LEqual/GEqual/NotEqual/Always 深度测试
    ZWrite ZWrite On/Off 深度写入
    Blend Blend xx 颜色混合模式
    Blend比较复杂,包含以下几种形式:

    1. Blend Off
      关闭颜色混合模式,默认值
    2. Blend SrcFactor DstFactor
      最终颜色 = SrcFactor源颜色(即计算出来的片元颜色值) + DstFactor目标颜色(即颜色缓冲区中的颜色值)
    3. Blend SrcFactor DstFactor,SrcFactorA DstFactorA
      与2相似,只是把Alpha通道分离出来了
      上述SrcFactor和DstFactor的值可以为以下任一值:

    指令 值
    One 1
    Zero 0
    SrcColor 源颜色
    SrcAlpha 源透明度
    DstColor 目标颜色
    DstAlpha 目标透明度
    OneMinusSrcColor 1 - 源颜色
    OneMinusSrcAlpha 1 - 源透明度
    OneMinusDstColor 1 - 目标颜色
    OneMinusDstAlpha 1 - 目标透明度

    1. Blend Op
      采用操作符进行计算

    指令 值
    Add 源颜色 + 目标颜色
    Sub 源颜色 - 目标颜色
    RevSub 目标颜色 - 源颜色
    Min 取源颜色和目标颜色中的较小者
    Max 取源颜色和目标颜色中的较大者

    1. Blend OpColor,OpAlpha
      与4相似,只是把透明通道分离出来了

    二、SubShader块中的Tag标签

    标签类型 值 说明
    Queue Background/Geometry/AlphaTest/Transparent/Overlay 对应值为1000/2000/2450/3000/4000
    RenderType Opaque/Transparent/TransparentCutout/
    Background/Overlay/TreeOpaque/TreeTransparentCutout/
    TreeBillboard/Grass/GrassBillboard 用于替代渲染和获取场景深度和法线信息
    DisableBatching true/false 禁用批处理
    ForceNoShadowCasting true/false 禁止投射阴影
    IgnoreProjector true/false 忽略Projector,通常用于半透明物体
    CanUseSpriteAtlas true/false 当该SubShader用于Sprite时用false
    PreviewType Plane/SkyBox 预览形状

    相关文章

      网友评论

          本文标题:2019-08-07Unity Shader常见指令和标签

          本文链接:https://www.haomeiwen.com/subject/asgodctx.html