I am having a major problem with the URP Blinn-Phong function not returning the actual diffuse lighting values. All it returns is completely pitch black.
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
struct Attributes {
float3 positionOS : POSITION;
float3 normalOS : NORMAL;
float2 uv : TEXCOORD0;
};
struct Interpolator {
float4 positionCS : SV_POSITION;
float2 uv : TEXCOORD0;
float3 normalWS : TEXCOORD1;
};
TEXTURE2D(_ColorMap); SAMPLER(sampler_ColorMap);
float4 _ColorMap_ST;
float4 _ColorTint;
Interpolator Vertex(Attributes input)
{
Interpolator output;
VertexPositionInputs posnInputs = GetVertexPositionInputs(input.positionOS);
VertexNormalInputs normInputs = GetVertexNormalInputs(input.normalOS);
output.positionCS = posnInputs.positionCS;
output.uv = TRANSFORM_TEX(input.uv, _ColorMap);
output.normalWS = normInputs.normalWS;
return output;
}
float4 Fragment(Interpolator input) : SV_TARGET
{
float4 colorSample = SAMPLE_TEXTURE2D(_ColorMap, sampler_ColorMap, input.uv);
InputData lightingInput = (InputData)0;
lightingInput.normalWS = input.normalWS;
SurfaceData surfaceInput = (SurfaceData)0;
surfaceInput.albedo = colorSample.rgb * _ColorTint.rgb;
surfaceInput.alpha = colorSample.a * _ColorTint.a;
return UniversalFragmentBlinnPhong(lightingInput, surfaceInput);
}
