Practically speaking the only really good way to do this is to do it with custom code nodes. I ported the substance designer viewport shader to shader fx a couple of years ago and it was relatively straightforward once I stopped trying to do it purely with shader fx nodes
@Fil85 You can switch the HLSL drop down to Interactive instead of ShaderFX. If you are using Max 2021, you can try the new PBR Material (that I helped implement) and OSL nodes.