Текстуры, файлы и паки · 3 мин чтения
Как добавить мипмапы в YTD: розовые или мерцающие текстуры вблизи
Читать на:: English · Español · Français · Deutsch · Português · Italiano · Polski · Türkçe
Текстура обычно имеет мипмапы: меньшие копии самой себя, каждая вдвое меньше предыдущей. Игра рисует полную текстуру вблизи, а меньшие копии вдали, что дешевле и выглядит плавнее. Некоторые экспортёры сохраняют текстуры только с полным уровнем, и в FiveM это может проявиться как модель, розовая или размытая вблизи либо мерцающая издалека.
Почему текстура без мипмап создаёт проблемы
Почти всё в игре имеет мипмапы. Мы просмотрели 1500 собственных .ytd GTA V: из их 3534 цветовых текстур только 65 имеют один уровень, и только 2 из них больше 64 пикселей, оба — значки машин. Текстуры, которые игра оставляет на одном уровне, оставлены так намеренно: tint-палитры, render targets скриптов (script_rt_…), карты воды, значки и некоторые изображения интерфейса.
У текстуры без меньших уровней у игры нет способа её понизить. Когда памяти текстур не хватает, скорее всего, она будет выглядеть розовой или размытой, внезапно появляться вблизи, а издалека мерцать. Именно это мы увидели у аддон-педа клиента: вблизи в игре розовый, хотя все текстуры были на месте. Текстура его тела — 2048 × 2048 DXT5, сохранённая с одним уровнем.
Мипмапы занимают примерно на треть больше памяти, чем один полный уровень. Это нормальная цена, и её платят все собственные текстуры игры.
Найдите текстуры без мипмап
Три инструмента перечисляют их по одному правилу (один уровень, больше 64 пикселей и не один из тех типов, которые игра держит на одном уровне):
- Missing Textures Check: весь ресурс; раздел Size and format перечисляет текстуры без мипмап.
- Asset Optimizer: перетащенные файлы с надписью "N textures with no mipmaps" (N текстур без мипмап) у каждого.
- Model Inspector: одна модель и её
.ytd, с разделом No mipmaps.
Перестройте их с мипмапами
- Перетащите
.ytdв Asset Optimizer вместе с моделями, которые его используют (.ydr,.yft,.ydd). Когда модели рядом, обычные карты распознаются по тому, как модели их используют. - Оставьте Add missing mipmaps включённым (по умолчанию так и есть).
- Выберите Largest texture size (максимальный размер текстуры). Текстуры больше него уменьшаются до этого размера; остальные сохраняют свой размер (округлённый до степени двойки) и получают только мипмапы.
- Нажмите Download the lighter files (.zip) и верните файлы в
stream/под теми же именами. - Прочитайте What was done to each texture (что сделано с каждой текстурой): по строке на текстуру, с размером и форматом до и после.

.ytd с шестью текстурами, сохранёнными без мипмап, после запуска: каждая создана заново со своими уровнями.Каждая перестроенная текстура получает все уровни вплоть до 4 пикселей. Сжатые цветовые текстуры становятся DXT1, если ни один пиксель не прозрачен, и DXT5, если некоторые прозрачны (несжатые остаются несжатыми). Карты нормалей остаются картами нормалей и на каждом уровне снова приводятся к единичной длине. Палитры, render targets и другие типы с одним уровнем не трогаются, а форматы, которые инструмент не может перестроить (например, BC7), остаются как есть, с пометкой.
Texture Editor для этого не подходит: он уменьшает и заменяет текстуры, но не добавляет мипмапы текстуре, которую вы оставляете как есть. Текстура, которую вы там заменили, вернётся с мипмапами.
Проверьте в игре
Игроки сохраняют старый .ytd, пока не переподключатся, поэтому переподключитесь к серверу, а не только перезапускайте ресурс. Затем посмотрите на модель вблизи и издалека.
Вопросы
- Должны ли все текстуры иметь мипмапы?
- Почти все в GTA V их имеют. Исключения — текстуры, которые игра намеренно держит на одном уровне (tint-палитры, render targets скриптов, карты воды), и инструменты оставляют их в покое.
- Мипмапы увеличивают мои файлы?
- Примерно на треть. Если из-за этого файл превысит предупреждение FiveM в 16 MiB, одновременно уменьшите максимальный размер текстуры.

Инструмент для этого
Asset Optimizer
Перетащите ваши stream-файлы: текстуры без мипмап получат их обратно, слишком большие будут уменьшены до выбранного размера, и каждый файл сохранит имя.
Открыть Asset OptimizerПригодится также: Missing Textures Check · Model Inspector

