原文地址http://blog.sina.com.cn/s/blog_471132920101d5of.html
Shader第二讲
:Fixed Function Shader
Fixed function shader简介: 属于固定渲染管线 Shader, 基本用于高级Shader在老显卡无法显示时的情况。使用的是ShaderLab语言,语法与微软的FX files 或者NVIDIA的 CgFX类似。例一:
显示单一颜色下面我们来看第一个例子,显示单一颜色,注释写得挺详细了,照着格式写即可。Function Shader" title="【风宇冲】Unity3D教程宝典之Shader篇:第二讲Fixed Function Shader" style="margin: 0px; padding: 0px; border: 0px; list-style: none;">//根Shader
Shader "Custom/1_1color" {
// 属性
Properties {
//定义一个颜色
_Color ("Main Color", Color) = (1,.5,.5,1)
}
// 子shader
SubShader {
Pass {
Material {
//显示该颜色
Diffuse [_Color]
}
//打开光照开关,即接受光照
Lighting On
}
}
}
例二:显示一张贴图Function Shader" title="【风宇冲】Unity3D教程宝典之Shader篇:第二讲Fixed Function Shader" action-data="http%3A%2F%2Fs15.sinaimg.cn%2Fmw690%2F47113292td0e101ae8f0e%26690" action-type="show-slide" style="margin: 0px; padding: 0px; border: 0px; list-style: none;">Function Shader" title="【风宇冲】Unity3D教程宝典之Shader篇:第二讲Fixed Function Shader" style="margin: 0px; padding: 0px; border: 0px; list-style: none; width: 135px; height: 180px;">Shader "Custom/1_2show1texture" {
Properties {
_MainTex ("Base (RGB)", 2D) = "white" {}
_Color("Main color",Color) = (1,1,1,1)
}
SubShader {
Pass
{
Material
{
Diffuse[_Color]
}
Lighting on
SetTexture[_MainTex]
{
//combine color部分,alpha部分
// 材质 * 顶点颜色
Combine texture * primary,texture * constant
}
}
}
}
例三:两张贴图叠加****Function Shader" action-data="http%3A%2F%2Fs9.sinaimg.cn%2Fbmiddle%2F47113292td0e150c65108%26690" action-type="show-slide" style="margin: 0px; padding: 0px; border: 0px; list-style: none; width: 330px; height: 297px;">Function Shader" style="margin: 0px; padding: 0px; border: 0px; list-style: none;">Shader "Custom/1_3merge2texture" {
Properties {
_MainTex ("Base (RGB)", 2D) = "white" {}
_MainTex2 ("Tex2 (RGB)", 2D) = "white" {}
_Color("Main color",Color) = (1,1,1,1)
}
SubShader {
Pass
{
Material
{
Diffuse[_Color]
}
Lighting on
SetTexture[_MainTex]
{
// 第一张材质 * 顶点颜色
Combine texture * primary
}
SetTexture[_MainTex2]
{
// 第二张材质 * 之前累积(这里即第一张材质)
Combine texture * previous
}
}
}
}