Files
FlaxEngine/Source/Shaders/IESProfile.hlsl
2024-02-26 19:00:48 +01:00

16 lines
496 B
HLSL

// Copyright (c) 2012-2024 Wojciech Figat. All rights reserved.
#ifndef __IES_PROFILE__
#define __IES_PROFILE__
// Calculate IES light profile from 1D texture
float ComputeLightProfileMultiplier(Texture2D tex, float3 worldPosition, float3 lightPosition, float3 lightDirection)
{
float3 l = normalize(worldPosition - lightPosition);
float d = dot(l, lightDirection);
float angle = asin(d) / PI + 0.5f;
return tex.SampleLevel(SamplerLinearClamp, float2(angle, 0), 0).r;
}
#endif