Плотность текселей: почему у вас текстура мылит именно на полу

11 июл 2026 · 5 мин · 💬 1

Texel density — плотность текселей: сколько пикселей текстуры приходится на метр реального (или игрового) мира. Считается в px/m и объясняет половину «странных» проблем с мылом.

Арифметика

Комната 4×4 метра, стена развёрнута на половину UV-пространства, текстура 2048×2048. Значит на стену ушло 1024 пикселя на 4 метра — 256 px/m. Пол той же комнаты растянут на всю остальную половину атласа по диагонали, получает те же 1024 пикселя, но на большую площадь в UV — плотность падает. И наоборот: мелкие пропсы, занимающие огромный остров UV, получают 500 px/m и выглядят хрустящими рядом с полом за 150.

Запомните связь: плотность = размер UV-острова ÷ реальный размер объекта. Ошибка в любой из двух величин одинаково убивает картинку, и исправляется она только переразвёрткой.

Глаз замечает не абсолютное качество, а разницу. Мыло на полу при чётких обоях — это не «текстура плохая», это дисбаланс плотности.

Нормы индустрии

Ориентиры для AAA-пропсов/окружения:

  • 512 px/m — hero-объекты, то, что рассматривают вплотную
  • 256 px/m — стандартная плотность окружения (стены, мебель, пол)
  • 128 px/m — дальний план, трава, камни

Для мобильной игры всё делится примерно на два. Главное число — не рекорд, а единообразие: все объекты одной категории должны иметь одну плотность с допуском ±10%.

Как выровнять в Blender

  1. Выделить UV-остров объекта (L в UV Editor над ним).
  2. Масштабировать так, чтобы остров занимал долю UV-пространства, пропорциональную его реальному размеру.
  3. Проверить: Script → Run Script с простой формулой, или аддон UV Packer / Texel Density Checker (бесплатный, показывает плотность каждого острова цветом).

Быстрая ручная проверка: куб метр на метр, развёртка 1×1 в UV, текстура 1024 — значит 1024 px/m. От этой точки считаем остальные.

Компрессия — второй виновник

Даже ровная плотность мылит, если движок сжал текстуру агрессивнее бюджета. Половые атласы часто получают меньше мип-уровней из-за экономии памяти, а смотрит игрок на пол чаще, чем на потолок. Если пол «расплывается» на дистанции в 2 метра, а в 30 см от камеры чёткий — посмотрите настройки импорта: генерацию мипов и максимальный размер.

Выровняйте плотность один раз до паковки атласа — и половина «проблем с качеством» исчезнет без единого пикселя лишнего. А если бюджет памяти совсем тесный, поднимайте плотность точечно: там, где камера проводит больше всего времени. Пол и столешница у игрока перед глазами чаще, чем потолок.

Комментарии (1)

Форма для гостей комментариев пока не принимается — писать можно автору (expeot@outlook.com) или через владельца блога. Все записи выше настоящие, никто их не модерирует молча.