

Added Image to represent normal map in tangent space and normal map in world space.

Tangent spaces are used to make normal maps independent of the underlying geometry. Normal maps on the other hand are usually used for superficial effects.Įxtending the answer to explain why tangent spaces are important: Keep in mind that a normal is considered a geometrical attribute of the surface and has many more uses than only light calculations. Tangent space is usually used to provide re-usability for normal maps.

Well talking only about rendering, normals and normal maps are usually used together to achieve the final lighting effect, a good example might be a bump shader, where you need the normals map normal to achieve the bump lighting effect, and you will still need the geometric normal to calculate what is called the tangent space. Normal maps are usually generated using a much more detailed 3D model, then calculating the normals based on this model and encoding it in a Normal Map. Since normals are calculated based on the geometrical properties of the mesh/surface, Normal Maps will give you alternative Normals that can simulate the bumps to add detail to the surface without adding more polygons. It is usually used for faking the lighting of bumps and dents (e.g. Normal Mapping: on the other hand is a technique in computer graphics that encodes Normals in a texture map, so each normal is encoded per texel. Normals can be interpolated by OpenGL across each vertex of a face(triangle) so you can calculate the reflected light per pixel not per vertex, hence giving a more accurate result. In OpenGL normals are specified per vertex (hence called vertex attributes) even though they might be calculated only for each face in this case you need to specifiy the same normal for each vertex in a face. Normals are usually calculated based on the geometrical properties of the mesh (Faces/Vertices), by taking the cross product of any two non-parallel edges that lies on the same plane. Normals in graphics are usually used for light calculations, such as calculating Diffuse reflection across a surface by taking the dot product between the light direction and surface normals. Normals in geometry a normal is a vector or a line that is perpendicular to a given object (e.g. Normal maps are textures that encode alternative normal vectors used in computer graphics to simulate bumps. Normal maps and Normals are two different things: Normals are a geometric property of any mesh/surface its use is not exclusive for shading and lighting calculations but have actually many other uses for example in physics.
