Microfacet BRDF: Theory and Implementation of Basic PBR Materials [Shaders Monthly #9]