Нормал-маппинг
Текстура, значения RGB которой кодируют нормали поверхности, — благодаря ей плоская поверхность ловит свет так, будто детализирована, без единого лишнего полигона.
Если бамп-маппинг возмущал нормаль одним скаляром высоты, то карта нормалей хранит для каждого текселя весь вектор, обычно в касательном пространстве — отсюда характерный синеватый цвет: нетронутая нормаль смотрит прямо наружу (0, 0, 1). Освещение использует возмущённую нормаль вместо настоящей, поэтому деталь существует только в шейдинге и никогда — в силуэте.
Прорыв случился, когда студии начали запекать детали высокополигональной модели на низкополигональную — идея Кришнамурти и Левоя (1996), которую Doom 3, Far Cry и Halo 2 около 2004 года сделали стандартной практикой. При отложенном рендеринге возмущённая нормаль сразу пишется в G-буфер, а осветительный проход читает её позже.