Original Post
I'm following the book "Object-Oriented Ray Tracing in C++" by Nicholas Wilt. His lighting model includes the sum of ambient, diffuse, specular, reflective, and refractive light. This seemed to be working okay until I tried to model shallow water. Since the water is very shallow, I mainly made it refractive. The problem is that it also needs to have some diffuse or else you can't make out the shallow waves. But this is a problem because as I increase the diffuse, the color adds in to the refractive color, making it look less refractive. It seems what I really want to do is mutliply the refractive color contribution by dot(L,N) (N is normal, L is light vector) so that I still get the light and dark shape of the waves. But according to Wilt's model, the refractive component isn't multiplied by dot(L,N). Any advice appreciated.