   Combining per pixel normal and dot3 normal map shading
  I've just realised that the method I use to combine per-pixel normal shading and detail normal mapping (dot3) on my terrain gives slightly incorrect results.I have my pixel normal in world space (this is calculated from the vertices in the vertex shader and so interpolated per pixel in the pixel shader) and also the dot3 normal map normal in world space (this is just a finer detail normal map sampled in the pixel shader but with swizzled components so that it matches world space, i.e. a perfectly flat normal map normal will be 0, 1, 0).How do I then combine those two normals together in the pixel shader in order to get my final normal for lighting?  Is this how it's normally done? (no pun intended) or is the light value calculated for each normal and then added?What I'd like to avoid is having to store or calculate some tangent data with the terrain.Thanks   
  I promt you to add only .xy component of the detail normal map to the main one, then normalize the resulting vector. That way you do not flatten resulting normal vector too much. This is the way Berserker@Quake2 does it.   ;  Assuming your terrain is a regular grid you can calculate the bitangents and binormals for each vertex in the vertex shader (if you're using VTF) and use them to apply your detail normal map correctly.If you're not using VTF it's even easier as you can calculate them beforehand.   ;  I've actually written an article on this subject, which I will refer you to read (link). It is a little dense, but it contains images, example code, and descriptions of my experiences with detail mapping. So I think it should answer most questions you might have on the subject.Cheers.   