En gráficos 3D por computadora , los conjuntos potencialmente visibles (PVS) se utilizan para acelerar la renderización de entornos 3D. Son una forma de eliminación de oclusión , donde se precalcula un conjunto candidato de polígonos potencialmente visibles , que luego se indexa en tiempo de ejecución para obtener rápidamente una estimación de la geometría visible . El término PVS se usa a veces para referirse a cualquier algoritmo de eliminación de oclusión (ya que, en efecto, esto es lo que calculan todos los algoritmos de oclusión), aunque en casi toda la literatura, se usa para referirse específicamente a algoritmos de eliminación de oclusión que precalculan conjuntos visibles y asocian estos conjuntos con regiones en el espacio. Para hacer esta asociación, el espacio de visión de la cámara (el conjunto de puntos desde los cuales la cámara puede renderizar una imagen) se subdivide típicamente en regiones (generalmente convexas ) y se calcula un PVS para cada región.
Beneficios frente a costes
Las ventajas de delegar la visibilidad como un preprocesamiento son:
- La aplicación solo tiene que consultar el conjunto precalculado según su posición de vista. Este conjunto se puede reducir aún más mediante el descarte por frustum . Computacionalmente, esto es mucho más económico que calcular la visibilidad basada en la oclusión en cada fotograma.
- Dentro de un fotograma, el tiempo es limitado. Solo se dispone de 1/60 de segundo (suponiendo una frecuencia de 60 Hz) para determinar la visibilidad, preparar la renderización (siempre que haya hardware gráfico), aplicar inteligencia artificial, física o cualquier otro código específico de la aplicación. En cambio, el preprocesamiento offline de un conjunto potencialmente visible puede durar el tiempo que sea necesario para calcular la visibilidad con precisión.
Las desventajas son:
- Los datos de PVS requieren almacenamiento adicional.
- Los tiempos de preprocesamiento pueden ser largos o inconvenientes.
- No se puede utilizar para escenas completamente dinámicas.
- En algunos casos, el conjunto visible para una región puede ser mucho mayor que para un punto.
Problema principal
El problema principal en el cálculo de PVS se convierte entonces en: Calcular el conjunto de polígonos que pueden ser visibles desde cualquier punto dentro de cada región de un conjunto de regiones poliédricas.
Existen diversas clasificaciones de algoritmos PVS con respecto al tipo de conjunto de visibilidad que calculan. [ 1 ] [ 2 ]
Algoritmos conservadores
Estos algoritmos sobreestiman la visibilidad de forma sistemática, de modo que ningún triángulo visible puede omitirse. El resultado final es que no se produce ningún error de imagen; sin embargo, es posible sobreestimar considerablemente la visibilidad, lo que conlleva una renderización ineficiente (debido a la renderización de geometría invisible). La investigación en algoritmos conservadores se centra en maximizar la fusión de oclusores para reducir esta sobreestimación. La lista de publicaciones sobre este tipo de algoritmos es extensa; entre las buenas revisiones sobre este tema se incluyen las de Cohen-Or et al. [ 2 ] y Durand [ 3 ].
Algoritmos agresivos
Estos algoritmos subestiman la visibilidad de forma sistemática, de modo que no existen polígonos redundantes (invisibles) en el conjunto PVS, aunque es posible que se pase por alto un polígono que sí es visible, lo que provoca errores en la imagen. El objetivo de la investigación de algoritmos avanzados es reducir el error potencial. [ 4 ] [ 5 ]
Algoritmos aproximados
Esto puede generar tanto redundancia como errores de imagen. [ 6 ]
Algoritmos exactos
Estos proporcionan conjuntos de visibilidad óptimos, donde no hay errores de imagen ni redundancia. Sin embargo, son complejos de implementar y suelen ejecutarse mucho más lentamente que otros algoritmos de visibilidad basados en PVS. Teller calculó la visibilidad exacta para una escena subdividida en celdas y portales [ 7 ] (véase también renderizado de portales ).
Las primeras soluciones 3D generales y manejables fueron presentadas en 2002 por Nirenstein et al. [ 1 ] y Bittner. [ 8 ] Haumont et al. [ 9 ] mejoran significativamente el rendimiento de estas técnicas. Bittner et al. [ 10 ] resuelven el problema para escenas urbanas 2.5D. Aunque no está directamente relacionado con el cálculo de PVS, el trabajo sobre el Complejo de Visibilidad 3D y el Esqueleto de Visibilidad 3D de Durand [ 3 ] proporciona una excelente base teórica sobre la visibilidad analítica.
La visibilidad en 3D es, por naturaleza, un problema de cuatro dimensiones. Para abordarlo, a menudo se utilizan soluciones mediante coordenadas de Plücker , que linealizan el problema en un espacio proyectivo de cinco dimensiones. En última instancia, estos problemas se resuelven con geometría sólida constructiva de dimensiones superiores .
Problemas secundarios
Algunos problemas secundarios interesantes incluyen:
Implementation Variants
- It is often undesirable or inefficient to simply compute triangle level visibility. Graphics hardware prefers objects to be static and remain in video memory. Therefore, it is generally better to compute visibility on a per-object basis and to sub-divide any objects that may be too large individually. This adds conservativity, but the benefit is better hardware utilization and compression (since visibility data is now per-object, rather than per-triangle).
- Computing cell or sector visibility is also advantageous, since by determining visible regions of space, rather than visible objects, it is possible to not only cull out static objects in those regions, but dynamic objects as well.
References
- 12S. Nirenstein, E. Blake, and J. Gain. Exact from-region visibility culling, In Proceedings of the 13th workshop on Rendering, pages 191–202. Eurographics Association, June 2002.
- 12Cohen-Or, D.; Chrysanthou, Y. L.; Silva, C. T.; Durand, F. (2003). "A survey of visibility for walkthrough applications". IEEE Transactions on Visualization and Computer Graphics. 9 (3): 412–431. CiteSeerX 10.1.1.148.4589. doi:10.1109/TVCG.2003.1207447.
- 123D Visibility: Analytical study and Applications, Frédo Durand, PhD thesis, Université Joseph Fourier, Grenoble, France, July 1999. is strongly related to exact visibility computations.
- ↑Shaun Nirenstein and Edwin Blake, Hardware Accelerated Visibility Preprocessing using Adaptive Sampling, Rendering Techniques 2004: Proceedings of the 15th Eurographics Symposium on Rendering, 207- 216, Norrköping, Sweden, June 2004.
- ↑Wonka, P.; Wimmer, M.; Zhou, K.; Maierhofer, S.; Hesina, G.; Reshetov, A. (July 2006). Guided visibility sampling. Proceedings of ACM SIGGRAPH 2006. Vol. 25. pp. 494–502. doi:10.1145/1179352.1141914. ISBN 978-1595933645. S2CID 9218485.
{{cite book}}:|journal=ignored (help) - ↑Gotsman, C.; Sudarsky, O.; Fayman, J. A. (October 1999). "Optimized occlusion culling using five-dimensional subdivision"(PDF). Computers & Graphics. 23 (5): 645–654. doi:10.1016/S0097-8493(99)00088-6.
- 1 2 Seth Teller, Cálculos de visibilidad en entornos poliédricos densamente ocluidos (Parte 2 de 3) (Tesis doctoral, Berkeley, 1992)
- ↑ Jiri Bittner. Técnicas jerárquicas para cálculos de visibilidad , tesis doctoral. Departamento de Informática e Ingeniería. Universidad Técnica Checa de Praga. Presentada en octubre de 2002, defendida en marzo de 2003.
- ↑ Denis Haumont, Otso Mäkinen y Shaun Nirenstein (junio de 2005). Un marco de baja dimensión para consultas de oclusión exactas de polígono a polígono . Rendering Techniques 2005: Actas del 16.º Simposio Eurographics sobre renderizado, Konstanz, Alemania. págs. 211–222 . CiteSeerX 10.1.1.66.6371 . doi : 10.2312/EGWR/EGSR05/211-222 .
- ↑ Jiri Bittner; Peter Wonka y Michael Wimmer (2005). "Visibilidad rápida y precisa desde la región en escenas urbanas" (PDF) . En Actas del Simposio Eurographics sobre Renderizado : 223–230 . doi : 10.2312/EGWR/EGSR05/223-230 . S2CID 9126258 .
- ↑ D. Haumont, O. Debeir y F. Sillion (septiembre de 2003). "Generación volumétrica de celdas y portales". Graphics Forum . 22 (3): 303– 312. CiteSeerX 10.1.1.163.6834 . doi : 10.1111/1467-8659.00677 . S2CID 14281909 .
- ↑ Oliver Mattausch; Jiri Bittner; Michael Wimmer (2006). "Construcción adaptativa de celdas de vista basada en la visibilidad". Actas del Simposio Eurographics sobre Renderizado : 195–205 . CiteSeerX 10.1.1.67.6705 . doi : 10.2312/EGWR/EGSR06/195-205 . S2CID 17919019 .
- ↑ Michiel van de Panne y A. James Stewart (junio de 1999). "Técnicas de compresión efectivas para visibilidad precalculada". Taller Eurographics sobre renderizado : 305–316 . CiteSeerX 10.1.1.116.8940 .
Enlaces externos
Páginas del autor citado (incluidas las publicaciones):
- Jiri Bittner
- Daniel Cohen-Or
- Fredo Durand
- Denis Haumont
- Shaun Nirenstein
- Seth Teller
- Pedro Wonka
Otros enlaces:
- Publicaciones seleccionadas sobre visibilidad
- Renderizado 3D