Partial work to get proper BRDF going.

Also split some stuff to headers.