e4s-sdk/gamedata/shaders/r2/accum_indirect.ps.hlsl
2026-06-17 23:06:51 +03:00

22 lines
717 B
HLSL

#include "common.hlsli"
#include "lmodel.hlsli"
// Pixel
// Note: this is a float-sphere
uniform float3 direction;
float4 main(float4 tc : TEXCOORD0) : COLOR
{
float4 _P = tex2Dproj(s_position, tc);
float4 _N = tex2Dproj(s_normal, tc);
float3 L2P = _P.xyz - Ldynamic_pos.xyz; // light2point
float3 L2P_N = normalize(L2P); // light2point
float rsqr = dot(L2P, L2P); // distance 2 light (squared)
float att = saturate(1.0f - rsqr * Ldynamic_pos.w); // q-linear attenuate
float light = saturate(dot(-L2P_N, _N.xyz));
float hemi = saturate(dot(L2P_N, direction));
// Final color
return blendp(float4(Ldynamic_color.xyz * att * light * hemi, 0.0f), tc);
}