FANDOM


El motor de juego id Tech 6, también llamado de manera informal como id Tech 666 por los desarrolladores de id Software, es el sucesor tecnológico de id Tech 5 que motorizaba Rage y otros juegos de varios desarrollos internos de ZeniMax Media. Impulsa el reinicio de la serie Doom, anteriormente mencionado como Doom 4, ahora también llamado simplemente Doom ó Doom (2016).

Representa un avance importante con respecto a la iteración anterior, con soporte para renderizado basado en la física (PBR), almacenamiento en caché extenso y precomputación de efectos, un modelo de sombreado (shader) optimizado para geometría, uso de sombreadores de cómputo asíncronos y restauración de iluminación dinámica y unificada de tuberías y efectos de sombreado a la par con los que aparecieron anteriormente en id Tech 4.

El soporte para la API gráfica de vanguardia Vulkan se inició tres meses antes del lanzamiento de Doom, y se puso a disposición de los usuarios finales en una actualización poco después del lanzamiento.

Preliminares

La información preliminar dada por John Carmack sobre este motor, cuando todavía estaba en las primeras fases de desarrollo, tendían a mostrar que id Software estaba mirando hacia una dirección donde el trazado de rayos y clásicos gráficos de trama se mezclaban. Sin embargo, también explicó durante la QuakeCon 2008 que el hardware capaz de soportar id Tech 6 aún no existía. En julio de 2011, explicó que estaban comenzando la investigación para el desarrollo de id Tech 6.

Aunque John Carmack había planeado utilizar el nombre "id Tech 6" para un motor de voxel conceptual, este concepto no se sabe que alguna vez haya avanzado en una fase de ejecución. Carmack dejó id Software a finales de 2013, dejando a Robert Duffy como Director Técnico.

El 19 de julio de 2014, dados los problemas financieros de Crytek, se anunció que Tiago Sousa, el director del departamento de Investigación y Desarrollo, dejaría la empresa para unirse al equipo de desarrollo de Doom e idTech 6.

Tiago llevó el motor id Tech 5 en una dirección diferente, utilizando enfoques para PBR similares a los que utilizó anteriormente en CryEngine. Las demostraciones efectuadas en QuakeCon 2016 de las versiones alfa del motor que se habían utilizado para impulsar el concepto abandonado de Doom 4 eran mucho menos avanzadas, y la mayoría parecía ser solo una pequeña iteración de la tecnología id Tech 5 en comparación con el producto final.

Detalles técnicos

El motor del juego se diseñó teniendo en cuenta la escalabilidad, con el objetivo de generar un mínimo de 60 fps (fotogramas por segundo) a una resolución de 1080p en todas sus plataformas compatibles. También se hizo hincapié en acelerar el flujo de trabajo de activos artísticos para el motor, permitiendo a los diseñadores de texturas y niveles tener un control preciso sobre los detalles y los parámetros de complejidad de la escena. El proceso de representación de id Tech 6 consta de una serie de fases distintas.

Representación (rendering)

Pases delanteros opacos

Actualización de megatexturas

Al igual que en id Tech 5, el texturizado se logra mediante el uso de texturas virtuales, atlas de 16000x8000 en mosaicos de 128x128 que se almacenan en caché según la visibilidad. Las texturas se mueven dentro y fuera del atlas cuando es necesario, aunque esto todavía se logra en una naturaleza principalmente reactiva, en lugar de predictiva, lo que resulta en una visibilidad ocasional de la ventana emergente de textura. Los programadores de id Software citan esto como espacio para futuras mejoras de ingeniería.

Caché de sombras

El motor almacena en caché las sombras dinámicas, utilizando los resultados calculados en cuadros anteriores y reteniéndolos en un atlas de megatexturas. Si la iluminación de un área no ha cambiado cuando se necesita renderizar nuevamente (por ejemplo, no se han movido elementos dinámicos como actores dentro o fuera de ella), entonces el mapa de sombras anterior se conserva. Los elementos estáticos también se pueden retener de forma independiente, mientras que las sombras proyectadas por la geometría dinámica en movimiento se vuelven a calcular sobre ellos.

El caché de sombra es una textura de 8 bits de 8000x8000 en PC y una textura de 16 bits de 8000x4000 en consolas. La porción de resolución y tiempo de actualización de los mapas de sombras individuales se basa en cálculos de nivel de detalle (LOD), de modo que las áreas más cercanas al reproductor tienen mapas de alto detalle calculados con frecuencia, y las áreas más distantes tienen mapas más pequeños que se actualizan de manera menos agresiva.

Profundización previa

Las mallas opacas, incluida la geometría de escena estática y dinámica, así como el arma del jugador, se procesan en el búfer de profundidad para obtener información z. En este momento, el motor también calcula un mapa de velocidad utilizando la diferencia en las posiciones de vértice de los objetos dinámicos del cuadro anterior, el resultado es una textura de color que representa el movimiento de los objetos en la escena con respecto al jugador en direcciones horizontal y vertical. Esto se usa más tarde para lograr el antialiasing temporal del espacio de pantalla (TSSAA) y los efectos de desenfoque de movimiento.

Sacrificio (culling)

En preparación para enviar la geometría de la escena, primero se eliminan las mallas que no son visibles. Se utilizan tanto el middleware de Umbra Software como las consultas de oclusión de GPU adicionales.

Dado que los resultados de la consulta no están disponibles de inmediato, se toman algunas decisiones conservadoras para permitir confiar en los datos calculados en marcos anteriores. Esto evita que los objetos parezcan aparecer o salir inesperadamente.

Pase diferido

En el pase diferido, se calculan varios efectos de espacio de pantalla. El primero de ellos es la oclusión ambiental del espacio de pantalla (SSAO), una técnica que oscurece los colores alrededor de las costuras y evita los artefactos de la geometría ocluida. Las reflexiones de espacio de pantalla (SSR) se calculan luego, usando una combinación de la memoria intermedia de profundidad, las normales, el mapa especular y el marco renderizado anterior. Se utiliza una forma de trazado de rayos para generar el mapa SSR a partir de estas entradas. También se genera un mapa de reflexión estático utilizando los mapas de cubos precalculados insertados en las búsquedas de frustum agrupadas anteriormente.

Los buffers de profundidad, normal y especular se combinan con los datos de los mapas de cubos, con la influencia de cada mapa determinada por su distancia desde el píxel que se representa. Esta es una forma de iluminación basada en imágenes. Después de que estos efectos se hayan calculado individualmente, se usa un sombreador de cálculo de composición para combinar los datos del mapa de iluminación de paso directo, SSAO, SSR y reflexión estática. Los efectos de niebla también se calculan en este sombreador. Los resultados son más o menos la información de la escena completamente mostrada, menos los elementos transparentes y efectos post-proceso.

Pase de transparencias

En el pase de transparencias, se calcula la iluminación de partículas, se procesan varios efectos visuales y se procesan las superficies de vidrio.

La iluminación de partículas se desacopla de otros elementos debido a la gran cantidad de posibles efectos de partículas por escena. La iluminación para partículas se calcula independientemente de la resolución de la pantalla, con adaptación a LOD. Las texturas de iluminación de partículas calculadas se almacenan en caché en un atlas de 4000x4000, y cada textura de iluminación se aplica a su geometría de partículas utilizando una escala bicúbica.

Los efectos de vidrio se logran utilizando una combinación de calcomanías y el cálculo de cuatro niveles de desenfoque mip aplicados a la escena, calculados utilizando una aproximación gaussiana. Para los niveles de mip más pequeños, los pasos de desenfoque horizontal y vertical se realizan por separado para mejorar la calidad. Las dos texturas de nivel de desenfoque más cercanas, basadas en la suavidad local del vidrio, se combinan con una interpolación lineal.

Se crea un mapa de distorsión para las áreas que están "calientes", lo que permite una refracción aparente de la luz. Esto no se aplica hasta la etapa posterior al proceso.

La interfaz de usuario se representa en su propio búfer en este punto con alfa pre-multiplicado.

Post-proceso asincrónico

Los efectos posteriores al proceso se calculan de forma asíncrona y pueden superponerse con elementos del pase opaco, ya que el primero rara vez usa sombreadores de cálculo.

Si un efecto de profundidad de campo está activo, se calculará primero. Se crea una imagen de campo cercano y de campo lejano, utilizando el desenfoque de disco a la mitad de la resolución para lograr un efecto bokeh adecuado. El suavizado temporal y el desenfoque de movimiento se calculan a partir del mapa de velocidad generado en el paso previo de profundidad en combinación con fotogramas anteriores, con una pequeña fluctuación en la información de posición introducida para eliminar artefactos de subpíxeles.

La luminosidad promedio de la escena se calcula como una entrada al mapeador de tonos. Bloom se calcula mediante el uso de un filtro de paso brillante y un conjunto de texturas de desenfoque gaussiano similares a las utilizadas para los efectos de vidrio.

Una pasada final de procesamiento posterior combina todas estas entradas usando un solo sombreador, con efectos adicionales como viñeteado, mapeo de tonos y gradación de color. Finalmente, los elementos de la interfaz de usuario y un sutil efecto de grano de película se combinan con la escena, y el renderizado se completa.

Genealogía
Basado en Título Base para
id Tech 5 Id Tech 6 Id Tech 7


Videojuegos que utilizan id Tech 6

Enlaces externos

Wikipedialogo
Esta página utiliza contenido de Wikipedia que está bajo licencia Creative Commons.


El contenido de la comunidad está disponible bajo CC-BY-SA a menos que se indique lo contrario.