¿Qué es la Textura Virtual?

La textura virtual es una técnica de gestión de escenas que se populariza originalmente en motores de juego como id Tech 5 (utilizado en Rage) y posteriormente adoptado ampliamente a través de la renderización en tiempo real. En su núcleo, la textura virtual de texto se decodifica el espacio de dirección de textura lógica de la memoria GPU física, permitiendo la creación de atlas de textura masiva – a veces llamados megatexturas – que pueden cubrir todo el mundo

La técnica se desarrolló inicialmente para acoplar el tradicional cambio entre el presupuesto de la memoria de la textura y la variedad de superficie. Bajo el cultivo convencional, los desarrolladores tuvieron que elegir entre repetir pequeñas texturas (que parecen teñidas y artificiales) o usar un puñado de texturas grandes y únicas que agotan rápidamente VRAM. Textura virtual proporciona un terreno medio: trata todo el medio ambiente como una textura gigante, dando sólo la región de interés en el nivel de asignación.

Cómo funciona la textura virtual

Tablas de página y la corriente de azulejos

El corazón de cualquier sistema de textura virtual es una tabla de página – una estructura de traducción gestionada por hardware que mapea las coordenadas de textura virtual a los lugares de memoria física. La GPU utiliza la tabla de página para calcular los niveles de 128×128 o 256×256 pixel de la textura comprimida residen en la memoria de GPU y que están desaparecidos.

Retroalimentación y Granularidad

Los motores modernos normalmente implementan un canal de streaming de tres etapas: (1) la GPU presenta una versión de baja resolución de la imagen mientras que simultáneamente se pierden las caché de registro; (2) la CPU lee el búfer de retroalimentación, predice el movimiento de cámara futuro y emite solicitudes de carga; (3) el sistema I/O decodifica los azulejos comprimidos y los transfiere a la memoria GPU.

Manipulación de la aguja de la aguja de la aguja

La textura virtual también se integra con mip-mapping. En lugar de almacenar una cadena de mip completa para toda la textura virtual, la tabla de página contiene fichas de cada nivel de mip. La GPU muestra el nivel de mip correcto basado en los derivados de pantalla-espacio, y el mismo mecanismo de transmisión asegura que sólo las fichas de nivel de mip necesarias son residentes.

Ventajas en entornos de gran escala

La texturización virtual brilla más en los juegos de mundo abierto y en los entornos de simulación masiva donde la superficie se mide en kilómetros cuadrados en lugar de metros cuadrados. Los beneficios clave van más allá de los simples ahorros de memoria:

  • Un detalle único en todo el mundo. Debido a que la textura virtual puede ser terabytes de tamaño, cada parche de suelo, cada cara de acantilado, y cada pared de edificio puede tener su propia apariencia distinta. Los artefactos de revestimiento que plagan la texturización convencional son completamente eliminados.
  • Reducido autoring complex. Los artistas pintan una única textura de alta resolución directamente sobre el modelo o paisaje 3D, o usan técnicas de proyección para mezclar múltiples fuentes fotográficas. No es necesario empaquetar manualmente cientos de mapas de textura individuales en un atlas compartido, ni preocuparse por el solapado de texturas.
  • Mejor rendimiento en hardware limitado. Al transmitir sólo los azulejos visibles, la texturización virtual permite que escenas que de otro modo requerirían 16–32 GB de VRAM funcionen en hardware con sólo 4-8 GB. Este fue un factor crítico en el original Rage] que se ejecuta en Xbox 360 (que tenía sólo 512 MB de memoria unificada).
  • ]Carga rápida y huella de memoria inferior para la geometría estática. Combinada con esquemas de compresión eficientes como codecs bloqueados (BCn o ASTC), la huella total del disco puede ser manejable, y la memoria de tiempo de ejecución es proporcional a la vista frustum, no al tamaño del mundo.
  • ]Arrastre de nivel más simple. La textura virtual complementa naturalmente la secuencia de nivel de detalle para la geometría. Ambos sistemas pueden utilizar el mismo mecanismo de retroalimentación, permitiendo una gestión de recursos más coherente.

Implementación en motores de juego modernos

Motor no real 4/5 – Sistema de Textura Virtual

Ver la capa virtual de EVT [VT] [RVT]: La capa virtual de EVT puede ser utilizada en tiempo real, y también puede ser utilizada en la sección de texturas virtuales, que otros materiales (como capas de paisajes de vértice) pueden ser de muestra.

La transmisión avanzada de la textura de unidad

Unidad utiliza un enfoque diferente llamado Texto Streaming (parte de los ajustes de calidad) que aprovecha la transmisión de mip‐map en lugar de la texturización virtual completa. Sin embargo, la técnica de Render de alta definición de Unity (HDRP) incluye una característica experimental de Textura virtual que funciona como un sistema de retroalimentación basado en tile.

id Tech y Megatextures

El concepto original de megatextura fue pionero por John Carmack y id Software en Quake Wars: Enemy Territory (2007) y perfeccionado en Rage (2010). El motor id Tech 5 utilizó una textura gigantesca (hasta 128k×128k) para todo el mundo.

Desafíos y soluciones

Streaming Artifacts y Pop‐In

El problema más visible con la texturización virtual es la aparición de baldosas de baja resolución mientras se cargan las versiones de alto detalle. Este “pop‐in” puede ser jeringuido si el sistema de streaming no puede mantenerse al día con el movimiento de cámara. La solución implica algoritmos de pre-fetching cuidadosos que anticipan la trayectoria y la carga de la cámara bien antes de que se vuelvan visibles.

Ancho de banda y almacenamiento

Debido a que las texturas virtuales son enormes (a menudo cientos de gigabytes en disco), requieren una compresión agresiva y un diseño eficiente en disco. La mayoría de las implementaciones utilizan BCn (complesión de bloqueo) para datos de tiempo de ejecución y un esquema de mayor compresión (como LZ4 o Kraken) para el archivo de disco de archivos. La densidad de compresión debe equilibrarse contra la necesidad de acceso aleatorio de alta velocidad en el nivel de baldos.

Memoria de la tabla de página

La tabla de página en sí consume VRAM. Para una textura virtual con 128k×128k pixels y 128×128 tamaño de la baldosa, hay 1024×1024 azulejos, que equipara a cerca de 4 millones de entradas de la página. Si cada entrada es 4 bytes (una dirección física), la tabla utiliza 16 MB de memoria GPU. Esto es normalmente aceptable, pero si el motor soporta múltiples texturas de la tabla de la

Integración con Rendering Diferido

Los renderizadores diferidos requieren múltiples texturas (GBuffer) por pixel. La texturización virtual debe aplicarse a cada una de esas texturas individualmente, que multiplica el número de canales de streaming. Una alternativa es almacenar el ID de material en una textura virtual y luego muestra las propiedades materiales de un conjunto de azulejos separados. Esto descifra la complejidad y permite que el sistema de streaming se centre en los canales más sensibles a bandas.

Soporte de Textura Virtual Hardware

GPULT2 (en inglés) de NVIDIA (en el caso de las 9 series, y especialmente la arquitectura de Turing) incluyen soporte de hardware para tablas de página y texturización virtual basada en tile a través de la unidad Recursos de memoria virtuales.

Texto virtual Más allá de los Juegos

Los principios de la texturización virtual se aplican cada vez más fuera del entretenimiento en tiempo real. En la visualización arquitectónica, la texturización virtual permite pasarelas de modelos de escala urbana donde cada fachada de edificio tiene su propia fotografía de alta resolución. En los simuladores de vuelo, como Microsoft Flight Simulator 2020, el sistema de streaming es efectivamente una textura virtual masiva de imágenes de satélite y datos de elevación.

En la industria cinematográfica, la texturización virtual se utiliza en herramientas de previsualización en tiempo real (previz) y etapas de producción virtual (por ejemplo, el volumen utilizado en El Mandalorian). Las paredes LED muestran entornos enormes que se muestran en tiempo real en los motores del juego; los detalles de textura se gestionan mediante la transmisión de azulejos para mantener los requisitos de memoria de marco, sin un panorama visual

Las simulaciones científicas, como los modelos climáticos o los gemelos digitales de las ciudades, también se benefician. Estas aplicaciones a menudo necesitan visualizar fenómenos a través de múltiples escalas – desde la visión global hasta el nivel de edificio individual – sin cargar y descargar conjuntos de datos repetidamente. Una estructura de datos de textura virtual que mapas de fichas de datos espatiotemporales pueden proporcionar zoom y panning sin costuras a través de los petabytes de datos de sensores.

El futuro de la textura virtual

Generación de texturas y streaming de AI

Uno de los desarrollos más emocionantes es el uso de modelos de aprendizaje automático (como modelos de súper resolución o difusión) para generar o aumentar la textura de la mosca. En lugar de transmitir los azulejos de alta resolución del disco, el motor podría transmitir una representación de latente comprimido y luego ejecutar una red de hardware eficiente en la GPU para reconstruir la textura de alta resolución. Esto reduciría drásticamente los requisitos de almacenamiento y ancho de banda.

Sistemas de materiales completos

La línea entre texturización virtual y la afeitación virtual es borrosa. El mismo concepto de la página puede ampliarse para almacenar no sólo texturas de color sino también gráficos materiales, cargas de sombreado e incluso baldosas geometrías (a través de geometría virtual). Nanite de Motor no real es un ejemplo directo de geometría virtual con una organización similar de página. En el futuro, descripciones de escena completas – geometría de recursos, materiales, iluminación

Avances y estandarización de hardware

Como la texturización virtual se vuelve más común, los proveedores de hardware de GPU son probablemente para estandarizar la interfaz de la página. Actualmente, cada motor implementa textur virtualmente de forma ligeramente diferente, lo que hace difícil la porción y la optimización. Direct3D 12 y Vulkan tienen extensiones (por ejemplo, VK EXT texture compression hdr o D3D12 GPU VIRTUAL

Gran adopción en móvil y XR

Los GPU móviles tienen presupuestos de memoria ajustados (3-6 GB de RAM del sistema compartido) y ancho de banda de memoria limitado. La texturización virtual puede ser un cambiador de juego aquí, permitiendo que los juegos móviles muestren entornos intrincados sin exceder las limitaciones de memoria. El marco de metal de Apple incluye soporte para la renderización diferida basada en azulejos y puede adaptarse a la textura virtual mediante una retroalimentación de nivel superior.

Conclusión

La texturización virtual ha evolucionado desde una técnica de nicho utilizada en un puñado de motores avanzados hasta un bloque de construcción fundamental para entornos 3D de gran escala. Al tratar el mundo como una textura única y transpirable, elimina los techos de memoria, permite detalles sin precedentes y reduce la carga de trabajo de artista. Los desafíos de la generación de streaming de artefactos, ancho de banda y sobrecarga de página han sido superados con cuidado de ingeniería y soporte de hardware.