Schau Dir einfach den Shader aus dem Wiki an, dort hat jemand genau dieses Lightrange Problem wie folgt gelöst:
//float LightRange = 0.0025; //light range here!!!!!!!!!!!!!!!!!
float LightRange = 1/vecLightPos[1].w;//THESE ARE THE CHANGES I MADE
VecLightPos ist in diesem Shader definiert und w enthält vermutlich die Lightrange des jeweiligen dynamischen Lichtes in DirectX (oder etwas das dazu umgekehrt proportional ist, denn es wird ja das Reziproke berechnet, Lichtstärke könnte reziprok zur Entfernung sein, wer weiß

). Der Index [1] spricht hier das 2. Licht an. [0] wäre das erste.
Ich bin kein Shader-Experte. Das ist nur Vermutung vom Lesen des Quellcodes. Also will ich Dich ermuntern einfach mal die Shader zu lesen und davon zu lernen.