//Shader開頭
//"MyFirstShader/Unlit/MyFirstShader"提供一個(gè)索引
Shader "MyFirstShader/Unlit/MyFirstShader"
{
//存放跟外部相關(guān)的shader屬性(屬性模塊)
Properties{
//如何定義屬性
//關(guān)于數(shù)值類型的三種寫法
_MyInt("Int參數(shù)",int)=0
_MyFloat_1("Float參數(shù)",Float)=0
_Myfloat("浮點(diǎn)型參數(shù)",Range(0,1))=0
//關(guān)于向量類型的參數(shù)
_MyVector("普通向量",Vector)=(0,0,0,0)//普通向量的初始化
_MyColor("顏色參數(shù)",Color)=(0,0,0,0)
//關(guān)于紋理類型的參數(shù)
_MyTexture("貼圖",2D)="white"{}//{}默認(rèn)值為空
_MyTexture3D("3D貼圖參數(shù)",3D)="white"{}
_MyTextureCube("立方體貼圖參數(shù)",Cube)="white"{}
}
//存放一些shader代碼
Subshader{
pass{
}
}
//當(dāng)Subshader中的代碼不符合當(dāng)前運(yùn)行設(shè)備,將會(huì)調(diào)用"name"
Fallback"name"
}
shader"MyShader/Cull"
{
Properties{
_AmbientColor("AmbientCOlor",Color)=(1,1,0,1)
_MainColor("MainColor",Color)=(0,0,0,1)
_MainTex("MainTex",2D)="white"{}
}
SubShader{
Pass{
Material{
Diffuse[_MainColor]//漫反射
Ambient[_AmbientColor]
}
//Material{
//Diffuse(1,1,1,1)
//}
//On接收光照的影響
Lightingon
//剔除Front/Back/off正面熊昌,背面盆顾,不剔除
CullBack
//設(shè)置貼圖
SetTexture[_MainTex]{
Combinetexture*primary?DOUBLE,texture*primary//顏色混合
}
}
}
}
settexture[_MainTex]{//combine 命令 用法形式有8種
//combine src1 * src2 結(jié)果紋理將比輸入紋理更暗外潜。
//combine src1 + src2 結(jié)果紋理將比輸入紋理更明亮邪驮。
//combine src1 - src2 高亮的部分將變暗
//combine src1 +- src2 src1和src2相加嘱根,然后減去0.5
//combine src1 lerp (src2) src3 在src3和src1之間做插值网梢,使用src2的alpha值履澳。請(qǐng)注意插值是相反的方向竖哩,當(dāng)alpha為1時(shí)候src1使用哭廉,當(dāng)alpha為0時(shí)候src3使用。
//combine src1 * src2+src3 src1與src2的alpha值混合相叁,然后添加src3
//combine src1 * src2+-src3 src1與src2的alpha值混合遵绰,然后和有符號(hào)的src3相加//所有src屬性都可以為:previous, constant, primary 或texture//所有src屬性,除lerp外增淹,可以使用符號(hào)-來(lái)使最終顏色反相椿访。//所有的src屬性后面可以有且僅有1個(gè)alpha.
//combine texture//combine texture * primary //primary代表之前顏色值加光照的計(jì)算結(jié)果
//combine texture * primary double//combine texture - primary quadcombinetexture* primary quad//Double或者Quad使結(jié)果的顏色2倍或者4倍明亮。}