Что за единая чёткость текстур (Texel Density) — объясняем простыми словами + калькулятор

Texel Density - как и с чем это едят
Texel Density - как и с чем это едят

Этот мини-гайд рассчитан на начинающих разработчиков, хотя и не исключено, что более опытные представители индустрии найдут что-то полезное.

TL;DR

  • Texel Density (TD) — это «сколько пикселей текстуры приходится на метр модели» (px/м). Когда TD согласован, сцена выглядит ровно.
  • Начните с трёх категорий: герой (1024–2048 px/м), проп у камеры (512–1024), фон (256–512). Для мобайла — на ступень ниже.
  • Возьмите площадь поверхности модели → в калькуляторе получите рекомендованный размер текстуры. Округляйте до степеней 2 (512/1024/2048).
  • Проверяйте выборочно в редакторе: у крупного — чётко, у фона — ровно и без «мыла».

Калькулятор (Excel): скачать

Что это такое и почему важно

Texel Density — сколько пикселей текстуры приходится на метр поверхности модели. (px/m)

Когда в одной сцене на кубике рядом с камерой 2K текстуры, а на руке героя — 512 px, глаз цепляется за разницу. Единый TD решает сразу три проблемы:

  • Ровная картинка: нет такого, что одна текстура словно из 2000 года, а вторая — 4K SUPER ULTRA MEGA DRIVE.

  • Предсказуемый вес: вы примерно знаете, сколько VRAM уйдёт на сцену.

  • Меньше спорных правок: есть понятные нормы по категориям.

Базовые ориентиры

  • Герой, крупный план: 1024–2048 px/м

  • Пропы рядом с камерой: 512–1024 px/м

  • Фон/декор: 256–512 px/м

  • В мобилках берите на ступень ниже того же назначения

Это не закон, а отправная точка. Адаптацию под стиль\проект никто не отменял.

Пошагово: как применить TD к любой модели

Шаг 1. Узнать площадь поверхности модели

Нет необходимости считать каждый пиксель, приблизительных значений достаточно.

Для Блендер:

  • Edit → Preferences → Add-ons → включите 3D Print Toolbox.
  • В 3D Viewport → Sidebar (N) → 3D-Print нажмите Area — увидите площадь в м².
  • Убедитесь, что единицы сцены — Metric.

UE:

  • Откройте меш в Static Mesh Editor.
  • В правой панели/статистике ищите Approximate Surface Area (если недоступно — возьмите оценку из DCC или посчитайте по частям).

Unity:

Прямой метрики нет. Возьмите площадь из DCC (Blender/Maya) — это нормально. В Unity важно проверить масштаб (чтобы метр в сцене был метром).

Если точную площадь быстро не получить — оцените крупно (например, «ящик 1×0.5×0.5 ≈ 2.5 м²»). Калькулятор выдерживает погрешности.

AIQ

Шаг 2. Выбрать целевой TD

Определите категорию ассета (герой / рядом / фон / мобайл) и возьмите TD из ориентиров выше. Для начала вообще можно взять какое-нибудь среднее из диапазонов.

Шаг 3. Получить размер текстуры

Пример расчета
Пример расчета

Откройте скачанный Excel (если не скачали, то вот урл): лист TD_Calc. Заполните три колонки:

  • A (м²): площадь поверхности
  • TD (px/м): целевое значение
  • Коэф. упаковки: насколько плотно вы укладываете UV в текстуру/атлас (обычно 0.75–0.9)

Калькулятор выдаст:

  • Рекомендованный размер (пиксели по большой стороне)
  • Ближайшую степень двойки (512/1024/2048 и т. д.)

Для не-квадратных текстур ориентируйтесь на большую сторону и не забывайте про mipmaps.

AIQ

Шаг 4. Округлить и экспортировать карты

Округлите размер до ближайшей степени 2. Экспортируйте карты в нужном формате под вашу платформу (для ПК — семейство BC, для iOS — ASTC и т. п.). Если собираете атласы, учитывайте, что общий коэф упаковки уменьшает полезную площадь.

Обратная проверка

Для ревью будет полезно следующее:

В excel есть лист TD_Reverse:

Введите текущий размер текстуры, площадь модели и упаковку — получите фактический TD. Если фактический TD гуляет сильнее нормы между похожими ассетами, выровняйте (увеличьте или уменьшите текстуру/плотность UV).

Как этот TD живёт с разными техниками

Tiling-материалы (повторяемые текстуры): Отличный вариант для стен, земли, скал. TD контролируете через масштаб тайлинга на материале. Крупные детали можно подклеить декалями.

Trim-sheets: Отлично подходят для архитектуры и модульных наборов. TD определяется самим листом. Важно сохранить «мастер-шифр» значений, чтобы все элементы одного семейства были чёткими и согласованными.

UDIMы: Удобно для крупных персонажей/механизмов. TD по «плиткам» должен быть согласован, иначе тело будет «пестрить».

Атласы: Помните, что упаковка никогда не 100% (поэтому в калькуляторе есть коэффициент). Если не влазит — либо снижайте TD младших элементов, либо поднимайте размер атласа ступенью выше.

Как это проверить в редакторе

Blender

В UV Editor включите отображение Texel Density (через аддоны/скрипты) или визуальный грид. Смотрите, чтобы элементы одной семьи имели похожую плотность.

Unity

Проверяйте визуально на эталонной сцене: один ассет рядом с другим. Для UI — убедитесь, что спрайты в атласах не слишком сжаты. Для 3D — держите одинаковую «чёткость» у соседних объектов.

UE

В Material/Texture настройках используйте корректные LODBias/MaxInGame и подходящие Texture Group. Сцена для проверки должна быть с реальной дистанцией камеры.

Всплывающие вопросы

Нужна ли точная площадь поверхности?

Нет, не нужна. Достаточно примерной оценки, так мы сможем получить согласованность меж ассетов.

Что с мобилками и VR?

Снижайте TD на одну ступень для той же категории. Здесь гонимся за фактическим изображением на устройстве.

Почему у меня не влазит в атлас?

Учтите упаковку в пределах 0.75–0.9; либо снизьте TD младших элементов, либо поднимите атлас на ступень.

Вкратце напоследок

TD — это не про цифры ради цифр, скорее про чёткую картинку и предсказуемость. Как только заданы базовые значения — и мыло уходит, и споры прекращаются (если есть с кем спорить).

На этом фундаменте дальше спокойно настраиваются атласы, шейдеры и LOD.

Если было интересно, ставьте реакции.

Есть что предложить или сказать? Ждём в комментах.

Всем добра.

18
1
1 комментарий