tecnicas graficas por computadora
La transparencia independiente del orden (OIT) es una clase de técnicas en gráficos por computadora rasterizados para representar transparencia en una escena 3D, que no requieren representar la geometría en orden para la composición alfa .
Descripción
Por lo general, la geometría 3D con transparencia se representa combinando (usando composición alfa ) todas las superficies en un único búfer (piense en esto como un lienzo). Cada superficie ocluye el color existente y agrega algo de su propio color dependiendo de su valor alfa , una relación de transmitancia de luz . El orden en que se combinan las superficies afecta la oclusión total o la visibilidad de cada superficie. Para obtener un resultado correcto, las superficies deben fusionarse de más lejos a más cercano o de más cercano a más lejano, dependiendo de la operación de composición alfa , por encima o por debajo . El orden se puede lograr representando la geometría en orden, por ejemplo, clasificando los triángulos por profundidad, pero puede llevar una cantidad significativa de tiempo, no siempre produce una solución (en el caso de geometría que se cruza o se superpone circularmente) y la implementación es compleja. En cambio, la transparencia independiente del orden clasifica la geometría por píxel, después de la rasterización. Para obtener resultados exactos, esto requiere almacenar todos los fragmentos antes de clasificarlos y componerlos.
Historia
El A-buffer es una técnica de gráficos por computadora introducida en 1984 que almacena listas por píxel de datos de fragmentos (incluida información de micropolígonos ) en un rasterizador de software, REYES , originalmente diseñado para suavizado pero que también admite transparencia.
Más recientemente, el peeling profundo [1] en 2001 describió una técnica de OIT acelerada por hardware. Debido a las limitaciones del hardware de gráficos, la geometría de la escena tuvo que renderizarse muchas veces. Se han seguido varias técnicas para mejorar el rendimiento del pelado en profundidad, aún con la limitación de renderizado de muchas pasadas. Por ejemplo, Peeling de doble profundidad (2008). [2]
En 2009, se introdujeron dos características importantes en el hardware/controladores/API de gráficos de la GPU que permitían capturar y almacenar datos de fragmentos en una sola pasada de renderizado de la escena, algo que antes no era posible. Estas son la capacidad de escribir en la memoria de la GPU arbitraria desde sombreadores y operaciones atómicas. Con estas características se hizo posible una nueva clase de técnicas OIT que no requieren muchas pasadas de renderizado de la geometría de la escena.
- El primero fue almacenar los datos del fragmento en una matriz 3D, [3] donde los fragmentos se almacenan a lo largo de la dimensión z para cada píxel x/y . En la práctica, la mayor parte de la matriz 3D no se utiliza o se desborda, ya que la complejidad de la profundidad de una escena suele ser desigual. Para evitar el desbordamiento, la matriz 3D requiere grandes cantidades de memoria, lo que en muchos casos no es práctico.
- Existen dos enfoques para reducir esta sobrecarga de memoria.
- Al empaquetar la matriz 3D con un escaneo de suma de prefijos, o linealización , [4] se eliminó el problema de la memoria no utilizada, pero se requiere un paso de procesamiento de cálculo de complejidad de profundidad adicional de la geometría. El búfer S "consciente de la escasez" , el búfer de fragmentos dinámico [5] , el búfer D "deque" [ cita necesaria ] , el búfer de fragmentos en capas linealizados [6], todos empaquetan datos de fragmentos con un escaneo de suma de prefijo y se demuestran con OIT.
- El almacenamiento de fragmentos en listas enlazadas por píxel [7] proporciona un empaquetado ajustado de estos datos y, a finales de 2011, las mejoras en los controladores redujeron los gastos generales de contención de la operación atómica, lo que hizo que la técnica fuera muy competitiva. [6]
ITO exacta
Exacto, a diferencia de aproximado, la OIT calcula con precisión el color final, para lo cual se deben clasificar todos los fragmentos. Para escenas de alta complejidad, la clasificación se convierte en un cuello de botella.
Un problema con la etapa de clasificación es la ocupación limitada de la memoria local , en este caso un atributo SIMT relacionado con el rendimiento y la ocultación de la latencia de operación de las GPU. La asignación de memoria hacia atrás [8] (BMA) agrupa los píxeles por su complejidad de profundidad y los clasifica en lotes para mejorar la ocupación y, por tanto, el rendimiento de los píxeles de complejidad de baja profundidad en el contexto de una escena de complejidad potencialmente alta. Se informa un aumento del rendimiento general de la OIT de hasta 3 veces.
La clasificación generalmente se realiza en una matriz local; sin embargo, el rendimiento se puede mejorar aún más haciendo uso de la jerarquía de memoria de la GPU y ordenando en registros, [9] de manera similar a una clasificación por fusión externa , especialmente en conjunto con BMA.
ITO aproximada
Las técnicas OIT aproximadas relajan la restricción de la representación exacta para proporcionar resultados más rápidos. Se puede obtener un mayor rendimiento al no tener que almacenar todos los fragmentos o ordenar solo parcialmente la geometría. Varias técnicas también comprimen o reducen los datos del fragmento. Éstas incluyen:
- Transparencia estocástica: dibuja en una resolución más alta con opacidad total pero descarta algunos fragmentos. La reducción de resolución producirá entonces transparencia. [10]
- Transparencia adaptativa, [11] una técnica de dos pasos donde el primero construye una función de visibilidad que se comprime sobre la marcha (esta compresión evita tener que ordenar completamente los fragmentos) y el segundo utiliza estos datos para componer fragmentos desordenados. La sincronización de píxeles de Intel [12] evita la necesidad de almacenar todos los fragmentos, eliminando el requisito de memoria ilimitada de muchas otras técnicas OIT.
- La transparencia independiente del orden combinada ponderada reemplazó al operador over con una aproximación conmutativa. Introducir información de profundidad en el peso produce una oclusión visualmente aceptable. [13]
OIT en Hardware
- La consola de juegos Sega Dreamcast incluía soporte de hardware para OIT automática. [14]
Ver también
Referencias
- ^ Everitt, Cass (15 de mayo de 2001). "Transparencia interactiva independiente del pedido". NVIDIA . Archivado desde el original el 27 de septiembre de 2011 . Consultado el 12 de octubre de 2008 .
- ^ Bavoil, Louis (febrero de 2008). "Solicite transparencia independiente con pelado de doble profundidad" (PDF) . NVIDIA . Consultado el 12 de marzo de 2013 .
- ^ Fang Liu, Meng-Cheng Huang, Xue-Hui Liu y En-Hua Wu. "Peelado en profundidad de una sola pasada mediante rasterizador CUDA", en SIGGRAPH 2009: Charlas (SIGGRAPH '09), 2009
- ^ Craig Peeper. "Pase de suma de prefijo para linealizar el almacenamiento en búfer A", Solicitud de patente, diciembre de 2008
- ^ Marilena Maule y João LD Comba y Rafael Torchelsen y Rui Bastos. "Transparencia independiente del orden optimizada para la memoria con Dynamic Fragment Buffer", en Computers & Graphics, 2014.
- ^ ab Pyarelal Knowles, Geoff Leach y Fabio Zambetta. "Capítulo 20: Técnicas eficientes de búfer de fragmentos en capas", OpenGL Insights, páginas 279-292, Editores Cozzi y Riccio, CRC Press, 2012
- ^ Jason C. Yang, Justin Hensley, Holger Grün y Nicolas Thibieroz. "Construcción de listas enlazadas simultáneas en tiempo real en la GPU", en actas de la 21ª conferencia de Eurographics sobre renderizado (EGSR'10), 2010
- ^ Knowles; et al. (octubre de 2013). "Asignación de memoria hacia atrás y OIT mejorada" (PDF) . Biblioteca digital Eurografía. Archivado desde el original (PDF) el 2 de marzo de 2014 . Consultado el 21 de enero de 2014 .
- ^ Knowles; et al. (junio de 2014). "Clasificación rápida para OIT exacta de escenas complejas" (PDF) . Springer Berlín Heidelberg . Archivado desde el original (PDF) el 9 de agosto de 2014 . Consultado el 5 de agosto de 2014 .
- ^ Enderton, Eric (sin fecha). "Transparencia estocástica" (PDF) . Transacciones IEEE sobre visualización y gráficos por computadora . 17 (8). NVIDIA : 1036-1047. doi :10.1109/TVCG.2010.123. PMID 20921587 . Consultado el 12 de marzo de 2013 .
- ^ Salvi; et al. (18 de julio de 2013). "Transparencia Adaptativa" . Consultado el 21 de enero de 2014 .
- ^ Davies, Leigh (18 de julio de 2013). "Aproximación de transparencia independiente del orden con sincronización de píxeles". Intel . Consultado el 21 de enero de 2014 .
- ^ McGuire, Morgan; Bavoil, Louis (2013). "Transparencia ponderada independiente del pedido combinado". Revista de técnicas de infografía . 2 (2): 122-141.
- ^ "Optimización del rendimiento de Dreamcast Microsoft Direct3D". Microsoft . 1999-03-01.