LOD英文全称Levels of Detail,意为多细节层次
在shader中有很多个subshader,如果所有的subshader都不执行的话就,就执行fallback。每个subshader都可以设置一个LOD,整个shader也有一个LOD。
系统就去找第一个LOD小于等于shader的LOD的subshader执行,其他的subshader就不会被执行。
SubShader
{
Tags{ "RenderType" = "Opaque" }
LOD 100
}
SubShader
{
Tags{ "RenderType" = "Opaque" }
LOD 200
}
FallBack "Diffuse"
查看shader的LOD值方法:
Shader.maximumLOD 最大细节级别,通过shader中maximumLOD来设置shader的LOD值,可以在C#中编写测试
using UnityEngine;
public class LodOperation : MonoBehaviour {
public Shader shader;//公开属性需要关联
public int LOD_value = 600;//外部来设置shader的LOD的值
void Start()
{
Debug.Log(this.shader.maximumLOD);
}
void Update()
{
// 当前这个shader最大的LOD_value;
this.shader.maximumLOD = this.LOD_value;//关联的节点可以直接使用和改变
}
}