Imagen generada con IA

Optimizar un modelo 3D para juegos: polígonos, LOD y texturas

Diego Cortés

Diego Cortés

Autor

22 octubre, 2026

Optimizar un modelo 3D para juegos no es bajar polígonos hasta que la malla se vea fea: es administrar cuatro costes que se miden por separado y que puedes auditar antes de tocar una sola cara. Aquí tienes el presupuesto, cómo medirlo y las reducciones que cambian los fps.

Qué significa optimizar un modelo 3D para juegos (y por qué no es solo bajar polígonos)

Cuando un asset entra a un motor de tiempo real empieza a pagar cuatro facturas distintas, y cada una se arregla con otra herramienta. La primera es la geometría: triángulos y vértices que la cámara ve en ese frame. La segunda son los draw calls: mallas únicas por materiales distintos, y cada combinación es una orden más que la CPU manda a la GPU. La tercera es la memoria de texturas, que depende del tamaño de cada mapa, no de la densidad de la malla. La cuarta es el coste por píxel: instrucciones y transparencias acumuladas en cada fragmento sombreado.

Una regla mental ordena el resto: el motor no dibuja tu modelo, dibuja lo que la cámara ve en ese instante. Lo que queda fuera de cuadro o tapado no cuesta, y de ahí viene la oclusión. Un asset game-ready no es el que tiene menos caras en abstracto, sino el que entra en el presupuesto de un proyecto y un hardware concretos.

El presupuesto: cuánto cabe en una vista (las cifras de Epic)

Epic documenta cifras de referencia para móvil: alrededor de 700 draw calls por vista y 500.000 triángulos por vista para toda la escena. Ese medio millón se fijó como máximo para sostener 30 fps en un iPad 4 y un iPad Air, y en hardware más flojo la recomendación baja a menos de 500 draw calls. En proyectos de interfaces el objetivo es 100 y lo preferible, menos de 50.

Las cifras se leen en consola: Stat RHI da los draw calls y Stat D3D11RHI o Stat OpenGLRHI los triángulos por vista. Y hay un límite que casi nadie recuerda: en móvil los materiales tienen 5 samplers de textura, y usar los cinco ya es caro.

Ojo: son cifras de Epic y son de móvil. En PC y consola el margen es otro y depende del dispositivo, la resolución y el proyecto; lo que no cambia es el método. Los presupuestos universales no existen.

Paso 1: mide antes de tocar nada

En Blender

Activa Statistics en los overlays del viewport: muestra cuántos objetos y cuánta geometría real hay, con conteo de caras y triángulos. El mismo panel obliga a una pregunta útil: cuántos materiales tiene el asset y cuántos sets de texturas usa. Si una pieza única lleva nueve materiales, el problema no es el polígono.

En Unreal

Stat RHI cuenta draw calls; Stat GPU, Stat Unit y Stat UnitGraph muestran milisegundos por hilo y GPU, con los picos que arruinan un frame aunque el promedio se vea bien; Stat TextureGroup y ListTextures dicen dónde se va la memoria; Primitive Stats da triángulos y memoria por primitiva; y Memreport -full deja el informe completo.

La vista que delata el coste por píxel

Shader Complexity (Alt+8) colorea la pantalla por coste de shading: verde es barato, rojo brillante caro, blanco o rosa muy caro. Ahí se ve el overdraw de las transparencias, que según Epic puede duplicar o más el tiempo de GPU sin que el contador de triángulos se mueva. En builds Development la consola del dispositivo se abre tocando la pantalla con cuatro dedos; en Shipping no existe.

Paso 2: triángulos y LOD sin arruinar la silueta

Diezmar en Blender

El modificador Diezmar reduce vértices y caras con cambios mínimos de forma y muestra las caras que quedan. Colapsar usa una proporción: 1.0 deja la malla intacta, 0.5 la mitad de las caras, 0.0 las quita todas; el cálculo va en triángulos, así que una malla de quads deja más caras de las esperadas. Revertir subdivisión deshace niveles con iteraciones, donde 2 equivale a una subdivisión. Plana colapsa por ángulo y permite delimitar por normal, material, costura, borde definido o UV. Si la malla viene de esculpido o de subdivisión, primero retopología (Blender, Maya): diezmar una malla mal construida solo reparte el desastre.

LODs: el disparador es el tamaño en pantalla

Un LOD no es el mismo modelo más feo, es un cambio de malla disparado por cuánto ocupa el objeto en pantalla. En Unreal, Auto Compute LOD Distances calcula los umbrales, LOD Settings los ajusta y LOD Picker > Custom deja ver todos los niveles a la vez para comparar siluetas; el viewport del Static Mesh Editor muestra el Current Screen Size de cada uno. Con Add Override for Mobile la transición ocurre antes en móvil sin tocar la configuración de PC. Y Nanite, que es geometría virtualizada, no elimina la necesidad de LODs: hay plataformas sin soporte y materiales no compatibles (ver Unreal Engine 5 para artistas 3D).

Paso 3: menos materiales, menos draw calls

Epic usa un ejemplo claro: un coche bien optimizado puede ser cinco o seis mallas separadas con un material cada una. Lo que importa es la relación, porque el draw call depende de mallas únicas por material único. Diez objetos que comparten material siguen siendo diez draw calls si no se combinan; un objeto con cinco materiales son cinco draw calls.

La primera reducción es la más barata: fusionar objetos en el DCC antes de importar, en Blender, Maya o 3ds Max. La segunda es unificar el set de texturas: hornear varios materiales en una misma textura desde Substance Painter y usar instancias, o separar zonas con máscaras y vertex color, más barato que una máscara de textura y sin depender de la resolución. La tercera son los trim sheets y atlas: muchos tiles de UDIM en tiempo real significan muchos recursos, y las instrucciones del material se cuentan en la ventana Stats del Material Editor.

Paso 4: texturas del tamaño correcto (ni más ni menos)

Elegir resolución a ojo es la fuente de memoria desperdiciada más común. Epic propone un método que quita la adivinanza: fija cámara y FOV en la posición real de juego, pon una textura de depuración con un color distinto por mip en el canal Emissive de un material unlit y mira el asset a la distancia real. El mip más alto visible es el tamaño nativo que necesitan normal y AO; lo que suba de ahí es memoria regalada.

Reglas que casi siempre se cumplen: texturas cuadradas y en potencias de dos (256, 512, 1024) porque desperdician menos, y verificación con ListTextures y Stat TextureGroup. Los formatos de tiempo real comprimen bloques de píxeles a tasa fija con pérdida y la GPU los descomprime al vuelo: S3TC, ETC, ASTC y PVRTC son la misma idea. Los mipmaps son una cadena precalculada de imágenes a media resolución que acelera el render y reduce el aliasing, a cambio de cerca de un 33% más de memoria.

Paso 5: el coste por píxel (donde se muere sin darte cuenta)

Los materiales opacos son lo más barato que existe. Los masked y translúcidos son otra historia: cada capa se sombrea y el overdraw se acumula. Epic recomienda usarlos solo donde cubran poca pantalla, como cristales o luces de coche, y resolver con textura pintada cuando se pueda.

Para hardware flojo hay dos herramientas de escalado sin duplicar assets: Quality Switch dentro del material y r.MaterialQualityLevel, con valores 0 Low, 1 High, 2 Medium y 3 Epic. Sí, el 1 es High y el 2 es Medium: conviene memorizarlo antes de escribir un script de arranque.

Checklist antes de decir "está listo"

En Blender: triángulos con Statistics, materiales y sets de textura contados, UVs sin solapes, origen y escala correctos. En Unreal: draw calls con Stat RHI en la vista más pesada, LODs con su screen size revisada, colisión simplificada, precisión de UVs y tangentes solo si aparecen artefactos, y memoria de texturas con Stat TextureGroup. Se mide en la vista más pesada del juego, no en la más cómoda del editor.

Qué ver en la plataforma

La colección curada acompaña estos pasos: Profiling with Purpose y Workflows for Optimizing Live Games on Mobile para medir y perfilar; Mastering Sub-D and Low Poly 3D Modeling y Blender Game Assets de Polygon Runway para el conteo de caras; UVs and Bakes para horneado.

Conclusión

Optimizar se aprende midiendo. El artista que sabe leer un Stat RHI y decir "el problema son los draw calls, no los triángulos" vale mucho más que el que adivina bajando números. El proyecto te da el presupuesto, el motor la medición, y las cuatro reducciones -geometría, materiales, texturas y píxeles- se aplican en ese orden.

Te invito a recorrer los tutoriales en video de la plataforma con este esquema en la cabeza: cuando veas a alguien optimizar en tiempo real, vas a reconocer en qué factura está trabajando.