Normals in Geometry & Computer Graphics
Normals are vectors in computer graphics that define the exterior surface of a geometry and the direction the surface is facing. Normals may also be called “Surface Normals”, but usually are referred as “normals”, are used in 3D applications to help render the polygon on the screen by distinguishing the front and back side of each primitive.
By defining the exterior surface of the geometry, the rendering engine will know how to display the textures or material on the screen. The normals will also help the rendering engine understand how light bounces off the surface of the geometry. All these factors are important in rendering the geometry into an image.
The normals of a polygon is a vector that is perpendicular to the surface primitive. This means every polygon or primitive surface should have a normal defined. If the normals are not defined correctly, the geometry will not render properly onto the screen.
A 3D object can easily contain hundreds to thousands to millions of polygons and if normals are defined for the object, then consequentially the 3D object will contain an equal number of defined normals for each polygon.
Even the 3D viewport of your application requires normals to display properly on the screen. In the screenshot on the right, I have images of a fractured pieces placed on top of a flatten torus, which is being displayed in black because of incorrect normals on the torus object.
On the screenshot on the right, it shows what correct normals look like after they are recomputed on all polygons.