I've been playing around with an idea, but I'm struggling with some of the math involved.
Now, each face of a mesh has a normal vector, and that the normal map fragment shader modifies that face normal, based on the RBG pixel of the normal map. This, in turn modifies the brightness of a rendered mesh, giving the impression of height and depth. Correct me if I'm mistaken, of course.
So, based on this, if you managed to split up a mesh, to add extra edges that correspond to individual pixel boundaries - with each boundary containing portions of one or more of the original faces, you could then apply the normal modification of the corresponding normal map's pixel, as rotation.
Then, it would simply be a matter of reconnecting the vertices, to make the mesh cohesive again
While I can find plenty of sources on how normal maps affect the normal vectors of a mesh, I'm a bit lost on how to take that effect, and apply it to physically rotating the face, so the original normal vector matches its modified vector.