#ifndef MY_CGING
#define MY_CGING
//兰伯特
float Lambert1 (float3 n,float3 l){
float Dot1 = dot(n,l);
float lambert = max(0.0,Dot1);
return lambert;
}
//半兰伯特
float HalfLambert1 (float3 l,float3 n){
float halfLambert= (dot(l,n)*0.5+0.5);
return halfLambert;
}
//phong
float Phong1 (float3 v,float3 n,float3 l,float _SpecularPower){
float3 vRDir = reflect( -v, n );
float Phong = pow(dot(l,vRDir),_SpecularPower);
return Phong;
}
//顶光,侧光,底光
float3 threeColAmbient (float3 n,float3 _Up, float3 _Side,float3 _Down){
float uMask = max(0.0,n.g);
float dMask = max(0.0,-n.g);
float sMask = 1-uMask-dMask;
float3 envcol = _Up * uMask+
_Side * sMask+
_Down * dMask;
return envcol;
}
#endif