Как плоская поверхность получает видимый рельеф

В трёхмерной графике освещение зависит не только от формы объекта, но и от направления, в котором поверхность «повёрнута» к свету. Это направление задаёт нормаль — воображаемая стрелка, перпендикулярная поверхности. У ровного полигона нормали обычно направлены одинаково, поэтому свет распределяется по нему равномерно.

Текстура нормалей подменяет эти направления: для разных участков полигона она хранит данные о том, куда должна быть направлена нормаль. При расчёте освещения программа использует их вместо исходных. Одни пиксели оказываются обращены к источнику света сильнее, другие — слабее, и на поверхности возникают светлые и тёмные полосы. Они напоминают освещение выпуклостей и впадин, хотя геометрия не меняется.

Почему обман заметен не всегда

Такая техника добавляет мелкие детали без необходимости моделировать каждую царапину, шов или складку отдельными полигонами. Это экономит геометрические ресурсы и позволяет менять вид поверхности движением света. Но текстура меняет только расчёт освещения: она не передвигает точки модели и обычно не создаёт настоящих теней, которые одна часть объекта отбрасывает на другую.

Поэтому особенно заметна граница полигона: его силуэт остаётся прямым, даже если внутри видны «бугры». Текстура нормалей убедительна, пока зритель смотрит на поверхность в основном по её освещению. Стоит увидеть край или глубокий профиль — и становится ясно, что рельеф существует лишь в реакции материала на свет.