stringtranslate.com

Transparencia independiente del orden

La transparencia independiente del orden (OIT) es una clase de técnicas en gráficos de computadora rasterizados para renderizar la transparencia en una escena 3D, que no requieren renderizar la geometría en orden ordenado para la composición alfa .

Descripción

Comúnmente, la geometría 3D con transparencia se renderiza mezclando (usando composición alfa ) todas las superficies en un solo buffer (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 el que se mezclan las superficies afecta la oclusión total o visibilidad de cada superficie. Para un resultado correcto, las superficies deben mezclarse de más lejana a más cercana o de más cercana a más lejana, dependiendo de la operación de composición alfa , por encima o por debajo . El orden se puede lograr renderizando la geometría en orden ordenado, por ejemplo, ordenando triángulos por profundidad, pero puede llevar una cantidad significativa de tiempo, no siempre produce una solución (en el caso de geometría intersecante o superpuesta circularmente) y la implementación es compleja. En cambio, la transparencia independiente del orden ordena la geometría por píxel, después de la rasterización. Para obtener resultados exactos, esto requiere almacenar todos los fragmentos antes de ordenar y componer.

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 (incluyendo información de micropolígonos ) en un rasterizador de software, REYES , originalmente diseñado para anti-aliasing pero que también admite transparencia.

Más recientemente, en 2001, se describió el peeling de profundidad [1] como una técnica de OIT acelerada por hardware. Debido a las limitaciones del hardware gráfico, la geometría de la escena debía renderizarse muchas veces. A continuación se han desarrollado varias técnicas para mejorar el rendimiento del peeling de profundidad, aún con la limitación de renderizado de múltiples pasadas. Por ejemplo, Dual Depth Peeling (2008). [2]

En 2009, se introdujeron dos características importantes en el hardware/controladores/API de gráficos de la GPU que permitieron capturar y almacenar datos de fragmentos en un solo paso de renderizado de la escena, algo que antes no era posible. Se trata de la capacidad de escribir en memoria arbitraria de la GPU desde sombreadores y operaciones atómicas. Con estas características, se hizo posible una nueva clase de técnicas de OIT que no requieren muchos pasos de renderizado de la geometría de la escena.

OIT exacta

La OIT exacta, a diferencia de la aproximada, calcula con precisión el color final, para lo cual se deben ordenar todos los fragmentos. En el caso de escenas con una complejidad de profundidad alta, la ordenación se convierte en un obstáculo.

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 ocultamiento de latencia de operación y rendimiento 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 lo tanto, el rendimiento de los píxeles de baja complejidad de profundidad en el contexto de una escena de complejidad de profundidad potencialmente alta. Se informa un aumento general del rendimiento de 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 la clasificación en registros, [9] de manera similar a una clasificación de fusión externa , especialmente junto con BMA.

OIT aproximado

Las técnicas de OIT aproximadas flexibilizan 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 al ordenar solo parcialmente la geometría. Varias técnicas también comprimen o reducen los datos de los fragmentos. Entre ellas se incluyen:

OIT en hardware

Véase también

Referencias

  1. ^ Everitt, Cass (15 de mayo de 2001). «Transparencia interactiva independiente del orden». Nvidia . Archivado desde el original el 27 de septiembre de 2011. Consultado el 12 de octubre de 2008 .
  2. ^ Bavoil, Louis (febrero de 2008). "Transparencia independiente del orden con peeling de doble profundidad" (PDF) . Nvidia . Consultado el 12 de marzo de 2013 .
  3. ^ Fang Liu, Meng-Cheng Huang, Xue-Hui Liu y En-Hua Wu. "Peeling de profundidad de una sola pasada mediante el rasterizador CUDA", en SIGGRAPH 2009: Charlas (SIGGRAPH '09), 2009
  4. ^ Craig Peeper. "Paso de suma de prefijo para linealizar el almacenamiento en búfer A", solicitud de patente, diciembre de 2008
  5. ^ Marilena Maule y João LD Comba y Rafael Torchelsen y Rui Bastos. "Transparencia independiente del orden optimizada para memoria con Dynamic Fragment Buffer", en Computers & Graphics, 2014.
  6. ^ de Pyarelal Knowles, Geoff Leach y Fabio Zambetta. "Capítulo 20: Técnicas eficientes de almacenamiento en búfer de fragmentos en capas", OpenGL Insights, páginas 279-292, editores Cozzi y Riccio, CRC Press, 2012
  7. ^ 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 Eurographics sobre renderizado (EGSR'10), 2010
  8. ^ Knowles y col. (octubre de 2013). "Backwards Memory Allocation and Improved OIT" (PDF) . Biblioteca digital Eurographics. Archivado desde el original (PDF) el 2 de marzo de 2014 . Consultado el 21 de enero de 2014 .
  9. ^ Knowles y col. (junio de 2014). «Clasificación rápida para la OIT exacta de escenas complejas» (PDF) . Springer Berlin Heidelberg . Archivado desde el original (PDF) el 9 de agosto de 2014. Consultado el 5 de agosto de 2014 .
  10. ^ Enderton, Eric (nd). "Transparencia estocástica" (PDF) . IEEE Transactions on Visualization and Computer Graphics . 17 (8). Nvidia : 1036–1047. doi :10.1109/TVCG.2010.123. PMID  20921587 . Consultado el 12 de marzo de 2013 .
  11. ^ Salvi; et al. (18 de julio de 2013). "Transparencia adaptativa" . Consultado el 21 de enero de 2014 .
  12. ^ 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 .
  13. ^ McGuire, Morgan; Bavoil, Louis (2013). "Transparencia ponderada independiente del orden combinada". Revista de técnicas de gráficos por computadora . 2 (2): 122–141.
  14. ^ "Optimización del rendimiento de Dreamcast con Microsoft Direct3D". Microsoft . 1 de marzo de 1999.