Is y up in your world? If so, then your light is coming from beneath the terrain.
Also, you aren't normalizing Light.Direction - is it necessary? (I've never used the FFP, so I'm not sure).
No Z is Up. X,Y is the under Surface. I rotate the World arround X pi/4 then around Z pi/3 . To get the isometric screen, square become Diamond tile! It seem DirectX auto normalize the Light direction, I tried 2,0,0 and 1,0,0 it's the same! The Arrow above plane this the Light Vector.
I attach the Demo. So if any one see it useful. (The smoothed version with Vertext Normal is bugged, because there are some vector has not been calculated, No optimize applied, may run slow tih high Tesselation or large map ). For those dont know about Directx, you should install Directx9 SDK. and include/lib...
Things I learn from this Demo :
+ Draw mesh (the sphere)
+ Draw vector
+ calculate Normal
+ setup Isometric scene
+ Normal vertex
+ How to divide a rough triangles into smaller one.
+ Calculate Bezier Surface, NURBS surface , calculate curve go through points.( although all this technique seem not useful at all)
L : enable Light
I : disable line vector (normal)
Mouse : rotate/zoom/translate
F : default view (isometric)
A : ortho view !
M : smooth (Tesselation)
U : enable Vertex Normal / Quad Normal