Создание тайловых текстур и атласов графики

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

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

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

Посетить персонализированный сайт
Показано 1 из 1 услугВсе 242 услуг
Создание тайловых текстур и атласов графики
Средняя
от 1 рабочего дня до 1 недели
Часто задаваемые вопросы

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

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

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

  • image_games_mortal_motors_495_0.webp
    Разработка игры для компании Mortal Motors
    683
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Пошаговая стратегия в фэнтези сеттинге With Fire And Sword
    862
  • image_games_second_team_604_0.webp
    Разработка игры для компании Second term
    491
  • image_games_phoenix_ii_606_0.webp
    3D-анимация — тизер для игры phoenix 2.
    533

Создание тайловых текстур и атласов графики

Тайловые текстуры и texture atlases — это две разные задачи, которые часто путают. Тайловая текстура бесшовно повторяется на поверхности. Texture atlas упаковывает несколько отдельных изображений в одну текстуру для снижения draw calls. Оба инструмента критичны для производительности, оба требуют специфической работы в Substance Designer или Photoshop, и оба дают предсказуемые артефакты, если сделаны неаккуратно.

Тайловые текстуры: где и почему появляется паттерн

Бесшовность — необходимое, но недостаточное условие хорошей тайловой текстуры. Если текстура тайлится корректно, но имеет выраженный повторяющийся элемент — горизонтальный камень в кирпичной кладке, характерное пятно в бетоне — паттерн повторения будет виден даже на большом расстоянии. Это называется tiling artifact или «стиральная доска».

Решается несколькими способами в зависимости от задачи и платформы:

Stochastic tiling в шейдере — разрушение паттерна на уровне рендеринга. Шейдер делает несколько семплов текстуры с небольшими вариациями UV и смешивает результат. В Unreal Engine 5 это можно сделать через Material Graph с нодами World Aligned Blend. В Unity ShaderGraph — через кастомный HLSL блок или готовый пакет вроде Stochastic Sampling. Работает без увеличения объёма текстур, но даёт лёгкий overhead на шейдер.

Multi-layer approach — поверх тайловой базы накладывается уникальный Overlay слой (большая масштаб, низкая непрозрачность), который разбивает монотонность. Overlay — отдельная текстура, тоже тайловая, но с другим масштабом тайлинга. Комбинация двух тайловых текстур с разными UV scale даёт иллюзию уникальности.

Megasplat / Virtual Texturing для больших terrains — другая история: там каждый тайл получает уникальный набор деталей через Virtual Texture, но требования к GPU и VRAM существенно выше.

Правильная тайловая текстура для PBR-пайплайна — это минимум пять карт: Albedo (без освещения), Normal Map, Roughness, Metallic/AO packed, Height Map. Height Map нужна, если в материале используется Parallax Occlusion Mapping или Tessellation — без неё кирпичная стена при близком рассмотрении выглядит плоской.

Substance Designer как инструмент тайловых материалов

Для серьёзного production тайловые текстуры делаются в Substance Designer, а не в Photoshop. Причина — параметрический граф. Это значит, что результирующая текстура — это не пиксели, а алгоритм. Нужно поменять размер камней в кирпичной кладке? Один параметр в графе. Нужна версия с мокрой поверхностью? Отдельная переменная, включающая Roughness override в нижних зонах.

Граф типичного тайлового материала в Substance Designer:

  • Shape генератор (Tile Generator, Splatter, Flood Fill) — базовая форма элементов
  • Noise и Warp — разрушение идеальной повторяемости: Perlin noise на edge variation, Directional Warp для органических форм
  • Height to Normal — конвертация рельефа в Normal Map через Sobel filter
  • Level и Curve — финальная калибровка диапазонов под PBR-значения

Создание Substance Designer графа занимает больше времени, чем ручная рисовка текстуры в Photoshop. Но он окупается при любых изменениях ТЗ и позволяет создавать вариации без переделки с нуля.

Texture Atlas: упаковка и нарезка

Texture atlas снижает количество draw calls — вместо десяти материалов на десять мелких объектов используется один материал с одной текстурой, в которой все десять упакованы. В Unity это напрямую влияет на batching: Static Batching работает только с объектами, у которых общий материал и текстура.

Оптимальная упаковка атласа — не просто «затолкать всё в 2K». Важен texel density: мелкий пропс на атласе 256x256 при общей текстуре 2048x2048 получит в 8 раз хуже разрешение, чем если бы был на индивидуальной 256x256 текстуре. Поэтому ассеты в атлас подбираются по размеру и важности: hero-пропсы — больше площадь на атласе, фоновый мусор — меньше.

Инструменты для упаковки: TexturePacker (кросс-платформенный, хорошо интегрируется в CI/CD), Unity Sprite Atlas для 2D, Unreal нативный Texture Atlas Generator для Landscape, ручная упаковка через скрипты на Python/PIL для нестандартных пайплайнов.

Отдельная задача — атласы для Sprite/UI в 2D-проектах. Здесь правила упаковки строже: padding между спрайтами минимум 2–4 пикселя для предотвращения bleeding при фильтрации, атлас кратен степени двойки (512, 1024, 2048), PowerOfTwo обязателен для корректной мипмаппинга.

Типичные ошибки при создании тайловых текстур и атласов

Normal Map baked with wrong settings. Если Normal Map запечена из High-poly с неправильным Tangent Basis, она будет работать в Substance Painter, но сломается в Unity или Unreal из-за разного соглашения об оси Y (DirectX vs OpenGL). Simptom — темные полосы по швам. Решается через явное указание Tangent Space при экспорте из Substance Painter: DirectX для Unreal, OpenGL для Unity.

Тайловая текстура с информацией об освещении. Запечённые тени или ambient occlusion в Albedo тайловой текстуры — фатальная ошибка. При смене времени суток или направления света AO в текстуре будет конфликтовать с динамическим освещением.

Переполненный атлас без mip-map учёта. Текстура 4096x4096 с сотней мелких спрайтов даёт красивый атлас, но на мобильных устройствах после генерации mip-map мелкие спрайты превращаются в цветные пятна уже на mip level 3–4. Необходимо проверять атлас на финальных mip-уровнях перед сдачей.

Масштаб задачи Ориентировочный срок
Одна тайловая текстура (Substance Designer граф) 2–4 дня
Набор тайловых текстур для биома (5–10 материалов) 1,5–3 недели
Texture atlas для набора пропсов (до 30 объектов) 3–5 дней
Texture atlas для 2D-проекта (UI + спрайты) 1–2 недели

Стоимость определяется после анализа ТЗ: разрешение текстур, количество вариаций, целевая платформа и движок.