How Can We Get a Good Level of Realism in the 3D Model with a Normal Map?

Enhancing 3D Model Detail with Normal Maps

Aryel
Written by AryelLast update 8 months ago

Essentially there are 2 ways to get a good level of detail of the 3D models:

  1. is to get a very high number of polygons

  2. is to use a normal map

The first option will often make the model way too complex and 'heavy' to be managed with webAR.
Also, the polygon count should not exceed 35k polygons (to avoid performance issues on lower end devices).

So using our second technique we can make 3D models more real & usable in Aryel.

What is a Normal Map?

A normal map is a texture that rendering engines use to fake bumps and imperfections on a surface. To better understand how normal maps work, it’s essential to understand what is normal. In geometry, a normal is a vector or line perpendicular to a surface or object.

Schermata_2022-06-13_alle_16.06.03.png

Normal maps are 2D images capable of storing limited 3D information. The RGB Color channels (red, green, and blue) in a normal map correspond to the respective X, Y, and Z coordinates of surface normals. Normal maps cannot represent deep extrusions and wildly irregular geometry, but they can fake small indents and bumps along the surface that interacts with the light in the scene.

Schermata_2022-06-13_alle_16.07.54.png

Baking Maps

Almost every 3D modeling application, such as Blender, Maya, or 3Ds Max, includes the ability to bake the geometric normals from a high-poly mesh and then re-project them onto a low-poly mesh as bitmapped normals.

Schermata_2022-06-13_alle_16.08.51.png


This is a very useful trick in real-time computer graphics – like games, AR & VR – because generally the more polygons that are on screen at once, the slower a game or experience will run.

More polygons mean more memory, more surfaces to shade, and more things to calculate. Baking geometric detail into a normal map allows 3D models to render quickly while still retaining much of the same detail.

Did this answer your question?