https://123dok.org/document/eqoop35q-physically-based-rendering-for-opengl.html