stringtranslate.com

Representación en mosaico

La representación en mosaico es el proceso de subdividir una imagen de gráficos de computadora mediante una cuadrícula regular en el espacio óptico y representar cada sección de la cuadrícula, o mosaico , por separado. La ventaja de este diseño es que la cantidad de memoria y ancho de banda se reduce en comparación con los sistemas de representación en modo inmediato que dibujan todo el marco a la vez. Esto ha hecho que los sistemas de representación en mosaico sean particularmente comunes para el uso en dispositivos portátiles de bajo consumo . La representación en mosaico a veces se conoce como una arquitectura de "ordenación intermedia", porque realiza la ordenación de la geometría en el medio de la tubería de gráficos 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. En primer lugar, los objetos que se van a visualizar se cargan en la memoria a partir de modelos individuales . A continuación, el sistema aplica funciones matemáticas para transformar los modelos en 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 . A continuación, un sistema de composición produce una imagen mediante la representación de los triángulos y la aplicación de texturas en el exterior. Las texturas son pequeñas imágenes que se pintan sobre los triángulos para producir realismo. A continuación, la imagen resultante se combina con varios efectos especiales y se traslada a un búfer de fotogramas , que el hardware de vídeo escanea para producir la imagen mostrada. Este diseño conceptual básico se conoce como canalización de visualización .

Cada uno de estos pasos aumenta la cantidad de memoria necesaria para almacenar la imagen resultante. Cuando llega al final del proceso, las imágenes son tan grandes que los diseños típicos de tarjetas gráficas suelen utilizar una memoria especializada de alta velocidad y un bus informático muy rápido para proporcionar el ancho de banda necesario para mover la imagen dentro y fuera de los diversos subcomponentes del proceso. Este tipo de compatibilidad es posible en tarjetas gráficas dedicadas, pero a medida que los presupuestos de potencia y tamaño se vuelven más limitados, proporcionar suficiente ancho de banda se vuelve costoso en términos de diseño.

Los renderizadores en mosaico abordan este problema descomponiendo la imagen en secciones conocidas como mosaicos y renderizando cada una de ellas por separado. Esto reduce la cantidad de memoria necesaria durante los pasos intermedios y la cantidad de datos que se mueven en un momento dado. Para ello, el sistema ordena los triángulos que forman la geometría por ubicación, lo que permite encontrar rápidamente qué triángulos se superponen a los límites de los mosaicos. Luego carga solo esos triángulos en el flujo de renderizado, realiza las diversas operaciones de renderizado en la GPU y envía el resultado al búfer de cuadros . Se pueden utilizar mosaicos muy pequeños, 16 × 16 y 32 × 32 píxeles son tamaños de mosaico populares, lo que hace que la cantidad de memoria y ancho de banda necesarios en las etapas internas también sean pequeños. Y debido a que cada mosaico es independiente, naturalmente se presta a una paralelización simple.

En un renderizador de mosaicos típico, primero se debe transformar la geometría en espacio de pantalla y asignarla a mosaicos de espacio de pantalla. Esto requiere algo de almacenamiento para las listas de geometría para cada mosaico. En los primeros sistemas de mosaicos, esto lo realizaba la CPU , pero todo el hardware moderno contiene hardware para acelerar este paso. La lista de geometría también se puede ordenar de adelante hacia atrás, lo que permite que la GPU utilice 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 para búsquedas de texturas innecesarias. [2]

El enfoque en mosaico tiene dos desventajas principales. Una es que algunos triángulos pueden dibujarse varias veces si se superponen a varios mosaicos. Esto significa que el tiempo total de renderizado sería mayor que en un sistema de renderizado en modo inmediato. También pueden surgir problemas cuando los mosaicos deben unirse para formar una imagen completa, pero este problema se resolvió hace mucho tiempo [ cita requerida ] . Más difícil de resolver es que algunas técnicas de imagen se aplican al marco en su totalidad, y son difíciles de implementar en un renderizado en mosaico donde la idea es no tener que trabajar con todo el marco. Estas desventajas son bien conocidas y tienen consecuencias menores para los sistemas donde las ventajas son útiles; los sistemas de renderizado en mosaico se encuentran ampliamente en dispositivos informáticos portátiles.

La representación en mosaico no debe confundirse con los esquemas de direccionamiento de framebuffer en mosaico/no lineal , 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 renderizadores en mosaico.

Trabajos tempranos

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

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

El enfoque en mosaicos también se conoció en los inicios de la historia del renderizado por software. Las implementaciones del renderizado de Reyes suelen dividir la imagen en "cubos de mosaicos".

Productos comerciales: escritorio y consola

Al principio del desarrollo de las GPU de escritorio, varias empresas desarrollaron arquitecturas en mosaico. Con el tiempo, estas fueron reemplazadas en gran medida por GPU de modo inmediato con sistemas de memoria externa personalizados y rápidos.

Algunos ejemplos importantes de esto son:

Ejemplos de arquitecturas sin mosaicos que utilizan grandes buffers en chip son:

Productos comerciales – Integrados

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

Representación en modo inmediato basada en mosaicos (TBIM):

Representación diferida basada en mosaicos (TBDR):

Vivante fabrica GPU para dispositivos móviles que tienen una memoria de búfer de cuadros acoplada estrechamente (similar a la GPU de Xbox 360 descrita anteriormente). Si bien esto se puede utilizar para renderizar partes de la pantalla, el gran tamaño de las regiones renderizadas significa que no suelen describirse como si utilizaran una arquitectura basada en mosaicos.

Véase también

Referencias

  1. ^ Molnar, Steven (1 de abril de 1994). "Una clasificación de clasificación de representación paralela" (PDF) . IEEE . Archivado (PDF) desde el original el 12 de septiembre de 2014 . Consultado el 24 de agosto de 2012 .
  2. ^ "PowerVR: una clase magistral sobre tecnología y optimización de gráficos" (PDF) . Imagination Technologies . 14 de enero de 2012. Archivado (PDF) desde el 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 vídeo". Fundación X.Org . Archivado desde el original el 21 de mayo de 2010. Consultado el 27 de mayo de 2010 .
  4. ^ Mahaney, Jim (22 de junio de 1998). "Historia". Pixel-Planes . Universidad de Carolina del Norte en Chapel Hill . Archivado desde el original el 29 de septiembre de 2008 . Consultado el 4 de agosto de 2008 .
  5. ^ Fuchs, Henry (1 de julio de 1989). "Pixel-planes 5: un sistema de gráficos multiprocesador heterogéneo que utiliza memorias mejoradas por procesador". Actas de la 16.ª conferencia anual sobre gráficos por ordenador y técnicas interactivas - SIGGRAPH '89 . ACM . pp. 79–88. doi :10.1145/74333.74341. ISBN. 0201504340. S2CID  1778124 . Consultado el 24 de agosto de 2012 .
  6. ^ Maclellan, Andrew (23 de junio de 1997). "Oak presenta un acelerador Warp 5 con chip 3D que utiliza un esquema de renderizado similar al de Talisman". N.º 1063. Electronic Buyers News.
  7. ^ Smith, Tony (6 de octubre de 1999). "GigaPixel se enfrenta a 3dfx, S3 y Nvidia con... mosaicos". Gigapixel . The Register . Archivado desde el original el 3 de octubre de 2012 . Consultado el 24 de agosto de 2012 .
  8. ^ "Develop 2011: PS Vita es el hardware más amigable para desarrolladores que Sony ha creado jamás". PS Vita . 3dsforums. 2011-07-21 . Consultado el 2011-07-21 .[ enlace muerto permanente ]
  9. ^ Kanter, David (1 de agosto de 2016). «Rasterización basada en mosaicos en las GPU de Nvidia». Real World Technologies . Archivado desde el 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. "Adelanto de la arquitectura de GPU AMD Vega: mayor IPC, mosaico y más, disponible en el primer semestre de 2017". www.anandtech.com . 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. ^ "Gran entretenimiento en un diseño increíblemente delgado y liviano" (PDF) . Archivado desde el 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 desde el 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 de 1080p". 29 de julio de 2023.
  17. ^ "Estrategia de renderizado de Mali". ARM. Archivado desde el original el 4 de marzo de 2016. Consultado el 27 de octubre de 2018 .
  18. ^ "Una actualización sobre el controlador gráfico de Freedreno". lwn.net. Archivado desde el 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. 5. Archivado (PDF) desde el original el 2014-11-09 . Consultado el 17 de septiembre de 2015 .
  20. ^ Klug, Brian; Lal Shimpi, Anand (11 de septiembre de 2011). "Reseña del Samsung Galaxy S 2 (internacional): lo mejor, redefinido". www.anandtech.com . 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 desde el 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) desde el original el 1 de marzo de 2015. Consultado el 10 de enero de 2015 .
  24. ^ "Lleva tu aplicación Metal a los Mac con Apple Silicon". developer.apple.com . Consultado el 13 de julio de 2020 .