Карта нормалей представляет собой специальное изображение, которое имитирует объемный рельеф поверхности без увеличения количества полигонов 3D-модели. Эта технология широко применяется в игровой индустрии, архитектурной визуализации и создании реалистичных текстур, поскольку позволяет значительно повысить детализацию при минимальных затратах вычислительных ресурсов. Карта нормалей кодирует информацию о направлении световых лучей в RGB-каналах изображения, где красный канал отвечает за горизонтальное отклонение, зеленый — за вертикальное, а синий — за глубину рельефа.
Варианты решения:
Способ 1: Плагин NVIDIA Texture Tools Exporter
В актуальных версиях Adobe Photoshop встроенные 3D-инструменты были удалены компанией Adobe, начиная с версии 22.5, поэтому наиболее надежным решением для создания карт нормалей стал бесплатный плагин NVIDIA Texture Tools Exporter. Этот профессиональный инструмент автоматически генерирует карты нормалей из обычных текстур и одновременно оптимизирует их для использования в игровых движках с поддержкой современных форматов сжатия. Плагин обеспечивает аппаратное ускорение на видеокартах NVIDIA и предоставляет расширенные возможности настройки генерации, включая предпросмотр результата в режиме реального времени.
- Скачайте NVIDIA Texture Tools Exporter с официального сайта NVIDIA (developer.nvidia.com) и установите плагин, следуя инструкциям установщика для вашей версии Photoshop.
- Откройте исходную текстуру в Photoshop, затем убедитесь, что изображение находится в режиме RGB через меню «Изображение» — «Режим» — «RGB», поскольку плагин не работает с другими цветовыми режимами.
- Для улучшения качества результата при работе со сложными текстурами рекомендуется перевести изображение в 16-битный режим через меню «Изображение» — «Режим» — «16 бит/канал», что обеспечит более плавные переходы рельефа.
- Перейдите в меню «Файл» — «Сохранить как» и выберите формат «DDS — NVIDIA Texture Tools Exporter» из выпадающего списка доступных форматов, после чего откроется окно настроек экспортера.
- В поле «Image Type» кликните по выпадающему списку и выберите «Normal Map : Tangent Space» вместо «Color Map», после чего в окне появятся дополнительные разделы «Normal Map Settings» для настройки генерации карты нормалей.
- В поле «Format» автоматически установится оптимальный формат для карт нормалей (обычно BC5u или BC4u), который обеспечивает хорошее качество при небольшом размере файла для игровых движков.
- Разверните раздел «Height Source», затем выберите источник данных о высоте рельефа: «Average RGB» для усреднения всех каналов (подходит для большинства текстур), «Max RGB» для максимального значения из каналов, или отдельные каналы при работе с предварительно подготовленными картами высот.
- В разделе «Height Generation» выберите тип фильтра из доступных вариантов: «4 Sample» для быстрой обработки, «3×3» для базового качества, «5×5» для сбалансированной детализации, или «7×7» для максимально плавных переходов рельефа, где большие значения дают более сглаженный результат.
- Активируйте опцию «Wrap» в разделе «Height Generation», если работаете с бесшовной текстурой, чтобы плагин корректно обработал края изображения для создания повторяющегося паттерна без видимых швов.
- Настройте инверсию осей через чекбоксы «Invert X» и «Invert Y» в зависимости от требований вашего 3D-движка, где инверсия Y особенно важна для совместимости между форматами OpenGL (используется в Blender, Unity по умолчанию) и DirectX (3ds Max, Unreal Engine).
- Убедитесь, что опция «Generate Mipmaps» активирована в разделе «Mipmap Options» для автоматического создания мип-уровней, которые улучшат отображение текстуры на разных расстояниях от камеры в 3D-сцене.
- В разделе «Compression Effort» выберите режим сжатия: «Fastest» для быстрого экспорта во время работы над проектом, «Normal» для баланса скорости и качества, или «Production»/«Highest» для финальной версии с максимальным качеством сжатия.
- Проверьте результат в окне предпросмотра справа, где отображается созданная карта нормалей с характерным сине-фиолетовым оттенком, затем нажмите кнопку «Save» для сохранения файла в формате DDS.
После сохранения вы можете открыть созданный DDS-файл обратно в Photoshop для дополнительной ручной коррекции проблемных областей, используя стандартные инструменты рисования. Обратите внимание, что для работы с некоторыми типами текстур (очень темные или очень светлые) рекомендуется предварительно настроить контраст и яркость исходного изображения через меню «Изображение» — «Коррекция» — «Уровни», что позволит плагину лучше распознать детали рельефа и создать более качественную карту нормалей.
Способ 2: Ручное создание через работу с каналами
Ручное создание карт нормалей через работу с отдельными RGB-каналами требует более глубокого понимания принципов работы карт, но предоставляет максимальный контроль над результатом и не зависит от наличия внешних плагинов. Данная техника основана на применении фильтра «Тиснение» к отдельным каналам изображения с разными углами освещения, что имитирует поведение света на рельефной поверхности. Вы можете применить этот метод для создания уникальных карт нормалей, которые сложно получить автоматическими средствами, особенно при работе со стилизованными или нестандартными текстурами.
- Откройте исходное изображение в Photoshop, затем создайте копию фонового слоя комбинацией клавиш Ctrl + J для сохранения оригинальной текстуры.
- Обесцветьте скопированный слой через «Изображение» — «Коррекция» — «Обесцветить» или используйте комбинацию Ctrl + Shift + U, создавая черно-белую основу для дальнейшей работы.
- Откройте панель «Каналы» через меню «Окно» — «Каналы», где вы увидите отдельные каналы RGB, с которыми будете работать для создания информации о направлении нормалей.
- Выберите красный канал, кликнув по нему в панели каналов, после чего перейдите в меню «Фильтр» — «Стилизация» — «Тиснение» для применения эффекта рельефа.
- В открывшемся диалоговом окне фильтра установите угол на 0 градусов (или 180 для инвертированного направления), высоту — в диапазоне от 1 до 5 пикселей в зависимости от желаемой интенсивности, а эффект — на значение от 100% до 300%.
- Переключитесь на зеленый канал, затем снова примените фильтр «Тиснение», но на этот раз установите угол -90 градусов (или 90 для противоположного направления), сохранив остальные параметры идентичными красному каналу.
- Для синего канала, который отвечает за информацию о глубине, залейте его нейтральным цветом (значение RGB 128, 128, 255 или #8080FF), что соответствует нейтральной нормали, направленной перпендикулярно к поверхности.
- Если требуется добавить информацию о глубине в синий канал, примените фильтр «Галерея фильтров» — «Эскиз» — «Ксерокопия» с минимальными значениями детализации, после чего настройте яркость через меню «Изображение» — «Коррекция» — «Уровни».
- Вернитесь к просмотру всех каналов, кликнув по RGB в панели каналов, затем оцените полученный результат, который должен иметь характерный сине-фиолетовый оттенок с градиентами в красных и зеленых областях.
- Для нормализации созданной карты создайте новый слой, залейте его нейтральным цветом (128, 128, 128), установите режим наложения «Перекрытие» и объедините слои через меню «Слой» — «Выполнить сведение».
После создания базовой карты нормалей вы можете усилить эффект рельефа, создав дубликат слоя и применив к нему режим наложения «Перекрытие» с последующим размытием по Гауссу на 2-3 пикселя для сглаживания резких переходов. Повторяя этот процесс несколько раз с разными уровнями размытия, можно создать многоуровневую детализацию карты нормалей, сочетающую как крупные формы рельефа, так и мелкие детали текстуры.
Способ 3: Онлайн-инструменты и веб-генераторы
Онлайн-генераторы карт нормалей предоставляют быстрый способ создания карт без необходимости установки дополнительного программного обеспечения, работая непосредственно в браузере с использованием технологий WebGL. Эти сервисы обрабатывают изображения на стороне клиента, обеспечивая конфиденциальность ваших текстур, и предлагают набор базовых настроек для контроля интенсивности и детализации результата. Используйте онлайн-инструменты для быстрого прототипирования или когда у вас нет доступа к полноценному графическому редактору с установленными плагинами.
- Откройте в браузере один из популярных онлайн-генераторов, таких как NormalMap-Online или аналогичные сервисы, специализирующиеся на создании карт нормалей.
- Подготовьте исходное изображение в Photoshop, сохранив его в формате PNG или JPEG с разрешением не менее 512×512 пикселей для получения качественного результата, где более высокое разрешение обеспечит лучшую детализацию карты.
- На странице онлайн-генератора найдите область загрузки файлов, затем либо перетащите ваше изображение в указанную зону, либо используйте кнопку выбора файла для загрузки текстуры с компьютера.
- После загрузки изображения сервис автоматически сгенерирует превью карты нормалей, которое вы увидите в окне предварительного просмотра с возможностью 3D-визуализации на тестовой модели.
- Настройте параметр «Strength» или «Intensity», контролирующий общую интенсивность эффекта рельефа, где меньшие значения (0.5-2) подходят для тонких деталей, а большие (5-10) — для выраженного рельефа.
- Отрегулируйте параметр «Level» или «Detail» для управления детализацией карты, при этом высокие значения сохранят мелкие элементы текстуры, а низкие создадут более сглаженный результат.
- Если доступна опция «Blur» или «Smoothness», используйте ее для смягчения резких переходов между областями разной высоты, применяя значения от 0 до 3 пикселей в зависимости от размера текстуры.
- Активируйте опцию «Tileable» или «Seamless», если работаете с бесшовной текстурой, чтобы онлайн-генератор корректно обработал края изображения для создания повторяющегося паттерна.
- Проверьте корректность направления нормалей, используя переключатель «Invert Y» или «Flip Green», поскольку разные 3D-движки используют различные соглашения для направления оси Y в картах нормалей.
- После настройки всех параметров нажмите кнопку «Download» или «Export» для сохранения созданной карты нормалей в формате PNG на ваш компьютер, где файл можно будет дополнительно обработать в Photoshop.
Многие онлайн-сервисы также предлагают создание дополнительных типов карт, таких как displacement (смещения), ambient occlusion (затенения) и specular (блеска), которые можно генерировать из той же исходной текстуры одновременно с картой нормалей. Обратите внимание на ограничения бесплатных версий по максимальному разрешению изображений — обычно они составляют от 2048×2048 до 4096×4096 пикселей, что вполне достаточно для большинства задач текстурирования.
Способ 4: Встроенный фильтр в старых версиях Photoshop
В версиях Photoshop до 22.4 (выпущенных до июля 2024 года) Adobe предоставляла встроенный инструмент для генерации карт нормалей через меню 3D-фильтров, однако эта функциональность была полностью удалена в более поздних версиях как часть общего отказа от 3D-возможностей программы. Если у вас сохранилась старая версия Photoshop или вы готовы установить ее параллельно с текущей через приложение Creative Cloud, можете воспользоваться этим простым и удобным встроенным решением. Adobe рекомендует использовать версию 22.2 (февраль 2021 года) для наиболее стабильной работы 3D-функций.
- Откройте исходную текстуру в Photoshop версии 22.4 или ранее, затем убедитесь, что изображение находится в режиме RGB через меню «Изображение» — «Режим», поскольку фильтр не работает с другими цветовыми режимами.
- Перейдите в меню «Фильтр» — «3D» — «Создать карту нормалей», после чего откроется диалоговое окно с параметрами генерации и окном предварительного просмотра результата.
- В окне предпросмотра вы увидите 3D-сферу или плоскость с примененной картой нормалей, которую можно вращать мышью для оценки правильности освещения и рельефа со всех сторон.
- Настройте ползунок «Мозаика» или «Detail» для управления уровнем проработки мелких элементов текстуры, где низкие значения (1-3) создадут обобщенный рельеф, а высокие (7-10) сохранят максимум деталей.
- Отрегулируйте параметр «Масштаб деталей» или «Scale», контролирующий интенсивность эффекта глубины рельефа, используя значения от 1% до 100% в зависимости от характера исходной текстуры и желаемого результата.
- При необходимости активируйте опцию «Инвертировать высоту» или «Invert Height», если выпуклые области текстуры отображаются как вогнутые, что часто происходит при работе с определенными типами фотографических текстур.
- Используйте настройку «Размытие» или «Blur» для сглаживания резких переходов в создаваемой карте нормалей, применяя небольшие значения (1-3) для естественного вида рельефа.
- После настройки всех параметров нажмите кнопку «ОК» для применения фильтра, затем сохраните результат в формате PNG через меню «Файл» — «Сохранить как» для использования в 3D-приложениях.
Важно отметить, что при попытке использовать этот фильтр в Photoshop версии 22.5 и новее вы получите сообщение об ошибке «3D-функции требуют включения графического процессора» даже при правильных настройках, поскольку функциональность была полностью удалена из программы независимо от конфигурации системы. В версиях 25.5 и новее меню 3D-фильтров может отсутствовать полностью, поэтому для использования встроенного генератора карт нормалей необходимо установить старую версию Photoshop через раздел «Все приложения» в Creative Cloud Desktop.
Решение возможных проблем при создании карт нормалей
При создании карт нормалей в Photoshop пользователи часто сталкиваются с техническими сложностями, от некорректного отображения рельефа до проблем совместимости с различными 3D-движками и системами рендеринга. Понимание распространенных проблем и методов их устранения поможет значительно ускорить рабочий процесс и избежать повторения ошибок.
- Инвертированный рельеф карты нормалей. Если выпуклые области текстуры отображаются как вогнутые и наоборот, это связано с различиями в соглашениях направления зеленого канала между форматами OpenGL и DirectX. Для исправления откройте карту в Photoshop, перейдите в панель «Каналы», выберите зеленый канал и примените инверсию через «Изображение» — «Коррекция» — «Инверсия» или комбинацию Ctrl + I.
- Ошибка «3D-функции требуют графического процессора» в новых версиях. Данная ошибка появляется в Photoshop 22.5 и более поздних версиях независимо от настроек видеокарты, поскольку Adobe полностью удалила 3D-функциональность. Решением является установка параллельной версии Photoshop 22.2 через приложение Creative Cloud Desktop, где нужно перейти в раздел «Все приложения» — «Photoshop» и выбрать установку конкретной версии из доступного списка.
- Слишком контрастная или размытая карта нормалей. Чрезмерный контраст делает рельеф нереалистичным и создает артефакты освещения, поэтому рекомендуется уменьшить значение «Scale» или «Strength» при генерации. Для коррекции уже созданной карты используйте «Изображение» — «Коррекция» — «Кривые», создав S-образную кривую для тонкой настройки контраста в средних тонах при сохранении информации в светах и тенях.
- Видимые швы на бесшовных текстурах. При создании карт нормалей для тайлинговых текстур важно обеспечить бесшовность не только исходного изображения, но и самой карты. Перед генерацией используйте фильтр «Фильтр» — «Другое» — «Сдвиг» для проверки швов, затем активируйте опцию «Repeat» или «Tileable» в генераторе карт нормалей.
- Потеря детализации в синем канале. После наложения карт нормалей в режиме «Перекрытие» информация в синем канале часто искажается, поэтому необходимо применить операцию нормализации. Если используете плагин NVIDIA, примените фильтр с настройкой «Normalize Only», а при ручном создании залейте синий канал значением RGB (128, 128, 255) для восстановления корректной информации о глубине.
- Несовместимость формата карты с 3D-движком. Разные игровые движки и программы 3D-моделирования используют различные соглашения для хранения информации в картах нормалей. Unity и Unreal Engine работают с форматом DirectX (зеленый канал направлен вниз), тогда как OpenGL-приложения требуют противоположного направления. Проверяйте документацию вашего целевого движка и при необходимости инвертируйте зеленый канал перед экспортом.
- Низкое качество при создании из цветных текстур. Генерация карт нормалей непосредственно из цветных diffuse-текстур часто дает неудовлетворительные результаты из-за влияния цветовой информации на определение высот. Рекомендуется сначала создать отдельную черно-белую карту высот, где яркость пикселей соответствует высоте рельефа, затем использовать ее для генерации карты нормалей с последующей ручной корректировкой проблемных областей.
lumpics.ru














































