Калькулятор памяти текстур YTD

FXServer выводит предупреждение, когда файлу из stream нужно больше 16 MiB физической памяти. Перетащите сюда .ytd и увидите это число ещё до запуска сервера. Текстуры отсортированы по тому, сколько памяти занимает каждая. Файл читает ваш браузер, на сервер он не загружается.

Перетащите сюда файлы .ytd

Память текстуры по размеру и формату

Файла под рукой нет? Выберите размер и формат и посмотрите, сколько занимает одна текстура.

Как пользоваться

  1. Перетащите .ytd

    Перетащите один или несколько файлов .ytd в поле или выберите их кнопкой. Подходят файлы и для FiveM (legacy), и для GTA V Enhanced.

  2. Посмотрите физическую память

    Это число FXServer печатает в строке "uses X MiB of physical memory". Выше 16 MiB сервер предупреждает.

  3. Найдите тяжёлые текстуры

    Таблица отсортирована по памяти. Наверху обычно текстура 4096 или текстура без сжатия.

  4. Уменьшите и проверьте снова

    Уменьшите разрешение вдвое или смените формат на сжатый, сохраните .ytd и перетащите его ещё раз.

Как считается это число?

Каждый файл из stream начинается с заголовка RSC7 длиной 16 байт. Два поля в нём задают, сколько памяти нужно файлу после распаковки: одно для виртуальной памяти (данные структуры), другое для физической (пиксели текстур). FXServer разбирает эти поля при запуске ресурса и сравнивает каждое с 16, 32, 48 и 64 MiB. Страница считает по той же формуле, что и ResourceStreamComponent.cpp.

Чтобы показать список текстур, страница распаковывает структурную часть файла и читает имя, размер, формат и число мипов каждой текстуры. Сами пиксели для этого не нужны, поэтому словарь на 150 MiB тоже читается без проблем.

Ступени предупреждения и способы уложиться в них описаны в гайде файлы модели транспорта и предупреждение oversized assets. Размеры текстур по назначению есть в гайде как оптимизировать транспорт FiveM.

Что означают ступени предупреждения?

Память одного файлаКонсоль сервера
16 MiB и меньшеНичего не выводится.
Больше 16 MiBПредупреждение синим цветом.
Больше 32 MiBПредупреждение жёлтым цветом.
Больше 48 MiBК строке добавляется "Oversized assets can and WILL lead to streaming issues (such as models not loading/rendering)".
Больше 64 MiBПредупреждение красным цветом.

Частые вопросы

Что такое лимит 16 MiB в FiveM?
Это первая ступень предупреждения FXServer. Если файлу из stream нужно больше 16 MiB физической или виртуальной памяти, в консоли сервера появляется строка. Выше 32 MiB она жёлтая, выше 64 MiB красная, а выше 48 MiB в ней добавляется, что слишком большие ассеты "can and WILL lead to streaming issues". Сам файл сервер всё равно отдаёт.
Почему память больше, чем файл на диске?
Файлы в stream сжаты. В заголовке записан размер распакованных данных, а именно их игра держит в памяти.
Почему сумма текстур меньше физической памяти?
Память выделяется страницами фиксированного размера, и текстуры не всегда укладываются в них без остатка. В заголовке записан весь выделенный объём, поэтому он больше суммы, иногда на несколько MiB. FXServer смотрит на заголовок.
Читает ли он файлы .ytd из GTA V Enhanced?
Да. Читает и старый формат (версия ресурса 13), и формат Enhanced (версия 5). Мы прогнали его по 1584 файлам .ytd с двух тестовых серверов, и он показал список для каждого.
Можно перетащить .yft или .ydr?
Можно, но появятся только два числа из заголовка. Список текстур есть только для .ytd.
Мои файлы куда-то загружаются?
Нет. Страница читает их в вашем браузере на JavaScript и никуда не отправляет. Можно открыть страницу, отключить интернет, и она продолжит работать.

Гайды по теме

Другой инструмент