Normal map — текстура, которая кодирует рельеф поверхности в цвете пикселей: плоская геометрия начинает выглядеть детальной без лишних полигонов. Ниже — четыре способа получить её из обычной фотографии: от классических плагинов до сканирования на Android.
File → Open.Image → Adjustments → Desaturate (Ctrl+Shift+U). Яркость станет «высотой»: светлее = выше.Image → Adjustments → Levels (Ctrl+L), чтобы рельеф читался чётче.Filter → NVIDIA Texture Tools → Normal Map, подбери силу рельефа.Colors → Desaturate.Filters → Map → Normalmap.File → Export As… → PNG.Сервисы вроде NormalMap-Online: загрузил фото → подкрутил ползунки → скачал PNG. Ничего ставить не нужно, но есть три «но»: фото уходит на чужой сервер (приватность), выход 8-бит, других карт (albedo, roughness, height) генератор не даёт.
Первые три способа предполагают рельеф по яркости. Четвёртый — измеряет его: метод Shape-from-Shading снимает серию кадров с разным освещением (вспышка + экран) и вычисляет, как поверхность отражает свет под разными углами. Так получается настоящая карта микрорельефа, а не её имитация.
В NACK3D это выглядит так:
| Способ | Цена | Источник рельефа | Битность | Другие карты | Приватность |
|---|---|---|---|---|---|
| Photoshop + плагин | подписка Adobe | яркость | 8 | нет | локально |
| GIMP + NormalMap | бесплатно | яркость | 8 | нет | локально |
| Онлайн-генератор | бесплатно | яркость | 8 | нет | фото на сервере |
| NACK3D (SfS) | 7 дней бесплатно | свет (фотометрическое стерео) | до 16 | 6 карт | локально, офлайн |
Каналы RGB кодируют отклонение нормали по осям XYZ. Плоский участок — это вектор (0, 0, 1), который в цвете даёт (128, 128, 255) — тот самый сиренево-голубой оттенок. Отклонения рельефа сдвигают цвет в красную и зелёную стороны.
В OpenGL зелёный канал направлен вверх (Y+), в DirectX — вниз (Y−). Неправильный выбор «выворачивает» рельеф наизнанку. В Unity используется OpenGL, в Unreal — DirectX; в NACK3D есть переключатель Flip Y и готовые паки под каждый движок.
Для игровых материалов на средних дистанциях хватает 8 бит. Для крупных планов, displacement и кино берите 16 бит — иначе на плавных склонах появятся «ступеньки» бандинга.
Способы 1–3 работают с одним файлом, но рельеф будет условным. Фотометрическое стерео требует серию кадров с разным светом — смартфон снимает её сам за секунду, поэтому результат ближе к реальному сканированию.
NACK3D — сканер текстур для Android: normal, depth и полный PBR-набор из одного снимка, обработка на устройстве. Первые 7 дней бесплатно.
Скачать в Google Play ↗