Do you have the PBRT book?
Their BSDF implementation is in the following two files:
https://github.com/mmp/pbrt-v3/blob/mas ... flection.h
https://github.com/mmp/pbrt-v3/blob/mas ... ection.cpp
Also take a look at their materials under:
https://github.com/mmp/pbrt-v3/tree/mas ... /materials
Post some screenshots once you are done and good luck.
