Calculadora de memoria de texturas YTD

FXServer avisa cuando un archivo de stream necesita más de 16 MiB de memoria física. Suelta aquí un .ytd para ver ese número antes de arrancar el servidor, con las texturas ordenadas según lo que pesa cada una. El archivo lo lee tu navegador y no se sube a ningún sitio.

Suelta aquí archivos .ytd

Memoria de una textura según tamaño y formato

¿No tienes el archivo a mano? Elige un tamaño y un formato para ver cuánto cuesta una textura.

Cómo se usa

  1. Suelta el .ytd

    Suelta uno o varios archivos .ytd en el recuadro, o elígelos con el botón. Sirven los de FiveM (legacy) y los de GTA V Enhanced.

  2. Mira la memoria física

    Es el número que FXServer imprime en la línea "uses X MiB of physical memory". Por encima de 16 MiB el servidor avisa.

  3. Busca las texturas pesadas

    La tabla viene ordenada por memoria. Una textura de 4096 o sin comprimir suele estar arriba del todo.

  4. Reduce y vuelve a comprobar

    Baja la resolución a la mitad o cambia a un formato comprimido, guarda el .ytd y suéltalo otra vez.

¿Cómo se calcula el número?

Todo archivo de stream empieza con una cabecera RSC7 de 16 bytes. Dos campos de esa cabecera indican cuánta memoria necesita el archivo una vez descomprimido: uno para la memoria virtual (datos de estructura) y otro para la memoria física (los píxeles de las texturas). FXServer decodifica esos campos al iniciar el resource y compara cada uno con 16, 32, 48 y 64 MiB. Esta página usa la misma fórmula, la de ResourceStreamComponent.cpp.

Para listar las texturas, la página descomprime la parte de estructura del archivo y lee el nombre, el tamaño, el formato y el número de mips de cada una. Los píxeles no hacen falta, así que un diccionario de 150 MiB no da problemas.

Los escalones del aviso y las formas de quedar por debajo están en archivos de modelo del vehículo y el aviso de asset sobredimensionado. Los tamaños de textura según su función están en cómo optimizar un vehículo FiveM.

¿Qué significa cada escalón del aviso?

Memoria de un archivoConsola del servidor
16 MiB o menosNo sale nada.
Más de 16 MiBAviso en azul.
Más de 32 MiBAviso en amarillo.
Más de 48 MiBLa línea añade "Oversized assets can and WILL lead to streaming issues (such as models not loading/rendering)".
Más de 64 MiBAviso en rojo.

Preguntas frecuentes

¿Qué es el límite de 16 MiB de FiveM?
Es el primer escalón de un aviso de FXServer. Un archivo de stream que necesita más de 16 MiB de memoria física o virtual recibe una línea en la consola del servidor. La línea sale en amarillo por encima de 32 MiB y en rojo por encima de 64 MiB, y por encima de 48 MiB añade que los assets sobredimensionados "can and WILL lead to streaming issues". El servidor sigue enviando el archivo.
¿Por qué la memoria es mayor que el archivo en disco?
Los archivos de stream van comprimidos. La cabecera guarda el tamaño de los datos descomprimidos, que es lo que el juego tiene que mantener en memoria.
¿Por qué las texturas suman menos que la memoria física?
La memoria se reserva en páginas de tamaño fijo y las texturas no siempre encajan sin dejar hueco. El valor de la cabecera es el total reservado, por eso queda por encima de la suma, a veces varios MiB. FXServer se guía por la cabecera.
¿Lee archivos .ytd de GTA V Enhanced?
Sí. Lee el formato legacy (versión 13 del resource) y el de Enhanced (versión 5). Lo pasamos por 1584 archivos .ytd de dos servidores de prueba y los listó todos.
¿Puedo soltar un .yft o un .ydr?
Sí, pero solo salen los dos números de la cabecera. La lista de texturas es para archivos .ytd.
¿Se suben mis archivos a algún servidor?
No. La página los lee en tu navegador con JavaScript y no los envía a ningún sitio. Puedes abrir la página, cortar la conexión y sigue funcionando.

Guías relacionadas

Otra herramienta