Pass 的通用指令 LOD
// 通过对SubShader 设定一个整形 Level Of Detail 即 LOD 数值,
//可以在运行时根据硬件设备的能力决定是否使用此shader,
//以及使用哪一个层级的 SubShader
//下面Shader中包含两个数值的LOD LOD 600 和 LOD 500
Shader "Custom/PassOne" {
Properties {
//定义一个颜色
_Color ("Main Color", Color) = (0, 0, 1, 0.5)
//定义一个贴图
_MainTex ("Base (RGB)", 2D) = "white" {}
}
SubShader
{
Tags {"RenderType" = "Opaque" "IGNOREPROJECTOR" = "TRUE" "QUEUE" = "Transparent"}
//在此设置该shader的LOD 为 600 如果机器能支持 LOD值 为 600 那么该shader执行该SubShader
LOD 600
Pass
{
Material
{
Diffuse [_Color] // 使用定义的颜色为漫反射
//或者 Diffuse (0, 1, 0, 1) 直接写颜色数值
}
// 打开光照, 在此要打开,因为本shader 没写自发光,
// 只能依靠反射世界中的其他光才能显示出颜色,
// 如果 设置为 Lighting Off,关掉光照,那么就成黑色的了
Lighting On
//给材质设置 贴图
SetTexture [_MainTex]
{
Combine texture * primary double
}
}
}
SubShader
{
//此处设置LOD 为 500 如果机器无法支持 600,那么机器在渲染的时候
//将跳过第一个SubShader,如果能支持 500,那么 跳过 第一个SubShader后
//会执行本 SubShader
LOD 500
Pass
{
Material
{
Diffuse (0, 1, 0, 1) //在此直接写颜色值
}
Lighting On
}
}
FallBack "Diffuse"
}
效果如下
在此仅仅设置了颜色,没有添加贴图
下面添加了贴图,颜色设置为(1, 1, 1, 1)
效果如下