Few thoughts
i think there is some mixing in your definitions, ambient and diffuse (or specular, not to leave it out) are how lights effect surfaces or materials. what type of light source are you using? you need a light source that goes in all directions, which is a point light. your direction should be all, which means that the 4th coordinate, the last homogenous coordinate - a.k.a w, of the direction is 0.0 and the position is somewhere in your space, therefore the fourth coordinate of the position is 1.0, unlike directional light that has no position hence zero w tell me if that helps. and by the way, you can find free copy of the red book (legal) in pdf format on the web. it has great section about lights and worth a read, try also searching for the physics of lights and how they are used in CGI