Unity bits #25
Существует три понятия, которые могут быть не очевидны: карты рельефа (bump maps), карты нормалей (normal maps) и карты высот (heght map или displacement map). На самом деле карты нормалей и карты высот обычно считают общей категорией "карты рельефа", а сами карты рельефа - это уже устаревшая технология, которая вышла из употребления после появления карт нормалей. Карту высот от карты нормалей можно легко отличить по виду. Карта высот будет серой, а карта нормалей - сиренево-фиолетовых оттенков.
Если вкратце, то смысл этих карт заключается в следующем:
Карта высот (Height map)
Карты высот - это монохромные изображения, хранящие данные о физическом рельефе объекта. Серый цвет условно соответствует поверхности объекта, чёрный цвет - вдавленные в поверхность точки, а белый - поднятые над поверхностью. Карты высот используются алгоритмами для параллакс-искажения изображения, что помогает создать видимость глубины. На приложенной картинке карта высот слева.
Карта нормалей (Normal map)
Нормаль - это вектор, перпендикулярный поверхности в конкретной точке. Таким образом карта нормалей показывает геометрию поверхности. Опираясь на данные о наклоне алгоритм просчитывает отражение света, что позволяет создать фальшивую глубину ("fake depth") и создать видимость того, что поверхность намного рельефнее чем на самом деле. Обычно используется для снижения количество полигонов в моделях. Сначала изготавливается трёхмерная модель с кучей деталей. Далее на её основе "запекается" (baking) информация о геометрии поверхности, а потом делается упрощённая модель, к которой применяются "запечённые" данные. На приложенной картинке карта нормалей справа. Как уже было сказано - эти карты можно без труда опознать по обилию сиреневых оттенков.
- - -
Если очень грубо на пальцах, то карта нормалей позволяет нанести тени, а карта высот - исказить изображение в зависимости от угла зрения.
На этом изображении слева направо:
- обычная текстура (albedo)
- текстура с наложенной картой нормалей (присутствует затенение)
- текстура с картой нормалей и картой высот (есть не только затенение, но и видимый рельеф)
Следует отметить, что в стандартном профиле URP в Unity карта высот хотя и присутствует, но толком не используется, так что достаточно опираться на металлик/шершавость, цветность и карту нормалей.
unity
bits
shaders