固定管线是在老一代GPU能力比较有限时,对Shader的约束性比较高的一种形态。为了市场占有率,新一代的显卡仍对其有所选择地进行支持,但是会在未来逐步被淘汰。在ShaderLab中,固定管线的形态和语法和NVIDIA的CgFX以及微软的FX文件比较类似。
示例:
Shader "Custom/Shader_Fixed" {
Properties {
_Color ("Main Color", Color) = (1, 1, 1, 0.5)
_SpecColor ("Spec Color", Color) = (1, 1, 1, 1)
_Emission ("Emmisive Color", Color) = (0, 0, 0, 0)
_Shininess ("Shininess", Range(0.01, 1)) = 0.7
_MainTex ("Base (RGB)", 2D) = "white" {}
}
SubShader {
Pass {
Material {
Diffuse [_Color] //设置漫反射光颜色
Ambient [_Color] //设置环境光颜色
Shininess [_Shininess] //设置加亮时光泽度
Specular [_SpecColor] //设置高光颜色
Emission [_Emission] //设置自发光颜色
}
Lighting On //开启光照
SeparateSpecular On //开启高光
SetTexture [_MainTex] {
constantColor[_Color]//定义在合并命令中能被使用的常量颜色(constant)
Combine texture * primary DOUBLE, texture * constant
}
}
}
}
可以在属性面板中调整参数同时在编辑窗口预览效果