Files
2025-05-29 22:31:40 +03:00

37 lines
1.2 KiB
HLSL

#ifndef OBILIGHTINGBUILTURP_INCLUDED
#define OBILIGHTINGBUILTURP_INCLUDED
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
#include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"
half3 SampleSphereAmbient(float3 eyeNormal)
{
half3 worldNormal = mul(UNITY_MATRIX_I_V,half4(eyeNormal,0.0));
return SampleSH(worldNormal);
}
float3 ObjSpaceLightDir(in float4 modelPos)
{
float3 lightPos = mul(unity_WorldToObject,_MainLightPosition).xyz;
float3 lightVector = lightPos.xyz - modelPos * _MainLightPosition.w;
return lightVector;
}
float3 WorldSpaceLightDir(in float4 modelPos)
{
float3 vertexPos = mul(unity_ObjectToWorld, modelPos).xyz;
float3 lightVector = _MainLightPosition.xyz - vertexPos * _MainLightPosition.w;
return lightVector;
}
half Attenuation(float3 eyePos)
{
half3 worldPos = mul(UNITY_MATRIX_I_V,half4(eyePos,1.0));
float4 shadowCoord = TransformWorldToShadowCoord(worldPos);
Light mainLight = GetMainLight(shadowCoord);
return mainLight.shadowAttenuation * mainLight.distanceAttenuation;
}
#endif