Refer https://www.scratchapixel.com/lessons/3d-basic-rendering/introduction-to-shading/shading-normals