Recuerdo a John Carmack hablando de cómo inicialmente utilizaron Megatexturing para Quake Wars: Enemy Territory. Desde entonces, la tecnología ha evolucionado bastante en Rage.
Me preguntaba si alguien aquí puede dar algunos detalles técnicos sobre los detalles sobre qué y cómo ha evolucionado desde entonces.
Recomendaría consultar el artículo "Virtual Texture Mapping 101" sobre GPU Gems. Básicamente es dividir la textura original (que generalmente es enorme) en mosaicos más pequeños y cargarlos en la memoria de la GPU cuando sea necesario. La misma idea se puede utilizar para representar terrenos enormes y muy detallados.
fuente
Para empezar, Beyond3D tiene una pequeña y agradable reseña de algunos datos técnicos recopilados durante una entrevista con el Director técnico de Splash Damage, Arnout van Meer, así como con el Programador de gráficos sénior Mike Armstrong. Este mismo artículo cita específicamente algunas desventajas sobre MegaTexturing en su iteración actual en la página 5. Da a entender que John Carmack ya había reparado algunas de ellas en una revisión posterior, así como formas de arreglar otras que no eran viables en ese momento.
Ejemplos notables son:
Además, en esta entrevista, John Carmack afirma que algunas de las deficiencias de la tecnología utilizada en Quake Wars ya se han corregido en versiones internas, por ejemplo, aplicando MegaTextures a geometría arbitraria, incluidos personajes y vehículos.
fuente
La presentación de GDC 2008 Sparse Virtual Texture de Sean Barret fue su intento de recrear lo que Carmack estaba haciendo en ese momento. También hay fuente. Ha habido cierta correspondencia entre Carmack y Barrett desde entonces.
(La presentación es un poco densa, pero vale la pena tomarse el tiempo para comprenderla. Pasé algunas sesiones de una hora con una pizarra después de verla dos veces en el transcurso de dos días, y finalmente llegué al punto donde creo que entendí todo. Mucho más fácil si tiene un fondo de sombreador de fragmentos, que yo no tenía en ese momento. También es genial que la presentación sea la demostración).
+1 a zacharmarz por mencionar la excelente presentación de Mega Meshes GDC2011 de la gente de Lionhead que trabaja en Milo y Kate. Hay muchas soluciones muy prácticas mencionadas, por ejemplo: renderizar cada dos cuadros en diferentes ubicaciones (puntos calientes, giros de 180 grados, zooms, más a lo largo de una spline de control, etc.) para determinar la visibilidad de la textura y los niveles de mip, y comunicar los resultados a un "caché L2", para resolver algunos de los problemas de transmisión de texturas. No necesariamente simple, pero sin embargo elegante en su franqueza.
fuente