Texturas, archivos y packs · 3 min de lectura

Cómo añadir mipmaps a un YTD (texturas rosas o parpadeantes de cerca)

Leer en: English · Français · Deutsch · Português · Italiano · Polski · Türkçe · Русский

Una textura suele venir con mipmaps: copias más pequeñas de sí misma, cada una la mitad de tamaño que la anterior. El juego dibuja la textura completa de cerca y las copias pequeñas más lejos, lo que sale más barato y se ve más suave. Algunos exportadores guardan las texturas solo con su nivel de tamaño completo, y en FiveM eso puede verse como un modelo rosa o borroso de cerca, o como un modelo que parpadea desde lejos.

Por qué una textura sin mipmaps da problemas

Casi todo en el juego tiene mipmaps. Revisamos 1.500 archivos .ytd de GTA V: de sus 3.534 texturas de color, solo 65 tienen un único nivel, y solo 2 de esas son más grandes de 64 píxeles, ambas insignias de vehículos. Las texturas que el juego mantiene en un solo nivel lo hacen a propósito: paletas de tintes, render targets de scripts (script_rt_…), mapas de agua, insignias y algunas imágenes de interfaz.

Una textura sin niveles más pequeños no le da al juego forma de reducirla. El resultado más probable, cuando la memoria de texturas escasea, es que salga rosa o borrosa, o que aparezca de golpe de cerca, y desde lejos parpadee. Eso es lo que vimos en el ped addon de un cliente: rosa de cerca en el juego, con todas las texturas en su sitio. Su textura del cuerpo era una DXT5 de 2048 × 2048 guardada con un solo nivel.

Los mipmaps cuestan alrededor de un tercio más de memoria que solo el nivel de tamaño completo. Es el precio normal, y todas las texturas propias del juego lo pagan.

Encuentra las texturas sin mipmaps

Tres herramientas las listan, con la misma regla (un único nivel, más grande que 64 píxeles, y no de los tipos que el juego mantiene en un solo nivel):

  • Missing Textures Check: un recurso entero; su sección Size and format lista las texturas sin mipmaps.
  • Asset Optimizer: los archivos que arrastres, con "N textures with no mipmaps" para cada uno.
  • Model Inspector: un modelo y su .ytd, con una sección No mipmaps.

Reconstrúyelas con mipmaps

  1. Arrastra el .ytd al Asset Optimizer, junto con los modelos que lo usan (.ydr, .yft, .ydd). Con los modelos presentes, los mapas normales se reconocen por cómo los usan los modelos.
  2. Deja marcado Add missing mipmaps (añadir los mipmaps que faltan); viene activado por defecto.
  3. Elige un Largest texture size (tamaño máximo de textura). Las texturas por encima de ese tamaño se reducen hasta él; las demás mantienen su tamaño (redondeado a potencia de dos) y solo reciben sus mipmaps.
  4. Haz clic en Download the lighter files (.zip) y vuelve a colocar los archivos en stream/ con los mismos nombres.
  5. Lee What was done to each texture (qué se hizo con cada textura): una línea por textura, con su tamaño y formato antes y después.
Asset Optimizer tras una ejecución: la tabla de archivos con el tamaño final y las notas de cada textura, como una DXT5 de 2048 sin mipmaps rehecha a 1024 con 9 mipmaps
Un .ytd de prueba con seis texturas guardadas sin mipmaps, tras la ejecución: cada una rehecha con sus niveles.

Cada textura reconstruida recibe todos los niveles hasta 4 píxeles. Las texturas de color comprimidas pasan a DXT1 cuando ningún píxel es transparente y a DXT5 cuando algunos lo son (las que no están comprimidas siguen sin comprimir); los mapas normales se mantienen como mapas normales, normalizados de nuevo en cada nivel. Las paletas, los render targets y los demás tipos de un solo nivel no se tocan, y los formatos que la herramienta no puede reconstruir (BC7, por ejemplo) se dejan como están, con una nota.

El Texture Editor no es la herramienta para esto: reduce y reemplaza texturas, pero no añade mipmaps a una textura que dejas como está. Una textura que reemplazas allí sí vuelve con mipmaps.

Compruébalo en el juego

Los jugadores conservan el .ytd antiguo hasta que se reconectan, así que vuelve a entrar en el servidor en vez de solo reiniciar el recurso. Luego mira el modelo de cerca y de lejos.

Preguntas

¿Toda textura debería tener mipmaps?
Casi todas en GTA V los tienen. Las excepciones son las texturas que el juego mantiene en un solo nivel a propósito (paletas de tintes, render targets de scripts, mapas de agua), y las herramientas no las tocan.
¿Los mipmaps hacen mis archivos más grandes?
Alrededor de un tercio. Si eso empuja un archivo por encima del aviso de 16 MiB de FiveM, reduce al mismo tiempo el tamaño máximo de textura.

La herramienta para esto

Asset Optimizer

Arrastra tus archivos de stream: las texturas sin mipmaps los recuperan, las demasiado grandes se reducen al tamaño que elijas y cada archivo conserva su nombre.

Abrir Asset Optimizer

También útil aquí: Missing Textures Check · Model Inspector

Todas las herramientas son gratis para probar, con 5 exportaciones al día. Inicia sesión con Discord para usarlas.