stringtranslate.com

Mapa de luz


Cubo con un mapa de luz simple (que se muestra a la derecha).

Un mapa de luz es una estructura de datos utilizada en mapas de luz , una forma de almacenamiento en caché de superficies en la que el brillo de las superficies en una escena virtual se calcula previamente y se almacena en mapas de textura para su uso posterior. Los mapas de luz se aplican más comúnmente a objetos estáticos en aplicaciones que utilizan gráficos de computadora 3D en tiempo real , como videojuegos , para proporcionar efectos de iluminación como iluminación global a un costo computacional relativamente bajo.

Historia

Quake de John Carmack fue el primer juego de ordenador que utilizó mapas de luz para aumentar el renderizado . [1] Antes de que se inventaran los mapas de luz, las aplicaciones en tiempo real se basaban exclusivamente en el sombreado Gouraud para interpolar la iluminación de los vértices de las superficies. Esto solo permitía información de iluminación de baja frecuencia y podía crear artefactos de recorte cerca de la cámara sin una interpolación de perspectiva correcta. A veces se utilizaba mallado de discontinuidad, especialmente con soluciones de radiosidad, para mejorar de forma adaptativa la resolución de la información de iluminación de vértices; sin embargo, el costo adicional en la configuración primitiva para la rasterización en tiempo real era generalmente prohibitivo. El software rasterizador de Quake utilizó el almacenamiento en caché de superficie para aplicar cálculos de iluminación en el espacio de textura una vez cuando los polígonos aparecen inicialmente dentro del tronco de visualización (creando efectivamente versiones temporales 'iluminadas' de las texturas actualmente visibles mientras el espectador negociaba la escena).

A medida que el hardware de gráficos 3D de consumo era capaz de crear múltiples texturas , los mapas de luz se hicieron más populares y los motores comenzaron a combinar mapas de luz en tiempo real como una capa secundaria de textura de mezcla múltiple .

Limitaciones

Los mapas de luz se componen de lumels [2] (elementos de iluminación), análogos a los texels en el mapeo de texturas . Los lúmenes más pequeños producen un mapa de luz de mayor resolución , lo que proporciona detalles de iluminación más finos al precio de un rendimiento reducido y un mayor uso de memoria. Por ejemplo, una escala de mapa de luz de 4 lúmenes por unidad mundial daría una calidad inferior que una escala de 16 lúmenes por unidad mundial. Por lo tanto, al utilizar esta técnica, los diseñadores de niveles y los artistas 3D a menudo tienen que hacer un compromiso entre rendimiento y calidad; Si se utilizan mapas de luz de alta resolución con demasiada frecuencia, la aplicación puede consumir recursos excesivos del sistema, lo que afecta negativamente el rendimiento. La resolución y el escalado de Lightmap también pueden estar limitados por la cantidad de espacio de almacenamiento en disco, ancho de banda/tiempo de descarga o memoria de textura disponible para la aplicación. Algunas implementaciones intentan agrupar varios mapas de luz en un proceso conocido como atlas [3] para ayudar a sortear estas limitaciones.

La resolución y la escala del mapa de luz son dos cosas diferentes. La resolución es el área, en píxeles, disponible para almacenar uno o más mapas de luz de la superficie. El número de superficies individuales que pueden caber en un mapa de luz está determinado por la escala. Los valores de escala más bajos significan mayor calidad y más espacio ocupado en un mapa de luz. Los valores de escala más altos significan menor calidad y menos espacio ocupado. Una superficie puede tener un mapa de luz que tenga la misma área, es decir, una proporción de 1:1 o menor, por lo que el mapa de luz se estira para ajustarse.

Los mapas de luz en los juegos suelen ser mapas de texturas de colores. Por lo general, son planos, sin información sobre la dirección de la luz, mientras que algunos motores de juegos utilizan múltiples mapas de luz para proporcionar información direccional aproximada para combinar con mapas normales. Los mapas de luz también pueden almacenar componentes separados precalculados de información de iluminación para iluminación semidinámica con sombreadores, como oclusión ambiental y sombreado de luz solar.

Creación

Al crear mapas de luz, se puede utilizar cualquier modelo de iluminación, porque la iluminación está completamente precalculada y el rendimiento en tiempo real no siempre es una necesidad. Por lo general, se utiliza una variedad de técnicas que incluyen oclusión ambiental , iluminación directa con bordes de sombra muestreados y soluciones de luz de rebote de radiosidad total [4] . Los paquetes 3D modernos incluyen complementos específicos para aplicar coordenadas UV de mapas de luz, crear atlas de múltiples superficies en hojas de textura única y renderizar los mapas mismos. Alternativamente, las canalizaciones de motores de juegos pueden incluir herramientas de creación de mapas de luz personalizadas. Una consideración adicional es el uso de texturas DXT comprimidas que están sujetas a artefactos de bloqueo: las superficies individuales no deben colisionar en fragmentos de texto de 4x4 para obtener mejores resultados.

En todos los casos, las sombras suaves para la geometría estática son posibles si se utilizan pruebas de oclusión simples (como el trazado de rayos básico ) para determinar qué lúmenes son visibles a la luz. Sin embargo, la suavidad real de las sombras está determinada por la forma en que el motor interpola los datos de lumels en una superficie y puede dar como resultado una apariencia pixelada si los lumels son demasiado grandes. Ver filtrado de texturas .

Los mapas de luz también se pueden calcular en tiempo real [5] para obtener efectos de iluminación de colores de buena calidad que no sean propensos a los defectos del sombreado Gouraud, aunque la creación de sombras aún debe realizarse utilizando otro método, como volúmenes de sombra con plantilla o mapeo de sombras , como real. -El trazado de rayos en tiempo sigue siendo demasiado lento para funcionar en hardware moderno en la mayoría de los motores 3D.

El mapeo de fotones se puede utilizar para calcular la iluminación global para mapas de luz.

Alternativas

Iluminación de vértice

En la iluminación de vértices , la información de iluminación se calcula por vértice y se almacena en atributos de color de vértice . Las dos técnicas se pueden combinar, por ejemplo, los valores de color de los vértices se almacenan para mallas con alto nivel de detalle, mientras que los mapas de luz sólo se utilizan para una geometría más burda.

Mapeo de discontinuidad

En el mapeo de discontinuidad , la escena se puede subdividir y recortar aún más a lo largo de cambios importantes en la luz y la oscuridad para definir mejor las sombras.

Ver también

Referencias

  1. ^ Abrash, Michael. "Modelo de iluminación de Quake: almacenamiento en caché de superficie". www.bluesnews.com . Consultado el 7 de septiembre de 2015 .
  2. ^ Channa, Keshav (21 de julio de 2003). "flipcode - Mapeo de luz - Teoría e implementación". www.flipcode.com . Consultado el 7 de septiembre de 2015 .
  3. ^ "Documento técnico sobre atlas de texturas" (PDF) . nvidia.com . NVIDIA . 2004-07-07 . Consultado el 7 de septiembre de 2015 .
  4. ^ Jason Mitchell, Gary McTaggart, Chris Green, Sombreado en el motor Source de Valve. ( PDF ) Consultado el 7 de junio de 2019.
  5. ^ 16 de noviembre de 2003. Mapas de luz dinámicos en OpenGL. Joshbeam.com Consultado el 7 de julio de 2014.