Source: https://pbrdng.github.io/condition_and_geometry_lecture_notes.pdf