Shader "Wang/Fixed"
{
Properties
{
_Color("Main Color",color) =(1,1,1,1)
//环境光
_Ambient("Ambient",color)=(0.3,0.3,0.3,0.3)
//高光
_Specular("Specular",color)=(1,1,1,1)
//高光范围
_Shininess("Shininess",range(0,8))=4
//自发光
_Emission("Emission",color)=(1,1,1,1)
//纹理贴图
_MainTex("MainTex",2d)="white"{}
//第二张纹理
_SecondTex("SecondTex",2d)="white"{}
_Constant("Conatant",color)=(1,1,1,0.3)
}
SubShader
{
//将颜色设置为从外部传入的颜色 需添加光照才会想3D
// color[_Color]
tags{ "Queue"="Transparent" }
pass
{
blend SrcAlpha OneMinusSrcAlpha
material
{
//漫反射 使用原来的颜色 需使用光照
diffuse[_Color]
//环境光
ambient[_Ambient]
//高光 需将独立的镜面高光打开
specular[_Specular]
//控制高光范围
shininess[_Shininess]
//自发光
emission[_Emission]
}
//使用光照
lighting on
//独立的镜面高光
separatespecular on
//设置纹理
settexture[_MainTex]
{
//和之前设置的顶点光照做合并 rgba都是0~1 *primary颜色会偏黑 赢把最终值乘2
combine texture * primary double
}
settexture[_SecondTex]
{
//可使用Matrix
constantColor[_Constant]
//和之前的图像混合 用primary只是保存顶点光照 不能用于贴图合并
//逗号之后的texture表示和texture的alpha做混合 *constant表示用来控制它的alpha
combine texture * previous double,texture * constant
}
}
}
}
unity shader的固定管线(fixed function shader)
最新推荐文章于 2023-05-18 10:43:51 发布