🎮 UnityDocs

Mallas y geometría 3D

Qué hay dentro de un modelo 3D: vértices, triángulos, normales y UVs. Cómo Unity lo dibuja con MeshFilter + MeshRenderer, qué es el recuento de polígonos y por qué importa, y una introducción a generar mallas por código.

📄 ArtículoIntermedio✅ RevisadoUnity 6.0 LTSActualizado 2026-07-17
DificultadConceptual Código Matemáticas
Tiempo📖 Lectura 8 min · ⌨️ Práctica 15 min

Qué es una malla#

Todo objeto 3D (un personaje, una roca, un cubo) es una malla (mesh): una superficie hecha de triángulos. Entender sus piezas te ayuda a optimizar, a importar bien y a generar geometría por código.

Una malla se compone de:

  • Vértices: puntos en el espacio 3D (posiciones).
  • Triángulos: la unidad de dibujo de la GPU; cada cara se descompone en triángulos que unen tres vértices.
  • Normales: la dirección "hacia afuera" de cada vértice/cara; decide cómo le da la luz (una normal mal puesta se ve oscura o del revés).
  • UVs: coordenadas 2D que dicen qué parte de la textura cae en cada vértice (el "desplegado" del modelo). Ver materiales y texturas.

Cómo la dibuja Unity: MeshFilter + MeshRenderer#

Un objeto 3D visible tiene dos componentes que trabajan juntos:

ComponenteSu trabajo
Mesh FilterGuarda qué malla es (la geometría)
Mesh RendererDibuja esa malla con un material y decide sombras/luz

Si un modelo no se ve, casi siempre falta uno de los dos, o el Mesh Renderer no tiene material (se ve magenta o invisible).

Recuento de polígonos (polycount)#

El polycount (número de triángulos) es el gran indicador de coste de una malla. Más triángulos = más detalle, pero más trabajo para la GPU.

Presupuesto de polígonos según plataforma

No hay un número mágico, pero sí órdenes de magnitud: un personaje de móvil ronda unos pocos miles de triángulos; uno de PC/consola, decenas de miles. Un escenario suma muchas mallas: vigila el total en pantalla, no una sola. Para modelos lejanos, usa LOD (versiones de menos polígonos a distancia).

Topología: no solo cuántos, sino cómo#

La topología es cómo están organizados los triángulos. Una buena topología (cuadriláilteros limpios que se deforman bien) importa sobre todo en modelos que se animan (un personaje): triángulos mal repartidos se pliegan feos al mover las articulaciones. Esto se cuida al modelar (en Blender), no en Unity.

Generar una malla por código#

Puedes crear geometría en tiempo de ejecución (terreno procedural, formas dinámicas). A grandes rasgos:

C#
using UnityEngine;

[RequireComponent(typeof(MeshFilter), typeof(MeshRenderer))]
public class QuadProcedural : MonoBehaviour
{
    void Start()
    {
        var mesh = new Mesh();
        // 4 vértices de un cuadrado
        mesh.vertices = new[] {
            new Vector3(0,0,0), new Vector3(1,0,0),
            new Vector3(0,1,0), new Vector3(1,1,0)
        };
        // 2 triángulos (índices de vértices, en sentido horario mirando la cara)
        mesh.triangles = new[] { 0, 2, 1, 2, 3, 1 };
        mesh.uv = new[] { Vector2.zero, Vector2.right, Vector2.up, Vector2.one };
        mesh.RecalculateNormals();          // calcula las normales por nosotros
        GetComponent<MeshFilter>().mesh = mesh;
    }
}
El orden de los vértices define la cara visible

Los triángulos tienen una cara visible, determinada por el orden (winding) de sus vértices. Si un triángulo se ve "por dentro" (invisible desde fuera), invierte el orden de sus índices. Y llama a RecalculateNormals() o la luz saldrá mal.

Errores frecuentes#

  • Objeto 3D sin Mesh Filter o sin material en el Renderer (invisible o magenta).
  • Modelos con polycount disparado sin necesidad (hunden los FPS; usa LOD).
  • Normales invertidas al generar mallas → el modelo se ve negro o del revés.
  • Ignorar los UVs y que la textura salga estirada o repetida mal.
  • Mala topología en un modelo que se anima (se pliega feo).

Ponte a prueba#

📝 Pon a prueba lo aprendido

Resumen#

Una malla es una superficie de triángulos definida por vértices, normales (cómo le da la luz) y UVs (cómo se mapea la textura). Unity la dibuja con Mesh Filter (la geometría) + Mesh Renderer (el material). El polycount manda en el coste — usa LOD para lo lejano — y la topología importa en modelos que se animan. Puedes incluso generar mallas por código con Mesh (cuidando el orden de vértices y las normales). Para importar modelos ya hechos, ver Blender a Unity.

Fuentes y para profundizar