Vulcan - Oren-Nayar rough diffuse reflectance model
I implemented the Oren-Nayar reflectance model, which models rough diffuse surfaces. You can find the original paper here. The main idea of this model is to assume that the surface is made up of tiny V-shaped crevices that are Lambertian in nature. User side, you can control the amount of roughness using a single parameter. Anyways, I have some renders to compare the roughness of the model.
Roughness=0 (Lambertian shading)
Roughness=0.1
Roughness=0.2
Roughness=0.5
As you can see the difference is quite subtle. I do think that my implementation is correct though. I need to work on mesh loading so that I can put the model onto a more interesting object.