Original Post
Assume that we have: 1) a flat 2D surface. 2) A height map (generated with e.g Perlin noise). 3) A normal map made from 2). I now use a lookup in the height map to displace the vertices along the normal on the surface (they all point in the same direction). Now I want to shade the new displaced surface. For each looked up height in the height map I find the corresponding normal vector in the normal map and use that as the new normal for the displaced point on the new surface. But will this be the correct normal? As long as the orginal surface is flat I assume this would work, but why?