22 lines
717 B
HLSL
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);
|
|
}
|