   STALKER Wet Layer
  http://developer.amd.com/gpu_assets/01GDC09AD3DDStalkerClearSky210309.pptI am trying to implement STALKER wet layer. I must say that I am very close. But I have an issue with normals. I use deferred rendering and in GBuffer face normals and bump maps(perturbation) are rendered to Normal RT. For Wet layer I sample Normal RT, or should I sample only face normals without bumps. The issue that I am having is that when bumps(perturbation) are in Normal RT, vertical water stream is visible quite faintly or not at all, because of an algorithm nature. Water stream is applied only on surfaces where isUp = 1.0-dot(upVector, NormalRT) is true, isUp value is then used for water stream speed.  So is there any way to flatten Normal RT a bit, not blurring. Is it possible to get face normals from Normal RT?   
  You can get a view-space "face normal" from your view-space position, if you want. You basically take the derivatives of depth with regards to screen-space X and Y (use the ddx() and ddy() intrinsics) and then cross the two vectors to get your normal. Since it will be based on the values in your depth buffer, the normals will be completely flat on polygon faces (they won't be smoothly interpolated like the normals in your normal buffer). Unless of course, you alter your depth buffer value bases on your normal map height value or something like that.   