AMD reduce de 80 a 1,7 GB la memoria BVH al hacer ray tracing sobre 500 millones de triángulos

AMD reduce de 80 a 1,7 GB la memoria BVH al hacer ray tracing sobre 500 millones de triángulos

AMD ha mostrado una nueva técnica de investigación para ray tracing capaz de reducir drásticamente el coste de manejar enormes cantidades de geometría animada. Mediante jaulas tetraédricas deformables, la compañía ha conseguido procesar alrededor de 500 millones de triángulos animados por fotograma a más de 60 FPS y 1080p sobre una Radeon RX 9070 XT.

La cifra de polígonos impresiona, pero no representa el verdadero avance. Lo importante está en las estructuras de aceleración: el consumo de memoria BVH cae desde hasta 80 GB con una aproximación convencional hasta unos 1,7 GB, mientras las actualizaciones bajan desde más de 300 ms hasta aproximadamente 3,3 ms por fotograma.

El problema no son solo los triángulos, sino tener que reconstruir cómo se organizan

Las estructuras BVH (Bounding Volume Hierarchy) permiten descartar rápidamente grandes zonas de geometría que un rayo no puede alcanzar. Son fundamentales para que el ray tracing funcione de forma eficiente, pero su coste cambia radicalmente cuando miles de objetos densos se deforman de manera independiente.

Cada objeto animado puede generar nuevas posiciones de vértices y obligar a mantener o reconstruir su propia estructura de aceleración. Cuando esto ocurre sobre vegetación densa, multitudes o grandes cantidades de objetos deformables, memoria y tiempo de actualización pueden crecer hasta consumir buena parte del presupuesto completo de un fotograma.

La demostración de AMD utiliza aproximadamente 25.000 plantas animadas individualmente. En su máximo nivel de detalle representarían alrededor de 2.800 millones de triángulos, aunque el sistema de LOD reduce la geometría procesada finalmente a unos 500 millones de triángulos por fotograma, incluyendo rayos primarios y de sombra.

Con una implementación convencional, AMD estima que actualizar los BLAS correspondientes a toda esa geometría independiente podría consumir hasta 80 GB de memoria y superar los 300 ms por fotograma sobre la RX 9070 XT. Para ponerlo en contexto, un juego funcionando a 60 FPS dispone de solo 16,67 ms para completar todo el fotograma, no únicamente las estructuras BVH.

AMD anima una jaula simple y deja intacta la geometría densa

AMD reduce de 80 a 1,7 GB la memoria BVH al hacer ray tracing sobre 500 millones de triángulos

Captura de un vídeo que muestra la escena utilizada en la demostración. Fuente de la imagen: AMD GPUOpen.

La idea consiste en separar la geometría que se renderiza de la geometría que controla su movimiento. Cada objeto complejo queda encerrado dentro de una jaula tetraédrica de mucha menor resolución, y es esa representación simplificada la que se deforma durante la animación.

La malla detallada no necesita moverse directamente. Durante el procesamiento previo, se divide en pequeñas regiones asociadas a los tetraedros y se crean mini-BLAS estáticos que pueden reutilizarse, evitando reconstruir continuamente estructuras vinculadas a cientos de millones de triángulos.

Cuando un rayo entra en uno de los tetraedros animados, el sistema lo transforma de vuelta al espacio de referencia original antes de realizar las intersecciones contra la geometría densa estática. La animación cambia, por tanto, la representación externa del objeto sin obligar a modificar continuamente toda la estructura interna utilizada por el ray tracing.

Eso cambia la forma en la que escala el problema. El coste de la animación pasa a depender principalmente de la complejidad de la jaula y no directamente del número de triángulos contenidos dentro de ella, que es precisamente lo que permite trabajar con escenas extremadamente densas sin multiplicar proporcionalmente el coste de actualización.

De 80 a 1,7 GB cambia completamente la viabilidad del escenario

La reducción de memoria ronda las 47 veces, pasando desde hasta 80 GB a aproximadamente 1,7 GB dedicados a BVH. La diferencia no es simplemente una mejora de eficiencia: transforma una escena que quedaría fuera del alcance de prácticamente cualquier GPU de consumo en otra cuya estructura de aceleración sí cabe dentro de una cantidad razonable de VRAM.

El salto temporal es todavía mayor. Reducir las actualizaciones desde más de 300 hasta unos 3,3 ms supone una mejora superior a 90 veces, suficiente para trasladar esta parte concreta del proceso desde algo completamente incompatible con tiempo real hasta aproximadamente una quinta parte del presupuesto disponible a 60 FPS.

Eso ayuda a entender por qué los 500 millones de triángulos no deberían acaparar todo el titular técnico. La técnica no hace que la GPU deje de procesar esa geometría; elimina gran parte del coste asociado a mantener actualizada su representación para ray tracing.

Los 500 millones de triángulos siguen estando ahí

Las jaulas tetraédricas no sustituyen toda la escena por unos cuantos polígonos sencillos. Los aproximadamente 500 millones de triángulos seleccionados después del LOD continúan participando en las intersecciones de ray tracing, pero su geometría densa puede mantenerse estática y reutilizar estructuras previamente construidas.

La ventaja aparece especialmente cuando existen muchas instancias de un mismo recurso. Miles de plantas pueden reaccionar de forma diferente a un campo de viento mientras comparten la misma geometría densa y sus mini-BLAS, almacenando únicamente las jaulas necesarias para representar cada deformación independiente.

Esto ataca simultáneamente tres problemas: memoria, ancho de banda y tiempo de reconstrucción. En escenas donde la geometría repetida es extremadamente compleja, pero sus deformaciones pueden aproximarse mediante una estructura más sencilla, el ahorro potencial crece mucho más rápido que en objetos únicos de baja densidad.

No sirve igual de bien para todas las animaciones

AMD reduce de 80 a 1,7 GB la memoria BVH al hacer ray tracing sobre 500 millones de triángulos

La geometría densa animada de forma independiente requiere su propio estado de estructura de aceleración, mientras que las jaulas tetraédricas permiten mantener la geometría densa y los BVH estáticos y reutilizables. Fuente de la imagen: AMD GPUOpen.

El compromiso está en la precisión. Las jaulas generan una deformación lineal por regiones, de modo que reducir demasiado su complejidad disminuye también la capacidad de reproducir movimientos muy finos o deformaciones locales exactas.

Por eso AMD plantea la técnica especialmente para vegetación, hierba, multitudes, criaturas o personajes situados a cierta distancia, donde pequeñas diferencias en cada vértice resultan difíciles de percibir y el ahorro puede compensar ampliamente la pérdida de fidelidad.

En cambio, animaciones faciales, deformaciones precisas de personajes principales o cambios en la topología de la malla continúan favoreciendo técnicas más convencionales. AMD tampoco presenta las jaulas tetraédricas como sustituto universal: pueden coexistir con estructuras de aceleración por clústeres y otras técnicas dentro de DirectX Raytracing.

Más de 60 FPS en una RX 9070 XT, pero no equivale a un juego completo

La demostración alcanza más de 60 FPS a 1080p sobre una Radeon RX 9070 XT, utilizando rayos primarios y de sombra. AMD aclara que el objetivo es estudiar cantidades masivas de geometría animada y no reproducir un sistema de iluminación especialmente complejo.

Por tanto, esos resultados no significan que un videojuego completo pueda mover automáticamente 500 millones de triángulos animados con path tracing avanzado a 60 FPS. Una producción real tendría que compartir GPU con iluminación, sombreado, física, IA, postprocesado y el resto de sistemas del motor.

Eso no reduce la importancia del experimento. Pasar de 80 a 1,7 GB y de más de 300 a 3,3 ms elimina dos cuellos de botella que directamente impedían plantear este tipo de escenas, dejando que otros componentes del pipeline se conviertan ahora en los siguientes límites.

AMD ya trabaja en llevar la técnica más cerca de los motores reales

El trabajo Ray Tracing Massive Amounts of Animated Geometry obtuvo el tercer puesto del Wolfgang Straßer Best Paper Award en High-Performance Graphics 2026. AMD también está desarrollando ejemplos para DirectX Raytracing y una biblioteca C++ header-only destinada a facilitar la creación de jaulas para objetos animados, estáticos y basados en esqueletos.

Todavía hablamos de investigación y no de una función presente actualmente en juegos comerciales, pero el enfoque resulta especialmente interesante porque no intenta resolver el problema únicamente aumentando la potencia bruta de la GPU.

En realidad, la aportación más importante está en otro sitio: AMD consigue que el coste de animar geometría extremadamente densa deje de crecer directamente junto al número de triángulos. Si esa idea termina integrándose en motores comerciales, vegetación, multitudes y escenas deformables podrían multiplicar su complejidad sin exigir cantidades igualmente desproporcionadas de VRAM y tiempo de GPU.

Vía: Wccftech

Sobre el autor