There's now data available both in a push constant (view matrix) and in
an UBO (light data, camera position). Not sure if we should maintain the
split, or move everything to UBOs.
We implement a simple PBR shader that uses off-the-shelf maths from
[Kar13]. I attempt to trace and cite as much as possible, but the amount
of different approaches from both industry and academia makes it quite
difficult to find exact papers to cite - especially as my mathematical
skills are not high enough to derive, or check the derivation for any of
these myself.
[Kar13]
Brian Karis. 2013. "Real Shading in Unreal Engine 4"
URL: https://blog.selfshadow.com/publications/s2013-shading-course/karis/s2013_pbs_epic_notes_v2.pdf