En resumen: un bosque denso convincente es una pelea de jefe de rendimiento: miles de árboles high-poly, transparencia en capas, e instancias que se extienden hasta el horizonte. Se gana con una cadena de LOD disciplinada que termina en impostors (billboards orientados a la cámara que falsean un árbol 3D desde cualquier ángulo), instancing y culling agresivos, y un par de trucos de sombreado para que los árboles distantes baratos no se delaten. Este artículo recorre la cadena entera desde mesh completo hasta billboard, el truco del impostor octaédrico, y cómo evitar que un bosque muy optimizado se vea muerto.
Cada árbol aquí está a una distancia distinta de la cámara, así que cada árbol debería tener un coste distinto. El arte de un bosque barato es gastar polígonos solo en los cercanos y fingir el resto de forma convincente.
La idea central: pagar por distancia
Un árbol a 5 metros y uno a 500 metros no deberían costar lo mismo. Una cadena de LOD gasta detalle completo de cerca y representaciones progresivamente más baratas con la distancia, terminando en un billboard plano, así el coste total se mantiene plano mientras el bosque crece.
Todo el juego consiste en negarse a pagar precio completo por árboles que la cámara apenas resuelve. De cerca, un árbol es un mesh completo con cards de hoja individuales; de lejos, es un puñado de píxeles que una imagen plana reproduce a la perfección. Una cadena LOD (nivel de detalle) formaliza eso: varias versiones del mismo árbol a coste decreciente, intercambiadas por tamaño en pantalla, para que un bosque de diez mil árboles cueste aproximadamente lo visible en detalle en vez de la suma de cada árbol a calidad completa. Sin ella, la densidad escala tu tiempo de frame linealmente hacia el suelo; con ella, puedes empujar el conteo de árboles mucho más alto por el mismo presupuesto.
La cadena LOD, paso a paso
LOD0 mesh completo con cards de hoja (cerca); LOD1–2 geometría reducida y hojas simplificadas (medio); LOD3 unas pocas cards o una sola card; LOD final un impostor/billboard (lejos). Cada paso reduce aproximadamente el coste a la mitad mientras el cambio queda invisible.
Una cadena LOD de follaje típica va algo así: LOD0, el mesh de detalle completo con todas sus cards de hoja, para árboles junto al jugador; LOD1–LOD2, geometría de tronco reducida y menos cards de hoja, más grandes, para el plano medio; LOD3, un cluster de cards drásticamente simplificado; y un impostor final (esencialmente una imagen plana) para todo lo distante. La destreza está en las distancias de transición y el blend, para que el cambio no salte. Las transiciones LOD con dithering o cross-fade esconden el cambio; un salto duro a la distancia equivocada es el delator que rompe la ilusión. Ajusta las distancias contra tu cámara real, no los defaults.
Impostors: falsear 3D desde cualquier ángulo
Un impostor (impostor octaédrico) pre-renderiza el árbol desde docenas de ángulos en un atlas, luego muestra la vista capturada más cercana como un billboard. A diferencia de un billboard plano, se ve correcto mientras la cámara se mueve alrededor; barato, pero 3D-ish.
El extremo lejano de la cadena es donde viven los mayores ahorros, y el impostor es el truco ingenioso que los hace aceptables. Un billboard simple (una imagen plana que se gira hacia la cámara) se ve bien de frente pero se aplana y desliza de forma antinatural cuando te mueves. Un impostor octaédrico resuelve eso pre-renderizando el árbol desde muchos puntos de vista organizados alrededor de una esfera, empaquetándolos en un atlas de textura, y mostrando el ángulo capturado más cercano a la dirección actual de la cámara (mezclando entre los más próximos). El resultado se lee como un árbol 3D real desde cualquier ángulo a una fracción del coste, por eso los impostors son la espina dorsal de los bosques distantes creíbles. Se hornean una vez y cuestan casi nada dibujar.
La capa de suelo multiplica el conteo de instancias rápido. El sotobosque necesita la misma disciplina que los árboles: instánciarlo, LOD-lo, y culla-lo duro; un helecho a 80 metros no debería estar dibujando en absoluto.
Instancing y culling
Dibuja árboles repetidos como instancias para que miles cuesten pocos draw calls, y culla agresivamente: frustum-culla lo que está fuera de pantalla y distance-culla lo pequeño. El instancing arregla el coste de CPU; el culling detiene el pago por lo invisible.
Incluso con LODs perfectos, enviar diez mil árboles como objetos individuales entierra la CPU. El instancing colapsa todas las copias de un árbol en un puñado de draw calls, lo cual no es negociable para un bosque real, y es exactamente lo que te da hornear un scatter a instancias nativas del engine. Además, culla sin piedad: el frustum culling descarta cualquier cosa fuera de la vista, y el distance culling remueve el clutter de suelo y el follaje pequeño demasiado diminuto para notarse pasado cierto rango. La hierba y el sotobosque especialmente deberían tener distancias de cull duras y cercanas, porque multiplican el conteo de instancias más rápido que los árboles. Un workflow que pinta densidad y luego hornea a mallas instanciadas (como el de Numivo) entrega al engine exactamente la forma batcheada y cullable que necesita un bosque denso.
Mantener vivo el bosque barato
La optimización pesada puede hacer que un bosque se vea estático y muerto: contrárrestalo con viento sutil en los LODs cercanos, variación de color y escala entre instancias, y sombreado que evite que los impostors distantes se lean como cartón plano.
El riesgo de toda esta eficiencia es un bosque que corre genial y se siente sin vida. Tres toques baratos lo traen de vuelta: viento, animación de vértices en los LODs cercanos para que el follaje próximo se mueva, aunque los impostors distantes queden quietos (nadie nota un árbol estático a 300 metros). Variación, aleatoriza escala, rotación y un tinte por instancia para que el ojo no atrape la repetición; los árboles idénticos son el delator del copiar-pegar. Y cuidado del sombreado en los impostors: hornea su iluminación para que no se aplanen en cartón obvio cuando cambia el ángulo del sol. Gasta el tiempo de frame que ahorraste en estos detalles de cerca, donde el jugador realmente mira, y el bosque optimizado se sentirá tan vivo como uno no optimizado, mientras corre varias veces más rápido.
Cifras de campo que vale la pena robar
- Principio de coste: pagar por distancia, un árbol lejano no debe costar como uno cercano
- Cadena LOD: mesh completo → reducido → cluster de cards → impostor, cada uno ~reduce el coste a la mitad
- Impostor = ángulos pre-renderizados en un atlas → billboard 3D-ish desde cualquier vista
- Instancia repeticiones (pocos draw calls) + culla duro el follaje pequeño distante
- Mantenlo vivo: viento en LOD cercano + variación por instancia + sombreado de impostor horneado
Mini-FAQ
Billboard vs impostor: ¿cuál es la diferencia? Un billboard es una imagen plana que se orienta a la cámara y se aplana cuando te mueves alrededor. Un impostor almacena muchos ángulos y muestra el correcto, así que aguanta en 3D. Para cualquier cosa que el jugador orbita o pasa, usa impostors; los billboards simples solo van bien para telones de fondo verdaderamente distantes y estáticos.
¿Cuántos niveles LOD necesita un árbol? Comúnmente tres o cuatro más un impostor. Más no es automáticamente mejor: cada nivel es coste de autoría y memoria. Suficiente para que cada cambio sea un paso pequeño e imperceptible es el objetivo, no un máximo.
¿Nanite hace esto obsoleto? Cambia el lado de la geometría (Nanite maneja detalle denso de mesh sin LODs tradicionales), pero la transparencia (cards de hoja), la disciplina de instancing y el culling siguen importando, y los impostors siguen siendo útiles para la distancia lejana. Los principios sobreviven; las herramientas se desplazan.
¿Qué mata el rendimiento del bosque más a menudo? Overdraw de cards de hoja transparentes que se solapan, y follaje de suelo sin culling. Aprieta las cards de hoja, culla el sotobosque de cerca, e instancia todo: ese trío recupera la mayor parte del presupuesto antes de que siquiera toques los meshes de árbol.
Un bosque denso es una de las cosas más castigadoras de renderizar y una de las más gratificantes de acertar. Construye la cadena LOD, deja que los impostors carguen la distancia, instancia y culla sin piedad, y gasta tus ahorros en viento y variación de cerca; y tendrás un bosque que se extiende hasta el horizonte y mantiene su framerate.

