SubShader的Tag

Shader "ShaderLab Tutorials/TestShader" { 
    SubShader 
    { 
        Tags { "Queue"="Geometry+10" "RenderType"="Opaque" } 
        //... 
    } 
} 

  "Queue"标签。定义渲染顺序:
  • "Background"。值为1000。比如用于天空盒。
  • "Geometry"。值为2000。大部分物体在这个队列。不透明的物体也在这里。这个队列内部的物体的渲染顺序会有进一步的优化(应该是从近到远,early-z test可以剔除不需经过FS处理的片元)。其他队列的物体都是按空间位置的从远到近进行渲染。
  • "AlphaTest"。值为2450。已进行AlphaTest的物体在这个队列。
  • "Transparent"。值为3000。透明物体。
  • "Overlay"。值为4000。比如镜头光晕。
  • 用户可以定义任意值,比如"Queue"="Geometry+10"
"RenderType"标签。Unity可以运行时替换符合特定RenderType的所有Shader。 Camera.RenderWithShader 或者 Camera.SetReplacementShader 配合使用。Unity内置的RenderType包括:
  • "Opaque":绝大部分不透明的物体都使用这个;
  • "Transparent":绝大部分透明的物体、包括粒子特效都使用这个;
  • "Background":天空盒都使用这个;
  • "Overlay":GUI、镜头光晕都使用这个;
  • 还有其他可参考Rendering with Replaced Shaders;用户也可以定义任意自己的RenderType字符串。

"ForceNoShadowCasting",值为"true"时,表示不接受阴影。

"IgnoreProjector",值为"true"时,表示不接受Projector组件的投影。 

你可能感兴趣的:(Shaders)