Fixed function shader
Fixed function shader(固定功能的Shader),针对硬件能够执行的基本的命令,这个Shader功能有限,编写较为简单,但处理却是最快的。
Shader "GK/TEST"
{
properties
{
_Color("主颜色",color)=(1,1,1,1)
_Ambient("环境光",color)=(0.3,0.3,0.3,0.3)
_Specular("高光",color)=(1,1,1,1)
_Shininess("高光范围",range(0,8))=4
_Emission("自发光",color)=(1,1,1,1)
_MainTex("主纹理",2d)=""{}
_SecondTex("副纹理",2d)=""{}
_Constant("ConstantColor",color)=(1,1,1,0.3)
}
SubShader
{
tags{"Queue"="Transparent"}//如果需要透明,则需要调整渲染次序
pass
{
Blend SrcAlpha OneMinusSrcAlpha//混合方式,原自身的透明度与1-原自身透明度混合
//color(1,0,0,1)//着色颜色
//color[_Color]//中括号代表的这是一个参数值,小括号代表的是一个固定值
material//材质
{
diffuse[_Color]//材质的漫反射,本身固有的颜色,但是没有光照,是无法表现出来
ambient[_Ambient]//环境光对物体的影响
specular[_Specular]//高光
shininess[_Shininess]//高光范围
emission[_Emission]//自发光
}
lighting on//打开光
separatespecular on//要用高光 必须开启
settexture[_MainTex]//设置纹理
{
combine texture*primary double //合并纹理,primary指的是顶点光照过后的颜色,double 是指前面的颜色值x2
}
settexture[_MainTex]//设置多个纹理的时候,可以直接写settexture,不同的显卡有不同的纹理混合张数的上线
{
constantColor[_Constant]//颜色参数
combine texture*previous double,texture*constant //合并纹理,previous指的是前面所有采样过后的结果,double 是指前面的颜色值x2,texture是指混合自身纹理的透明通道(如果不填,则混合上面所计算的透明通道),constant是前面的颜色参数 少了一个Color
}
}
}
}
发表评论