   CryEngine 3 Wet Layer
  I saw CryEngine 3 DEMO on gametrailers http://www.gametrailers.com/video/gdc-10-cryengine-3/63097#comments_topand was wondering how the wet layer shader was achieved. The light, and screen space post process and world position of a pixel is understandable. But the thing that bothers me the most is how to project the specular texture on to objects surface, and appropriately animate it. Is it possible that they used volume texture here, and Z component is dot product of normal and up vector, which gives us slope factor. Is there any paper that would explain similar shaders. ow to project from normal 2D texture to 3D world space.Thank you in advance   
  Probably going to be using the S.T.A.L.K.E.R. technique more or less verbatim.   ;  Doesn't S.T.A.L.K.E.R.'s approach involve modifying their g-buffer? That wouldn't work with CryEngine3 since it uses Deferred Lighting, rather than standard Deferred Shading.   ;Quote:Original post by n00bodyDoesn't S.T.A.L.K.E.R.'s approach involve modifying their g-buffer? That wouldn't work with CryEngine3 since it uses Deferred Lighting, rather than standard Deferred Shading.Deferred lighting/light-prepass/what-have-you also stores a (lighter) G-buffer, usually just normals and basic specular data. That being said there's no reason you can't just modify them on-the-fly in the lighting shader. Just read them and apply any changes within the lighting calculations for that particular light; i.e.float3 diffuseColor = SampleDiffuseTexture(texCoords);float specPower = ReadSpecularPowerFromGBuffer(pixelPos);specPower = DoWaterSpecularStuff(specPower); // projected specular textures, gradient info, etc.return DoLighting( diffuseColor, specPower );