#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); }