Створення тайлових текстур та атласів графіки

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

Від імерсивних застосунків до ігрових світів і 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 для великих terrain — інша історія: там кожен тайл отримує унікальний набір деталей через 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 текстурі. Тому assets в атлас підбираються за розміром та важливістю: 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 обов'язковий для коректного mipmap.

Типові помилки при створенні тайлових текстур та атласів

Normal Map запечена з неправильними настройками. Якщо Normal Map запечена з High-poly з неправильним Tangent Basis, вона буде працювати у Substance Painter, але сломається у Unity або Unreal через різне угодження про вісь Y (DirectX vs OpenGL). Симптом — темні смуги по швам. Розв'язується через явне вказання 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 тижні

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