CultPong/Assets/cod5.shader
2020-09-25 07:12:38 +01:00

60 lines
1.1 KiB
GLSL

Shader "cods/cod5"
{
Properties
{
_lightPos("Point Light Position", Vector) = (1,1,1,1)
_lightDir("Directional Light Direction", Vector) = (1,1,1,1)
_C("Point Light Color", Color) = (1,1,1,1)
_C2("Directional Light Color", Color) = (1,1,1,1)
}
SubShader
{
Tags { "RenderType"="Opaque" }
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct input
{
float4 p : POSITION;
float3 n : NORMAL;
};
struct v2f
{
float4 p : SV_POSITION;
float4 c : COLOR;
};
uniform float3 _lightPos;
uniform float3 _lightDir;
uniform float4 _C;
uniform float4 _C2;
v2f vert (input i)
{
v2f o;
o.p = UnityObjectToClipPos(i.p);
float3 n = normalize( mul(unity_ObjectToWorld, float4(i.n, 0.0)).xyz);
float3 v1 = -mul(UNITY_MATRIX_M, i.p).xyz + _lightPos;
float distance = length(v1);
float it1 = max(dot(n, v1/distance), 0.0) / (distance*distance);
float it2 = max(dot(n, normalize(_lightDir))+.5, 0.0);
o.c = _C*it1 + _C2*it2;
return o;
}
float4 frag(v2f i) : COLOR
{
return i.c;
}
ENDCG
}
}
}