Meshlets
Meshlets
Un meshlet es simplemente un subfragmento de una malla: un número fijo de primitivas y vértices. Una malla se puede definir completamente mediante un conjunto de meshlets, y cada uno consta de un conjunto único de primitivas de la malla. Diremos que una malla que se ha convertido en una estructura de meshlets ha sido meshletizada.
El número fijo de primitivas y vértices usado para crear la malla meshletizada es coherente en toda la lista de meshlets y define el tamaño máximo de cada meshlet. Idealmente, cada meshlet se aproxima lo máximo posible a este tamaño, pero no necesariamente lo llena. El búfer de índices tradicional se reemplaza por tres nuevas estructuras de datos: una lista de meshlets, una lista de índices de vértices únicos y una lista de primitivas.
Figura 1. Representación de una malla meshletizada coloreada por meshlet (un dragón). Observe que los meshlets constan de primitivas con una coherencia espacial razonable.
El ejemplo de código siguiente es una implementación en C++ de una estructura de meshlet en tiempo de ejecución. Estos datos describen completamente una malla representable.
Esta estructura de meshlet tiene varias ventajas para la representación con sombreadores de malla. Cada meshlet tiene un tamaño máximo fijo, lo que resulta ideal para asignar un grupo de subprocesos de tamaño fijo a un único meshlet y proporciona una asignación intuitiva de subproceso a vértice/primitiva. Los recuentos de vértices y primitivas se conocen de antemano, lo que elimina la necesidad de calcularlos en el código del sombreador. Los índices de vértices ya están desduplicados, lo que elimina transformaciones y exportaciones de vértices redundantes. Los índices de primitivas están localizados en la lista de vértices del meshlet. Los meshlets también proporcionan una granularidad adicional para la selección con información espacial y de orientación.
El ejemplo de código anterior muestra la interrelación entre los nuevos búferes de meshlets. La lista de meshlets es una lista plana de la estructura “meshlet” en tiempo de ejecución, que como mínimo es un desplazamiento y un recuento dentro de las listas de índices de vértices únicos y de primitivas. La lista de índices de vértices únicos es una lista desduplicada de índices dentro del búfer de datos de vértices. La lista de primitivas define las primitivas de la malla y consta de índices dentro de la lista de índices de vértices únicos, localizados con respecto al desplazamiento de vértices del meshlet.
Figura 2. Diagrama que muestra la relación entre los búferes de meshlets.
Última modificación el 28 de agosto de 2026
Temas relacionados
Ejemplo de selección de meshletsSombreadores de malla y meshlets en XBOX Series X|S¿Por qué sombreadores de malla?Índice de temas de NDA para el desarrollo de consolas con el GDK de XBOX