Overview of MoonRay Material Shaders and BsdfBuilder
MoonRay uses the BsdfBuilder API to simplify the creation of energy-conserving materials. Instead of manually managing low-level constructs like Bsdf, BsdfLobe, and Fresnel classes, developers use BsdfComponent objects. The BsdfBuilder handles the construction, weighting, Fresnel behavior, and energy conservation of these components based on the order they are added.
Supported shading models include:
- BRDFs: Mirror, Lambertian, FlatDiffuse, OrenNayar, Microfacet (Anisotropic/Isotropic), Fabric, Velvet, GlitterFlake, StochasticFlakes, Toon, and ToonSpecular.
- BTDFs: Mirror, Microfacet (Anisotropic/Isotropic).
- BSDFs: Mirror, Microfacet (Anisotropic/Isotropic).
- Specialized: DipoleDiffusion, NormalizedDiffusion, RandomWalkSubsurface, EyeCaustic, Hair (Diffuse, BSDF, RBRDF, TRTBRDF, TTBTDF, TRRTBRDF), and HairToonSpecular.