Renderizado en mosaico


De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

La representación en mosaico es el proceso de subdividir una imagen de gráficos de computadora por 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 el ancho de banda se reducen en comparación con los sistemas de renderizado en modo inmediato que dibujan todo el fotograma a la vez. Esto ha hecho que los sistemas de renderizado de mosaicos sean particularmente comunes para el uso de dispositivos portátiles de bajo consumo. La representación en mosaico se conoce a veces como una arquitectura de "clasificación intermedia", porque realiza la clasificación de la geometría en el medio de la canalización de gráficos en lugar de cerca del final. [1]

Concepto basico

La creación de una imagen 3D para su visualización consta de una serie de pasos. Primero, los objetos que se mostrarán se cargan en la memoria desde modelos individuales . Luego, el sistema aplica funciones matemáticas para transformar los modelos en un sistema de coordenadas común, la visión del mundo . Desde esta visión del mundo, se crea una serie de polígonos (típicamente triángulos) que se aproxima a los modelos originales como se ve desde un punto de vista particular, la cámara . A continuación, un sistema de composición produce una imagen renderizando los triángulos y aplicando texturas al exterior. Las texturas son pequeñas imágenes que se pintan sobre los triángulos para producir realismo. Luego, la imagen resultante se combina con varios efectos especiales y se mueve a un búfer de fotogramas., que luego escanea el hardware de video 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 contener la imagen resultante. En el momento en que llega al final de la canalización, las imágenes son tan grandes que los diseños típicos de tarjetas gráficas a menudo usan memoria especializada de alta velocidad y un bus de computadora muy rápido para proporcionar el ancho de banda requerido para mover la imagen dentro y fuera de los diversos sub- componentes de la tubería. Este tipo de soporte es posible en tarjetas gráficas dedicadas, pero a medida que los presupuestos de energía y tamaño se vuelven más limitados, proporcionar suficiente ancho de banda se vuelve costoso en términos de diseño.

Los renderizadores de mosaicos abordan esta preocupación al dividir la imagen en secciones conocidas como mosaicos y representar cada una 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 hacer esto, 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 a los límites del mosaico. Luego, carga solo esos triángulos en la canalización de renderizado, realiza las diversas operaciones de renderizado en la GPU y envía el resultado al búfer de fotogramas.. Se pueden usar 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 requeridos en las etapas internas también sea pequeña. Y debido a que cada mosaico es independiente, naturalmente se presta a una simple paralelización.

En un renderizador de mosaicos típico, la geometría primero debe transformarse en espacio de pantalla y asignarse a mosaicos de espacio de pantalla. Esto requiere algo de almacenamiento para las listas de geometría de cada mosaico. En los primeros sistemas en mosaico, 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, lo que ahorra ancho de banda de memoria para búsquedas de texturas innecesarias. [2]

Hay dos desventajas principales del enfoque en mosaico. Una es que algunos triángulos se pueden dibujar varias veces si se superponen con varios mosaicos. Esto significa que el tiempo de renderizado total sería mayor que un sistema de renderizado en modo inmediato. También hay posibles problemas cuando los mosaicos deben unirse para hacer 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 como un todo, y son difíciles de implementar en un renderizado en mosaico donde la idea es no tener que trabajar con todo el marco. Estas compensaciones son bien conocidas y de menor importancia para los sistemas en los que 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 búfer de cuadros 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.

Trabajo temprano

Gran parte del trabajo inicial sobre el 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 por otros artículos en el campo.

El enfoque en mosaico también se conoció al principio de la historia del renderizado de software. Las implementaciones del renderizado de Reyes a menudo dividen 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, estos fueron reemplazados en gran medida por GPU de modo inmediato con rápidos sistemas de memoria externa personalizados.

Los principales ejemplos de esto son:

  • Arquitectura de renderizado PowerVR (1996): el rasterizador consistía en un mosaico de 32 × 32 en el que se rasterizaban los polígonos a lo largo de la imagen en varios píxeles en paralelo. En las primeras versiones de PC , el mosaico se realizaba en el controlador de pantalla que se ejecutaba en la CPU . En la aplicación de la consola Dreamcast , el mosaico se realizó mediante una pieza de hardware. Esto facilitó el renderizado diferido —sólo los píxeles visibles fueron mapeados por textura , ahorrando cálculos de sombreado y ancho de banda de textura .
  • Microsoft Talisman (1996)
  • Dreamcast (impulsado por el chipset PowerVR) (1998)
  • Gigapixel GP-1 (1999) [6]
  • Intel Larrabee GPU (2009) (cancelado)
  • PS Vita (con tecnología de chipset PowerVR) (2011) [7]
  • GPU Nvidia basadas en la arquitectura Maxwell y arquitecturas posteriores (2014) [8]
  • GPU AMD basadas en la arquitectura Vega (GCN5) y arquitecturas posteriores (2017) [9] [10]
  • GPU Intel Gen11 y arquitecturas posteriores (2019) [11] [12] [13]

Ejemplos de arquitecturas sin teselas que utilizan grandes búferes en chip son:

  • Xbox 360 (2005): la GPU contiene una eDRAM integrada de 10  MB ; esto no es suficiente para mantener la trama durante una imagen completa de 1280 × 720 con anti-aliasing multimuestra de 4 × , por lo que se superpone una solución de mosaico cuando se ejecuta en resoluciones HD y se habilita 4 × MSAA. [14]
  • Xbox One (2013): la GPU contiene una eSRAM incorporada de 32  MB , que se puede usar para contener toda o parte de una imagen. No es una arquitectura en mosaico, pero es lo suficientemente flexible como para que los desarrolladores de software puedan emular el renderizado en mosaico. [15] [ verificación fallida ]

Productos comerciales - Embebidos

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

Renderizado en modo inmediato basado en mosaicos (TBIM):

  • ARM Mali [ ¿cuál? ] serie. [dieciséis]
  • Qualcomm Adreno (la serie 300 y posteriores también pueden cambiar dinámicamente al renderizado en modo inmediato / directo a través de FlexRender). [17] [18] [19]

Renderizado diferido basado en mosaicos (TBDR):

  • Arma a Mali [ ¿cuál? ] serie. [20]
  • Tecnologías de imaginación Serie PowerVR 5/6/7. [21]
  • Serie Broadcom VideoCore IV . [22]
  • GPU de silicio de Apple . [23]

Vivante produce GPU móviles que tienen una memoria de búfer de cuadros estrechamente acoplada (similar a la GPU Xbox 360 descrita anteriormente). Aunque esto se puede usar para renderizar partes de la pantalla, el gran tamaño de las regiones renderizadas significa que normalmente no se describen como una arquitectura basada en mosaicos.

Ver también

  • Teselación (gráficos por computadora)
  • Atlas de texturas
  • Representación de línea de exploración
  • Videojuego basado en mosaicos

Referencias

  1. Molnar, Steven (1 de abril de 1994). "Una clasificación de clasificación de la 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 en optimización y tecnología de gráficos" (PDF) . Tecnologías de la imaginación . 2012-01-14. 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 video" . 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). Planos de píxeles 5: un sistema de gráficos multiprocesador heterogéneo que utiliza memorias mejoradas por el procesador . Pixel-Planes . ACM . págs. 79–88. doi : 10.1145 / 74333.74341 . ISBN 0201504340. S2CID  1778124 . Consultado el 24 de agosto de 2012 .
  6. Smith, Tony (6 de octubre de 1999). "GigaPixel adquiere 3dfx, S3, Nvidia con ... mosaicos" . Gigapixel . El registro . Archivado desde el original el 3 de octubre de 2012 . Consultado el 24 de agosto de 2012 .
  7. mestour, mestour (21 de julio de 2011). "Desarrollar 2011: PS Vita es el hardware más amigable para los desarrolladores que Sony haya fabricado" . PS Vita . 3dsforums . Consultado el 21 de julio de 2011 .[ enlace muerto permanente ]
  8. ^ Kanter, David (1 de agosto de 2016). "Rasterización basada en mosaicos en GPU Nvidia" . Tecnologías del mundo real . Archivado desde el original el 4 de agosto de 2016 . Consultado el 1 de abril de 2016 .
  9. ^ "Vista previa de la arquitectura AMD Vega GPU: Arquitectura de memoria rediseñada" . Perspectiva de PC . Consultado el 4 de enero de 2020 .
  10. ^ Smith, Ryan. "El avance de la arquitectura de la GPU AMD Vega: mayor IPC, mosaico y más, próximamente en el primer semestre de 2017" . www.anandtech.com . Consultado el 4 de enero de 2020 .
  11. ^ https://software.intel.com/sites/default/files/managed/db/88/The-Architecture-of-Intel-Processor-Graphics-Gen11_R1new.pdf
  12. ^ @intelnews (8 de mayo de 2019). "Intel's @gregorymbryant hoy ..." (Tweet) - a través de Twitter .
  13. ^ https://newsroom.intel.com/wp-content/uploads/sites/11/2019/05/10th-Gen-Intel-Core-Product-Brief.pdf
  14. ^ LLC), Tara Meyer (Aquent. "XNA Game Studio 4.0 Refresh" . Msdn.microsoft.com . Archivado desde el original el 7 de enero de 2015. Consultado el 15 de mayo de 2014 .
  15. ^ "Desarrollador de Xbox One: las próximas mejoras del SDK permitirán más juegos de 1080p" .
  16. ^ "Estrategia de renderizado de Malí" . BRAZO. Archivado desde el original el 4 de marzo de 2016 . Consultado el 27 de octubre de 2018 .
  17. ^ "Una actualización del controlador de gráficos freedreno" . lwn.net. Archivado desde el original el 5 de septiembre de 2015 . Consultado el 15 de septiembre de 2015 .
  18. ^ "El auge de los juegos móviles en Android" (PDF) . Qualcomm. pag. 5. Archivado (PDF) desde el original el 9 de noviembre de 2014 . Consultado el 17 de septiembre de 2015 .
  19. ^ Simond, Brian Klug, Anand Lal Shimpi, Francois (11 de septiembre de 2011). "Revisión de Samsung Galaxy S 2 (internacional) - El mejor, redefinido" . www.anandtech.com . Consultado el 4 de enero de 2020 .
  20. ^ "Renderizado basado en mosaicos" . Brazo . Consultado el 13 de julio de 2020 .
  21. ^ "Una mirada a la arquitectura de gráficos PowerVR: renderizado basado en mosaicos" . Tecnologías de la imaginación. Archivado desde el original el 5 de abril de 2015 . Consultado el 15 de septiembre de 2015 .
  22. ^ "VideoCoreIV-AG100" (PDF) . Broadcom. 2013-09-18. Archivado (PDF) desde el original el 1 de marzo de 2015 . Consultado el 10 de enero de 2015 .
  23. ^ "Lleve su aplicación Metal a Apple Silicon Macs" . developer.apple.com . Consultado el 13 de julio de 2020 .
Obtenido de " https://en.wikipedia.org/w/index.php?title=Tiled_rendering&oldid=1043465773 "