Создание карт кривизны (Curvature) и толщины (Thickness)

Наша компания по разработке видеоигр ведет независимые проекты, совместно с клиентом создает игры и оказывает дополнительные операционные услуги. Опыт нашей команды позволяет нам охватить все игровые платформы и разработать потрясающий продукт, соответствующий видению клиента и предпочтениям игроков.

От иммерсивных приложений до игровых миров и 3D-сцен

Наша выделенная команда для VR/AR/MR-разработки, Unity-продакшна и 3D-моделирования и анимации с собственными кейсами и презентациями.

Посетить персонализированный сайт
Показано 1 из 1Все 242 услуг
Создание карт кривизны (Curvature) и толщины (Thickness)
Простой
~1 день
Часто задаваемые вопросы

Наши компетенции

Какие этапы разработки игры?

Последние работы

  • image_games_mortal_motors_495_0.webp
    Разработка игры для компании Mortal Motors
    1457
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Пошаговая стратегия в фэнтези сеттинге With Fire And Sword
    979
  • image_games_second_team_604_0.webp
    Разработка игры для компании Second term
    605
  • image_games_phoenix_ii_606_0.webp
    3D-анимация — тизер для игры phoenix 2.
    674
  • image_training-quizzes_kids_shopping_quiz_614_0.webp
    Обучающая викторина для детей «Покупки в магазине»
    29

Создание карт кривизны (Curvature) и толщины (Thickness)

Мы не раз сталкивались с ситуацией, когда Curvature и Thickness оказываются «мусором» — шум на плоских гранях, артефакты на скруглениях, неверный bias в зонах контакта. А ведь именно эти карты отвечают за тот живой материал, который отличает AAA-арт от технически грамотного, но плоского ассета. Проблема не в инструменте — Baker в Marmoset Toolbag или Substance Painter справляется за секунды. Проблема в настройках и подготовке геометрии. Оптимизация этого этапа может сократить бюджет на текстуры до 30%.

Почему Curvature Map получается с артефактами?

Самая частая ситуация: художник запекает Curvature в Marmoset Toolbag 4 с настройками по умолчанию и получает карту, где все острые углы выглядят правильно, но на плоских гранях — белый шум. Причина — параметр Ray Distance выставлен слишком высоко: лучи задевают соседние острова UV и дают ложные выпуклости.

Исправляем снижением Ray Distance до значений, при которых луч едва достигает high-poly. Для персонажного меша с разбивкой на Baker Groups — отдельный cage для каждой группы. В Substance Painter та же проблема решается через bake per material с явно заданным Max Frontal Distance. В 95% случаев это убирает шум без перезапекания.

Второй источник боли — seam bleeding. Если UV-развёртка сделана без отступа 2–4 пикселя по краям каждого острова, кривизна с соседних островов затекает в шов. На 2K-текстуре для мобильного ассета это заметно сразу; на 4K для PC — при определённом угле камеры. Проверяем развёртку перед запеканием — это экономит часы переделок.

Что такое Thickness Map и зачем она нужна?

Thickness Map запекается через AO с инвертированными нормалями: лучи уходят внутрь меша и фиксируют расстояние до противоположной стенки. Для тонких деталей — ушей персонажа, лепестков, краёв накидки — эта карта даёт Subsurface Scattering корректный ввод. Без неё SSS работает равномерно, и ткань выглядит как пластик. В наших проектах мы используем 16-bit Thickness, чтобы избежать banding на плавных переходах.

Инструменты и подход к запеканию

Для производственного пайплайна используем три варианта в зависимости от задачи:

Инструмент Когда использовать Ключевые настройки
Marmoset Toolbag 4 Полный контроль над cage и Baker Groups Curvature Intensity, Curvature Bias, Smooth Angle (90° для hard-surface, 160–180° для органики)
Substance Painter 9 Быстрое запекание внутри рабочего слоя bake per material, Max Frontal Distance, Padding 4px
Blender + BakeMaster Инди-проекты, отсутствие лицензий Geometry Node → Pointiness → Color Ramp; Thickness через AO с Local Space

Marmoset — предпочтительный вариант, когда нужен точный контроль. Substance Painter генерирует Curvature из нормальной карты, что быстрее, но менее точно на low-poly с острыми углами без сглаживания. Blender — бюджетный вход, но требует кастомного нодграфа в Cycles.

Независимо от инструмента, перед запеканием меш должен пройти несколько проверок:

  • Нормали high-poly усреднены корректно — без перевёрнутых фейсов.
  • Smooth Groups на low-poly совпадают с UV-швами.
  • Cage не пересекает сам себя в зонах вогнутостей.
  • UV-острова имеют одинаковый texel density по всему ассету.
Чек-лист проверки перед запеканием - [ ] Проверить нормали high-poly на inverted faces - [ ] Совместить Smooth Groups с UV seams - [ ] Настроить Cage с отступом 0.1–0.5% от размера меша - [ ] Установить Padding 2–4 пикселя на UV-островах - [ ] Убедиться, что нет пересекающихся геометрий внутри одной Baker Group

Как Curvature используется в материале

Запечённая Curvature Map в чистом виде — промежуточный результат. В Substance Painter она подаётся в Generator Metal Edge Wear как маска для edge highlighting. В ShaderGraph Unity её используют как вход для lerp между двумя материалами: на выпуклостях металл стёрт до блеска, во впадинах — накопилась грязь.

Правильный workflow: Curvature → Color Ramp (настроить конкретные диапазоны) → маска на слой. Без Color Ramp карта даёт слишком широкую маску, и эффект выглядит размыто. Для Thickness — подключение к параметру Thickness в Lit Shader с включённым Subsurface Scattering. В URP/HDRP это Subsurface Mask Map в канале A. В кастомном шейдере — отдельная текстура, семплируемая в фрагментном шейдере для расчёта глубины рассеивания.

Типичные ошибки, которые дорого обходятся

  • Запекание без Baker Groups. Если у персонажа рука перекрывает торс при позе A-Pose, Marmoset запечёт кривизну торса с учётом тени от руки. Разделение на группы решает это — каждая часть тела запекается изолированно. Экономия на этом этапе приводит к артефактам, которые исправляются заново за час-два.
  • Curvature с неправильным Smooth Angle. Значение 90° подходит для hard-surface. Для органики — 160–180°, иначе все мышечные переходы выглядят как граффити из белых пятен.
  • Thickness на открытой геометрии. Если меш не замкнут (открытый цилиндр, например), лучи уходят в бесконечность и возвращают 0. Нужно либо закрыть геометрию временными заглушками, либо ограничить Ray Distance до предполагаемой максимальной толщины объекта.
  • Использование 8-bit для Curvature. Карта кривизны — градиентные данные. На 8-bit появляется banding на плавных переходах. Для финального материала Curvature хранят в 16-bit, конвертируя в 8-bit только при необходимости экономии памяти на мобильных платформах. Стоимость ошибки — переделка всех слоёв, что может увеличить бюджет на 20%.

Что входит в работу

  1. Аудит меша: проверка UV, Baker Groups, Smooth Groups, нормалей.
  2. Настройка параметров запекания в зависимости от движка (Unity, Unreal, custom).
  3. Запекание Curvature и Thickness в 16-bit с кастомным Color Ramp.
  4. Проверка на тестовом материале: Curvature подаётся напрямую как Albedo — это выявляет артефакты до наложения слоёв.
  5. Передача исходников: .tga/.png/.exr, сцены запекания (.tbscene, .spp, .blend).
  6. Обучение команды: как правильно включать карты в пайплайн материалов.

Если вы хотите гарантированно получить чистые карты без артефактов, закажите аудит меша — это сэкономит часы переделок.

Процесс работы над картами

На практике запекание Curvature и Thickness занимает небольшую часть от общего времени, но ошибка здесь тянет за собой переделку нескольких слоёв материала. Поэтому начинаем с аудита меша: проверяем UV-острова, Baker Groups, правильность Smooth Groups. Наша команда имеет опыт более 5 лет в области запекания текстур и реализовала 150+ проектов для игровой индустрии — от мобильных до AAA.

Масштаб задачи Ориентировочный срок
Один hero-ассет, до 5 UV-сетов от 4 до 8 часов
Персонаж с полным набором LOD от 1 до 2 дней
Окружение (пропсы + модульные тайлы) от 3 до 7 дней
Запекание для существующего пайплайна (интеграция в команду) по согласованию

После запекания — проверка на тестовой сфере со стандартным материалом, где Curvature подаётся напрямую как Albedo. Быстрый способ увидеть все артефакты до того, как они спрятались под слоями грязи и царапин.

Стоимость определяется после просмотра меша и технического задания — количество UV-сетов, целевое разрешение текстур и требования к движку влияют на трудозатраты напрямую. Получите консультацию инженера по настройке пайплайна запекания вашего проекта. Мы гарантируем чистые карты без артефактов и полную поддержку на этапе интеграции.

Marmoset Toolbag Documentation рекомендует для Curvature использовать значение Smooth Angle 90° для hard-surface, но мы на практике часто поднимаем до 120° для лучшего контроля острых углов. Подробнее о физике Subsurface Scattering можно прочитать в Wikipedia.

3D-моделирование для игр

Представьте: художник сдаёт персонажа с 120 000 полигонов, мотивируя это тем, что «так выглядит лучше». На мобильном устройстве сцена из десяти таких персонажей уронит FPS до неиграбельных значений. Мы в студии GameArt ежедневно решаем такие проблемы: наши модели проходят строгий полигональный контроль и оптимизацию под целевую платформу. За 7 лет мы выпустили более 50 игровых проектов — от мобильных гиперказуалок до PC-экшенов. Гарантируем, что каждая модель впишется в технические требования без потери визуального качества.

3D-моделирование для игр — это не просто «сделать красиво». Это расстановка приоритетов в ограниченном бюджете треугольников и draw calls. Каждый этап пайплайна влияет на производительность в рантайме. Пропуск ретопологии или кривые UV оборачиваются переделками на этапе интеграции — мы это исключаем на старте.

В этой статье разберём ключевые аспекты: от high-poly скульпта до финальной сборки в Unity или Unreal Engine, с акцентом на практические кейсы. Мы проектируем модели под конкретную платформу: для мобильных используем низкую тексельную плотность (512 px/м), для PC — до 2048 px/м. Все решения принимаются на основе бенчмарков движка и профилирования на реальном железе.

Общий пайплайн

Стандартный пайплайн выглядит так:

  1. Концепт / референсы — прежде чем открывать ZBrush, нужно понимать силуэт, читаемость и целевую платформу.
  2. High-poly sculpt — детальная скульптурная модель без ограничений по полигонам. Делается в ZBrush или Blender (Sculpt Mode).
  3. Low-poly retopology — чистая игровая сетка поверх high-poly, вручную или полуавтоматически.
  4. UV-развёртка — подготовка координат для текстур.
  5. Baking — перенос детализации с high-poly на карты (normal map, AO, curvature и т.д.).
  6. Передача в движок — импорт в Unity или Unreal с настройкой LOD-цепочки.

Каждый этап влияет на следующий. Плохая ретопология сломает скиннинг. Криво нарезанные UV дадут артефакты при запекании. Этапы нельзя менять местами.

Как распределяются полигоны для разных платформ?

Этот аспект чаще всего игнорируется на старте проекта — и именно он потом стоит переделок.

Мобильные платформы (iOS / Android)

Мобайл — самая жёсткая среда. Ориентиры для персонажей:

Тип персонажа Полигоны (триангулированные)
Главный герой (крупный план) 3 000 – 8 000
NPC второго плана 1 000 – 3 000
Массовка, враги вдали 300 – 800

Для окружения (один пропс):

Объект Полигоны
Крупный интерактивный (сундук, дверь) 500 – 1 500
Средний декоративный 100 – 400
Мелкий (камень, ветка) 20 – 80

Критичнее самого полигонажа — количество draw calls и батчинг. Модель на 200 треугольников с отдельным материалом может быть дороже модели на 2 000 треугольников, которая батчится со всей сценой. Правильный батчинг (SRP Batcher, GPU instancing) снижает draw calls до 40% — это даёт запас для более детализированных ассетов.

PC / Console

Здесь бюджеты мягче, но не безграничны:

  • Главный персонаж в шутере от первого лица: 15 000 – 60 000 полигонов (модель противника, которую игрок видит постоянно).
  • Персонаж в RPG от третьего лица: 8 000 – 25 000.
  • Транспортное средство в гонке: 30 000 – 80 000 (много мелких деталей, LOD обязателен).

Ключевой инструмент — LOD (Level of Detail). В Unity это LOD Group, в Unreal — автоматический HLOD + ручные LOD-уровни в Static Mesh Editor. Правило: LOD0 → LOD1 должен терять ~50-60% полигонов, LOD1 → LOD2 ещё ~50%. Дополнительно настраиваем occlusion culling и кластерный рендеринг, чтобы снизить нагрузку на GPU.

VR

VR — отдельная история. Рендер идёт для двух глаз, целевой фреймрейт 90 fps (Quest) или 120 fps (PSVR2). Любой фризен ощущается физически — у игрока кружится голова.

Бюджет персонажа в VR: 4 000 – 12 000 (зависит от количества NPC в сцене одновременно). Окружение агрессивно оптимизируется: портальная система, occluder culling, кластерный рендеринг — без этого сцена не потянет нужный fps. Мы используем Frame Debugger и Render Doc для профилирования на целевом устройстве на ранних этапах.

Почему ретопология — художественная задача?

Ретопология — создание чистой полигональной сетки поверх sculpt-модели. Многие воспринимают её как скучный технический этап, который можно ускорить авторетопологией (ZRemesher, Instant Meshes, функция Auto Retopology в Maya). Это ошибка.

Авторетопология даёт плохой результат в трёх ключевых зонах:

  1. Суставы — колени, локти, запястья. Там нужны ровные кольца эджлупов, перпендикулярные оси вращения. Авторетопология ломает их хаотичными диагоналями, и при анимации сустав схлопывается некрасиво.
  2. Лицо — вокруг рта и глаз нужны concentric loops, которые следуют мышечной структуре. Это обязательное условие для корректной мимической анимации через blend shapes / morph targets.
  3. Силуэтные рёбра — плечи, грудь, крупные формы. Здесь нужно сознательно распределить полигоны так, чтобы силуэт читался даже на LOD2.

Инструментарий для ручной ретопологии включает Maya (Quad Draw), Blender (BSurfaces + Shrinkwrap), 3ds Max (Graphite Modeling Tools) и ZBrush (ZRemesher с guide curves). Плотность сетки распределяется неравномерно: лицо и кисти — больше полигонов, спина и низ ног — меньше. Это не произвол, а следствие того, где камера проводит больше времени.

Как UV-развёртка влияет на качество текстур?

UV — ещё один этап, который часто недооценивают. Текселная плотность (texel density) должна быть одинаковой по всему персонажу. Если у сапога плотность в два раза выше, чем у лица — текстура будет выглядеть непоследовательно. В Maya для этого есть UV Toolkit с нормализацией, в Blender — аддон TexTools.

UDIM (U-Dimension) — технология, при которой несколько UV-тайлов объединяются в один объект. Это позволяет использовать текстуры 4K–8K без ограничений одного UV-пространства. Применяется для персонажей с высокими требованиями к детализации — cinematic-игры, hero assets. В pipeline это означает Substance Painter с UDIM-режимом и отдельный экспорт каждого тайла.

Запекание (baking) — перенос деталей высокополигональной модели на карты для low-poly. Инструменты:

  • Marmoset Toolbag — отраслевой стандарт, cage-based baking с тонкой настройкой. Удобная визуализация ошибок. При правильном cage результат чистый с первого раза.
  • xNormal — бесплатный, проверенный временем. Менее удобный интерфейс, но стабильный результат и батч-запекание.
  • Substance Painter — встроенный baker для быстрого результата внутри текстурирования, менее гибкий, чем Marmoset.
  • Blender — Cycles baker. Медленнее и требует настройки, но бесплатен.

Типичный набор запекаемых карт: Normal Map, Ambient Occlusion, Curvature, Thickness, Position, World Space Normal. Curvature и Thickness — генераторные маски в Substance Painter, автоматически выделяющие выпуклости и вогнутости для процедурного текстурирования. Согласно Marmoset Toolbag documentation, batch-baking на нескольких объектах экономит до 30% времени.

Что входит в 3D-моделирование для игр?

Этап Детали Формат сдачи
High-poly sculpt Создание детализированной скульптуры в ZBrush / Blender .zpr / .blend, скриншоты
Ручная ретопология Чистая low-poly сетка с правильными эджлупами для анимации .fbx / .ma
UV-развёртка Нормализованная тексельная плотность, опционально UDIM .fbx с UV-set
Запекание Normal, AO, Curvature, Thickness (Marmoset / xNormal) texture set (PNG/TGA)
LOD-цепочка LOD0–LOD3 с порогами по полигонам и расстоянию .fbx для каждого LOD
Интеграция Импорт в Unity / Unreal, проверка материалов и батчинга .unitypackage / .uasset
Документация Именование ассетов, иерархия, требования к трианглам PDF / Notion

Дополнительно предоставляем часовую сессию поддержки после сдачи — помогаем с настройкой LoD Group, коллизиями и анимацией. Исходные файлы (.zpr, .blend, .ma, .fbx) передаются в полном объёме.

Типичные ошибки при UV-развёртке, которые мы предотвращаем
  • Разные тексельные плотности на соседних частях модели — текстура выглядит неконсистентно.
  • Перекрывающиеся UV (overlap) — артефакты запекания.
  • Недостаточный padding между островами — размытие текстур при мип-маппинге.
  • Отсутствие UDIM для сложных персонажей — потеря детализации.

Свяжитесь с нами, чтобы обсудить ваш проект. Мы оценим сроки и подготовим коммерческое предложение под ваши требования — от мобильных гиперказуалок до PC-экшенов и VR.