官方文档: LOD:https://docs.unity3d.com/Manual/SL-ShaderLOD.html 渲染顺序:https://docs.unity3d.com/Manual/shader-objects.html#order-of-operations

渲染顺序

Unity在运行时,首先会遍历所有的SubShader
1、检查是否与设备兼容
2、检查是否与当前渲染管线兼容

  1. Tags { "RenderPipeline" = "HighDefinitionRenderPipeline" }

3、检查是否低于或等于当前【渲染管线】的Lod
(高于管线的则为不符合要求SubShader)

  1. SubShader
  2. {
  3. Tags{ }
  4. LOD 100
  5. }

如果有多个SubShader符合要求,Unity会选择当中靠前(第一个)SubShader运行
如果设备不支持列表中所有的SubShader,则会报错

Lod 着色器的细节级别

渲染管线中可以设置使用的LOD等级,一般情况下LOD等级越高的会配置得越豪华
⚠️注意:
高LOD的着色器必须放在前面,
因为如果渲染管线先找到低LOD着色器时,会直接使用低的,
高LOD的着色器永远都不会被调用

  1. Shader "File/HibariLOD"
  2. {
  3. SubShader
  4. {
  5. LOD 300
  6. Pass{}
  7. }
  8. SubShader
  9. {
  10. LOD 200
  11. Pass{}
  12. }
  13. SubShader
  14. {
  15. LOD 100
  16. Pass{}
  17. }
  18. }