Normal map против bump map: в чем разница?

И normal map, и bump map создают иллюзию детализации поверхности — царапин, пор, борозд — без добавления полигонов. Разница заключается в объеме хранимой информации и, следовательно, в том, насколько убедительно они выглядят.

Краткий ответ

Bump (height) map — это черно-белое изображение, где яркость означает высоту — просто, но оно лишь выдавливает детали прямо внутрь или наружу. Normal map — это RGB-изображение, которое хранит полное направление поверхности для каждого пикселя, поэтому оно может имитировать детали, улавливающие свет сбоку. Normal map богаче и является стандартом в современном PBR; bump/height map по-прежнему полезны для смещения (displacement) и параллакса.

Как работает bump map

Bump map — это черно-белое изображение: белый цвет означает высокую точку, черный — низкую. Рендерер считывает градиент яркости и слегка смещает нормаль поверхности вверх или вниз, имитируя рельеф.

Это дешево и интуитивно понятно, но поскольку она кодирует высоту только по одной оси, она не может передавать детали, направленные в стороны — поэтому скошенные или угловые детали выглядят мягче и менее четко, чем должны.

Как работает normal map

Normal map использует красный, зеленый и синий каналы для хранения X/Y/Z направления поверхности в каждом пикселе — поэтому они выглядят преимущественно сине-фиолетовыми. Это позволяет ей наклонять видимую поверхность в любом направлении.

Эта дополнительная информация означает, что скошенные края, угловые царапины и мелкие детали реалистично улавливают свет сбоку, а не только прямо. Normal map содержит гораздо больше информации о поверхности, чем черно-белая bump map, поэтому она и стала стандартом.

Где карты высот все еще актуальны

Черно-белая «bump map» продолжает существовать как карта высот/displacement map в PBR — она не устарела. Она используется для истинного смещения (true displacement) и параллаксной окклюзии, добавляя реальную или кажущуюся глубину, которую одна normal map обеспечить не может.

Многие материалы поставляются с обеими картами: normal map для тонких направленных деталей и картой высот для параллакса и смещения, изменяющего силуэт. Они дополняют друг друга, а не конкурируют.

Часто задаваемые вопросы

Bump map — это то же самое, что и карта высот?

По сути, да — классическая черно-белая bump map является картой высот, где яркость кодирует высоту. В PBR ее обычно называют картой высот или картой смещения (displacement map).

Что использовать: normal map или bump map?

Для большинства деталей поверхности используйте normal map — она богаче и является современным стандартом. Используйте карту высот вместе с ней для параллакса или истинного смещения (true displacement).

Почему моя normal map синяя?

Потому что плоская поверхность направлена строго вверх в касательном пространстве (tangent space), что кодируется синеватым цветом. Красные и зеленые оттенки появляются там, где поверхность наклоняется.

Создайте normal map из фотографии или карты высот и мгновенно просмотрите ее в 3D с освещением — прямо в Mixos.

Начать бесплатно