Adding some normals

I have more than two normal maps (congruent with displacement maps) and I’d like to add them together, ideally I’d also like to be able to add in the normals from some gerstner wave functions. Finding the cross product between ddx and ddy obviously has the problem of revealing the facets of the mesh from finding the vertex normal rather than pixel. I don’t know how you’d find useful derivatives from a heightmap. I attempted to use the NormalFromFunction node with a very basic panning displacement map and didn’t get any joy.