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
Replies
https://polycount.com/discussion/143566/shaderfx-tga-pbl-shader
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.
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