34 lines
1.1 KiB
HLSL
34 lines
1.1 KiB
HLSL
#ifndef DIFFUSE_INCLUDE
|
|
#define DIFFUSE_INCLUDE
|
|
struct VertexInput
|
|
{
|
|
float4 vertex : POSITION;
|
|
float3 normal : NORMAL;
|
|
float4 tangent : TANGENT;
|
|
float4 color : COLOR;
|
|
float2 uv : TEXCOORD0;
|
|
UNITY_VERTEX_INPUT_INSTANCE_ID
|
|
};
|
|
|
|
struct VertexOutput
|
|
{
|
|
float4 pos : SV_POSITION;
|
|
float4 uv : TEXCOORD0;
|
|
float4 normalDir : TEXCOORD1;
|
|
float3 tangentDir : TEXCOORD2;
|
|
float3 bitangentDir : TEXCOORD3;
|
|
float4 posWorld : TEXCOORD4;
|
|
LIGHTING_COORDS(5,6)
|
|
UNITY_FOG_COORDS(7)
|
|
//UNITY_VERTEX_INPUT_INSTANCE_ID
|
|
};
|
|
inline half3 Diffuse(fixed3 _normalMap,fixed4 _mainTex,VertexOutput i)
|
|
{
|
|
fixed3 _lightDir = normalize(_WorldSpaceLightPos0.xyz);//光照方向
|
|
fixed _NdotL = saturate(dot(_normalMap, _lightDir));//漫反射强度
|
|
fixed3 _finalDiffuse = _NdotL * _LightColor0.xyz;//主平行光源颜色
|
|
_finalDiffuse *= LIGHT_ATTENUATION(i);//接收投影
|
|
_finalDiffuse += UNITY_LIGHTMODEL_AMBIENT.rgb;//环境色
|
|
return _finalDiffuse;
|
|
}
|
|
#endif |