Thanks for your answer !
This only works until you try to reassign old material back after capture. My guess is that the capture occurs at the end of the editor tick or in a separate thread (as most rendering do). So when you reassign material back, capture will be wrong because it would be shot after reassignment.
I need to generate World Space normals and not tangent as the UE material node do. I tried to dig some algorithms that do this reconstructing it using heightmap but I haven’t found any that gives results as smooth as the capture…
I just wish I could register a callback at capture end or even just be able to wait one tick before reassigning materials and follow up with the method but i’m to novice in Unreal and c++ to do so.