Articulo de referencia

Revestimiento de azulejos

La renderización por mosaicos consiste en subdividir una imagen gráfica mediante una cuadrícula regular en el espacio óptico y renderizar cada sección de la cuadrícula, o mosaic...

La renderización por mosaicos consiste en subdividir una imagen gráfica mediante una cuadrícula regular en el espacio óptico y renderizar cada sección de la cuadrícula, o mosaico , por separado. La ventaja de este diseño radica en la reducción del consumo de memoria y ancho de banda en comparación con los sistemas de renderización en modo inmediato , que dibujan el fotograma completo de una sola vez. Esto ha hecho que los sistemas de renderización por mosaicos sean especialmente comunes en dispositivos portátiles de bajo consumo . La renderización por mosaicos se conoce a veces como arquitectura de "ordenación intermedia", ya que realiza la ordenación de la geometría en la parte central del proceso gráfico , en lugar de cerca del final. [ 1 ]

Concepto básico

La creación de una imagen 3D para su visualización consta de una serie de pasos. Primero, los objetos que se van a mostrar se cargan en la memoria a partir de modelos individuales . A continuación, el sistema aplica funciones matemáticas para transformar los modelos a un sistema de coordenadas común, la vista del mundo . A partir de esta vista del mundo, se crea una serie de polígonos (normalmente triángulos) que se aproximan a los modelos originales tal como se ven desde un punto de vista particular, la cámara . Luego, un sistema de composición produce una imagen renderizando los triángulos y aplicando texturas en el exterior. Las texturas son pequeñas imágenes que se pintan sobre los triángulos para producir realismo. La imagen resultante se combina con varios efectos especiales y se mueve a un búfer de fotogramas , que el hardware de vídeo escanea para producir la imagen mostrada. Este esquema conceptual básico se conoce como la canalización de visualización .

Cada uno de estos pasos aumenta la cantidad de memoria necesaria para almacenar la imagen resultante. Al llegar al final del proceso, las imágenes son tan grandes que las tarjetas gráficas suelen utilizar memoria especializada de alta velocidad y un bus de red muy rápido para proporcionar el ancho de banda necesario para transferir la imagen entre los distintos subcomponentes del proceso. Este tipo de soporte es posible en tarjetas gráficas dedicadas, pero a medida que las limitaciones de potencia y tamaño se reducen, proporcionar suficiente ancho de banda resulta costoso en términos de diseño.

Los renderizadores basados ​​en mosaicos solucionan este problema dividiendo la imagen en secciones llamadas mosaicos y renderizando cada una por separado. Esto reduce la cantidad de memoria necesaria durante los pasos intermedios y la cantidad de datos que se transfieren en un momento dado. Para ello, el sistema ordena los triángulos que componen la geometría por ubicación, lo que permite encontrar rápidamente qué triángulos se superponen con los límites de los mosaicos. A continuación, carga solo esos triángulos en la canalización de renderizado, realiza las distintas operaciones de renderizado en la GPU y envía el resultado al búfer de fotogramas . Se pueden usar mosaicos muy pequeños; los tamaños de mosaico más comunes son 16×16 y 32×32 píxeles, lo que también reduce la cantidad de memoria y ancho de banda necesarios en las etapas internas. Y como cada mosaico es independiente, se presta naturalmente a una paralelización sencilla.

En un renderizador de mosaicos típico, la geometría debe transformarse primero al espacio de la pantalla y asignarse a los mosaicos de dicho espacio. Esto requiere cierto almacenamiento para las listas de geometría de cada mosaico. En los primeros sistemas de mosaicos, esto lo realizaba la CPU , pero todo el hardware moderno incluye hardware para acelerar este paso. La lista de geometría también puede ordenarse de adelante hacia atrás, lo que permite a la GPU usar la eliminación de superficies ocultas para evitar procesar píxeles que están ocultos detrás de otros, ahorrando ancho de banda de memoria al evitar búsquedas de texturas innecesarias. [ 2 ]

El enfoque de renderizado por teselas presenta dos desventajas principales. Una es que algunos triángulos pueden dibujarse varias veces si se superponen a varias teselas. Esto implica que el tiempo total de renderizado sería mayor que en un sistema de renderizado en modo inmediato. También pueden surgir problemas al unir las teselas para formar una imagen completa, aunque este problema se resolvió hace tiempo . Más difícil de solucionar es que algunas técnicas de imagen se aplican al fotograma en su conjunto, y su implementación en un renderizado por teselas resulta compleja, ya que la idea es no tener que trabajar con todo el fotograma. Estas desventajas son bien conocidas y de poca importancia para los sistemas donde las ventajas resultan útiles; los sistemas de renderizado por teselas se encuentran ampliamente en dispositivos informáticos portátiles.

La representación en mosaico no debe confundirse con los esquemas de direccionamiento de búfer de fotogramas en mosaico/no lineales , que hacen que los píxeles adyacentes también sean adyacentes en la memoria. [ 3 ] Estos esquemas de direccionamiento son utilizados por una amplia variedad de arquitecturas, no solo por los renderizadores en mosaico.

Trabajos iniciales

Gran parte del trabajo inicial sobre renderizado por mosaicos se realizó como parte de la arquitectura Pixel Planes 5 (1989). [ 4 ] [ 5 ]

El proyecto Pixel Planes 5 validó el enfoque de teselado e inventó muchas de las técnicas que ahora se consideran estándar para los renderizadores de teselado. Es el trabajo más citado en otros artículos del campo.

El método de teselado también se conocía desde los inicios de la renderización por software. Las implementaciones de la renderización de Reyes suelen dividir la imagen en "cubos de teselas".

Productos comerciales: ordenadores de sobremesa y consolas.

En los inicios del desarrollo de las GPU para ordenadores de sobremesa, varias empresas desarrollaron arquitecturas modulares. Con el tiempo, estas fueron sustituidas en gran medida por GPU de modo inmediato con sistemas de memoria externa personalizados y de alta velocidad.

Los principales ejemplos de esto son:

Ejemplos de arquitecturas no segmentadas que utilizan grandes búferes en el chip son:

  • Xbox 360 (2005): la GPU contiene una eDRAM integrada de 10 MB ; esto no es suficiente para mantener el raster para una imagen completa de 1280 × 720 con antialiasing multisample 4× , por lo que se superpone una solución de mosaico cuando se ejecuta en resoluciones HD y se habilita el MSAA 4×. [ 15 ] 
  • Xbox One (2013): la GPU contiene una eSRAM integrada de 32 MB , que puede usarse para almacenar la totalidad o parte de una imagen. No es una arquitectura de mosaico, pero es lo suficientemente flexible como para que los desarrolladores de software puedan emular la renderización de mosaico. [ 16 ] 

Productos comerciales – Integrados

Debido al ancho de banda de memoria externa relativamente bajo y a la modesta cantidad de memoria integrada requerida, la renderización por mosaicos es una tecnología popular para las GPU integradas. Algunos ejemplos actuales incluyen:

Renderizado en modo inmediato basado en mosaicos (TBIM):

Renderizado diferido basado en mosaicos (TBDR):

Vivante fabrica GPU móviles con memoria de búfer de fotogramas estrechamente acoplada (similar a la GPU de Xbox 360 descrita anteriormente). Si bien esto puede usarse para renderizar partes de la pantalla, el gran tamaño de las regiones renderizadas hace que no se suela describir como una arquitectura basada en mosaicos.

Véase también

Referencias

  1. Molnar, Steven (1994-04-01). "Una clasificación por ordenamiento de renderizado paralelo" (PDF) . IEEE . Archivado (PDF) del original el 12-09-2014 . Recuperado el 24-08-2012 .
  2. "PowerVR: Una clase magistral sobre tecnología y optimización gráfica" (PDF) . Imagination Technologies . 14 de enero de 2012. Archivado (PDF) del original el 3 de octubre de 2013. Consultado el 11 de enero de 2014 .
  3. Deucher, Alex (16 de mayo de 2008). "Cómo funcionan las tarjetas de video" . Fundación X.Org . Archivado del original el 21 de mayo de 2010. Consultado el 27 de mayo de 2010 .
  4. Mahaney, Jim (1998-06-22). "Historia" . Pixel-Planes . Universidad de Carolina del Norte en Chapel Hill . Archivado del original el 29 de septiembre de 2008. Recuperado el 4 de agosto de 2008 .
  5. Fuchs, Henry (1989-07-01). «Pixel-planes 5: un sistema gráfico multiprocesador heterogéneo que utiliza memorias mejoradas por el procesador» . Actas de la 16.ª conferencia anual sobre gráficos por computadora y técnicas interactivas - SIGGRAPH '89 . ACM . págs. 79–88 . doi : 10.1145/74333.74341 . ISBN  0201504340. S2CID 1778124 . Consultado el 24-08-2012 . 
  6. Maclellan, Andrew (23 de junio de 1997). "Oak presenta el acelerador de chip 3D Warp 5 que utiliza un esquema de renderizado similar al de Talisman". N.° 1063. Electronic Buyers News. 
  7. Smith, Tony (1999-10-06). "GigaPixel se enfrenta a 3dfx, S3, Nvidia con... mosaicos" . Gigapixel . The Register . Archivado del original el 2012-10-03 . Recuperado el 2012-08-24 .
  8. "Desarrollo 2011: PS Vita es el hardware más amigable para desarrolladores que Sony ha creado jamás" . PS Vita . 3dsforums . 21/07/2011 . Consultado el 21/07/2011 .
  9. Kanter, David (1 de agosto de 2016). "Rasterización basada en mosaicos en GPU de Nvidia" . Real World Technologies . Archivado del original el 4 de agosto de 2016. Consultado el 1 de abril de 2016 .
  10. "Vista previa de la arquitectura de la GPU AMD Vega: arquitectura de memoria rediseñada" . PC Perspective . 5 de enero de 2017. Consultado el 4 de enero de 2020 .
  11. Smith, Ryan. "Avance de la arquitectura de la GPU AMD Vega: mayor IPC, segmentación y más, disponible en el primer semestre de 2017" . www.anandtech.com . Archivado del original el 6 de enero de 2017. Consultado el 4 de enero de 2020 .
  12. "Arquitectura de gráficos de procesador Intel Gen11" (PDF) . software.intel.com . Consultado el 13 de agosto de 2024 .
  13. @intelnews (8 de mayo de 2019). "@gregorymbryant de Intel en el evento de hoy..." ( Tweet ) vía Twitter .
  14. "Entretenimiento a lo grande en un diseño extraordinariamente ligero y minimalista" (PDF) . Archivado del original (PDF) el 28 de mayo de 2019.
  15. Meyer, Tara (29 de septiembre de 2011). "Actualización de XNA Game Studio 4.0" . msdn.microsoft.com . Archivado del original el 7 de enero de 2015. Consultado el 15 de mayo de 2014 .
  16. "Desarrollador de Xbox One: las próximas mejoras del SDK permitirán más juegos en 1080p" . 29 de julio de 2023.
  17. "Estrategia de renderizado de Mali" . ARM. Archivado del original el 4 de marzo de 2016. Consultado el 27 de octubre de 2018 .
  18. "Actualización del controlador gráfico freedreno" . lwn.net. Archivado del original el 5 de septiembre de 2015. Consultado el 15 de septiembre de 2015 .
  19. "El auge de los juegos móviles en Android" (PDF) . Qualcomm. pág. 5. Archivado (PDF) del original el 9 de noviembre de 2014. Consultado el 17 de septiembre de 2015 . 
  20. Klug, Brian; Lal Shimpi, Anand (11 de septiembre de 2011). "Análisis del Samsung Galaxy S 2 (Internacional): Lo mejor, redefinido" . www.anandtech.com . Archivado del original el 23 de septiembre de 2011. Consultado el 4 de enero de 2020 .
  21. "Renderizado basado en mosaicos" . Arm . Consultado el 13 de julio de 2020 .
  22. "Una mirada a la arquitectura gráfica de PowerVR: renderizado basado en mosaicos" . Imagination Technologies. Archivado del original el 5 de abril de 2015. Consultado el 15 de septiembre de 2015 .
  23. "VideoCoreIV-AG100" (PDF) . Broadcom. 18 de septiembre de 2013. Archivado (PDF) del original el 1 de marzo de 2015. Consultado el 10 de enero de 2015 .
  24. "Lleva tu aplicación Metal a las Mac con Apple Silicon" . developer.apple.com . Consultado el 13 de julio de 2020 .