Saltar al contenido

Lo que un resource cuesta de verdad a un jugador

Un resource de 40 MB puede costarle a un jugador más memoria que uno de 300 MB. El tamaño en disco está comprimido; la tarjeta gráfica guarda la forma expandida. Este es el número que importa de verdad, dónde se tuerce y qué puede cambiar un optimizador sin riesgo.

El número que importa no es el tamaño del archivo

Un .ytd está comprimido en disco. Lo que guarda la tarjeta gráfica de un jugador es la textura expandida, y ese número depende de tres cosas: las dimensiones, el formato y si lleva mips.

Una textura sin comprimir cuesta unas ocho veces lo que cuestan los mismos píxeles en BC1. Ese simple hecho es la mayor ganancia en la mayoría de las subidas, y no cambia en nada cómo se ve la textura en pantalla. Los mips añaden aproximadamente un tercio más, y valen cada byte: una textura sin ellos se muestrea a resolución completa desde la otra punta del mapa.

Por eso el escaneo informa de memoria, no de megabytes. Dos resources con el mismo tamaño de descarga pueden diferir varias veces en lo que le cuestan a un jugador.

Qué cambia y en qué orden

Cada textura de la subida se lee del propio archivo y pasa por las mismas cuatro preguntas. El orden es deliberado.

Primero va el mínimo. Todo lo que mida 256 píxeles o menos en su lado largo se deja como está, sea cual sea su formato: recomprimir una textura pequeña la daña de forma visible y no ahorra casi nada. Luego la compresión: una textura sin comprimir pasa a BC1, o a BC3 si realmente usa alpha. Luego el tope: todo lo que supere el máximo que fijes se reduce hasta él, redondeado a una potencia de dos. Y nada más: si una textura ya está dentro del presupuesto, se informa y se deja.

1Mínimo¿pequeña? no se toca2Formato¿sin comprimir? comprime3Tope¿pasa el máximo? reduce4Informeantes y después, por archivo
Máximos disponibles: 4096, 2048, 1024, 512, 256. Mínimos: 512, 256, 128, desactivado.

Texturas sin usar y duplicadas

El escaneo lee cada modelo del paquete y recoge las texturas que nombran sus shaders: todas, no solo la diffuse. Una textura que solo se usa como normal map o specular map está en uso, y quitarla dejaría el modelo plano en el juego.

Todo lo que no nombra ningún shader se informa como sin usar, y puedes hacer que se elimine. Esa comprobación solo se ejecuta cuando el paquete incluye realmente un modelo: si subiste archivos .ytd sueltos, nada puede considerarse sin usar, porque el shader que la muestrea puede estar en un archivo que nunca te dieron. Las texturas idénticas guardadas con nombres distintos se informan aparte: los duplicados son comunes en packs montados a partir de varias fuentes.

El único cambio desactivado por defecto

Una textura cuyos lados no son potencias de dos no puede llevar una cadena de mips completa. El juego usa el nivel superior a cualquier distancia: parpadea de lejos y ocupa la memoria completa todo el tiempo. Cuadrarla arregla las dos cosas.

Aun así está desactivado por defecto, porque arreglarlo implica redimensionar una textura que no pediste reducir, que es justo como un optimizador arruina un decal. Se informa en cada escaneo y solo se aplica cuando lo marcas.

Por el mismo motivo nunca se tocan los modelos. El optimizador reescribe texturas; generar los niveles de detalle que un modelo no traía es un paso aparte y opcional que va a la cola de trabajos, porque en un coche tarda minutos.

Pruébalo gratis

Crea una cuenta gratis, únete al Discord para tus créditos, y construye tu primer asset en minutos.