stringtranslate.com

Nivel de detalle (gráficos por computadora)

En gráficos de computadora , el nivel de detalle ( LOD ) se refiere a la complejidad de una representación de modelo 3D . [1] [2] [3] El LOD se puede disminuir a medida que el modelo se aleja del espectador o de acuerdo con otras métricas como la importancia del objeto, la velocidad relativa al punto de vista o la posición. Las técnicas LOD aumentan la eficiencia de la renderización al disminuir la carga de trabajo en las etapas de la canalización de gráficos , generalmente las transformaciones de vértices . La calidad visual reducida del modelo a menudo pasa desapercibida debido al pequeño efecto en la apariencia del objeto cuando está distante o se mueve rápido.

Aunque la mayoría de las veces el LOD se aplica solo a los detalles de la geometría , el concepto básico se puede generalizar. Recientemente, las técnicas LOD también incluyeron la gestión de sombreadores para mantener el control de la complejidad de los píxeles. Durante años se ha aplicado una forma de gestión del nivel de detalle a los mapas de texturas , bajo el nombre de mipmapping , que también proporciona una mayor calidad de renderizado.

Es común decir que "un objeto ha sido modificado LOD " cuando el objeto se simplifica mediante el algoritmo LOD subyacente , así como mediante un modelador 3D que crea manualmente modelos LOD. [ cita requerida ]

Referencia histórica

El origen [1] de todos los algoritmos LOD para gráficos por ordenador en 3D se remonta a un artículo de James H. Clark publicado en la edición de octubre de 1976 de Communications of the ACM . En aquella época, los ordenadores eran monolíticos y poco comunes, y los gráficos estaban a cargo de investigadores. El hardware en sí era completamente diferente, tanto en términos arquitectónicos como de rendimiento. Por tanto, se podían observar muchas diferencias con respecto a los algoritmos actuales, pero también muchos puntos en común.

El algoritmo original presentaba un enfoque mucho más genérico que el que se analizará aquí. Después de presentar algunos algoritmos disponibles para la gestión de la geometría, se afirma que los avances más fructíferos se obtuvieron al "estructurar los entornos que se están renderizando" , lo que permite aprovechar las transformaciones y operaciones de recorte más rápidas.

Ahora se propone la misma estructuración del entorno como una forma de controlar la variación de detalles, evitando así cálculos innecesarios y ofreciendo al mismo tiempo una calidad visual adecuada:

Por ejemplo, un dodecaedro parece una esfera desde una distancia suficientemente grande y, por lo tanto, se puede utilizar para modelarlo siempre que se lo observe desde esa distancia o desde una mayor. Sin embargo, si alguna vez se lo debe observar más de cerca, se verá como un dodecaedro. Una solución para esto es simplemente definirlo con el mayor detalle posible. Sin embargo, entonces podría tener muchos más detalles de los necesarios para representarlo a grandes distancias y, en un entorno complejo con muchos de esos objetos, habría demasiados polígonos (u otros primitivos geométricos) para que los algoritmos de superficie visible los manejaran de manera eficiente.

El algoritmo propuesto contempla una estructura de datos en forma de árbol que codifica en sus arcos tanto transformaciones como transiciones a objetos más detallados. De esta forma, cada nodo codifica un objeto y según una heurística rápida , el árbol desciende hasta las hojas que aportan más detalle a cada objeto. Cuando se llega a una hoja, se podrían utilizar otros métodos cuando se necesite mayor detalle, como la subdivisión recursiva de Catmull [2] .

El punto importante, sin embargo, es que en un entorno complejo, la cantidad de información presentada sobre los diversos objetos del entorno varía según la fracción del campo de visión ocupada por esos objetos.

Luego, el artículo presenta el recorte (que no debe confundirse con la selección, aunque a menudo son similares), varias consideraciones sobre el conjunto de trabajo gráfico y su impacto en el rendimiento, interacciones entre el algoritmo propuesto y otros para mejorar la velocidad de renderizado.

Enfoques bien conocidos

Aunque el algoritmo presentado anteriormente abarca una amplia gama de técnicas de gestión del nivel de detalle, las aplicaciones del mundo real suelen emplear métodos especializados adaptados a la información que se está procesando. Según los requisitos de la situación, se utilizan dos métodos principales:

El primer método, Niveles de detalle discretos (DLOD) , implica la creación de múltiples versiones discretas de la geometría original con niveles reducidos de detalle geométrico. En tiempo de ejecución, los modelos con todos los detalles se sustituyen por los modelos con detalles reducidos según sea necesario. Debido a la naturaleza discreta de los niveles, puede haber un efecto visual cuando se cambia un modelo por otro. Esto se puede mitigar mediante la combinación alfa o la transformación entre estados durante la transición.

El segundo método, el de niveles de detalle continuos (CLOD, por sus siglas en inglés) , utiliza una estructura que contiene un espectro de detalle geométrico que varía continuamente. Luego, se puede explorar la estructura para elegir con precisión el nivel de detalle adecuado que se requiere para la situación. Una ventaja importante de esta técnica es la capacidad de variar localmente el detalle; por ejemplo, el lado de un objeto grande más cercano a la vista se puede presentar con gran detalle, mientras que al mismo tiempo se reduce el detalle en su lado más alejado.

En ambos casos, los niveles de detalle se eligen en función de una heurística que se utiliza para juzgar cuánto detalle se pierde por la reducción de detalles, como por ejemplo mediante la evaluación del error geométrico del nivel de detalle en relación con el modelo de detalle completo. A continuación, los objetos se muestran con la cantidad mínima de detalles necesaria para satisfacer la heurística, que está diseñada para minimizar los detalles geométricos tanto como sea posible para maximizar el rendimiento y, al mismo tiempo, mantener un nivel aceptable de calidad visual.

Detalles sobre LOD discreto

Un ejemplo de varios rangos de DLOD. Las áreas más oscuras se deben representar con mayor detalle. Se ejecuta una operación de selección adicional, descartando toda la información fuera del tronco truncado (áreas coloreadas).

El concepto básico de LOD discreto (DLOD) es proporcionar varios modelos para representar el mismo objeto. La obtención de esos modelos requiere un algoritmo externo que a menudo no es trivial y está sujeto a muchas técnicas de reducción de polígonos. Los algoritmos de LOD sucesivos simplemente supondrán que esos modelos están disponibles.

Los algoritmos DLOD se utilizan a menudo en aplicaciones que exigen un alto rendimiento y que tienen conjuntos de datos pequeños que caben fácilmente en la memoria. Aunque se pueden utilizar algoritmos fuera del núcleo , la granularidad de la información no es adecuada para este tipo de aplicaciones. Este tipo de algoritmo suele ser más fácil de poner en funcionamiento, ya que ofrece un rendimiento más rápido y un menor uso de la CPU debido a las pocas operaciones involucradas.

Los métodos DLOD se utilizan a menudo para objetos en movimiento "autónomos", posiblemente incluyendo métodos de animación complejos. Se utiliza un enfoque diferente para geomipmapping , [3] un algoritmo de representación de terreno popular porque se aplica a mallas de terreno que son gráfica y topológicamente diferentes de las mallas de "objeto". En lugar de calcular un error y simplificar la malla de acuerdo con esto, geomipmapping toma un método de reducción fijo, evalúa el error introducido y calcula una distancia en la que el error es aceptable. Aunque sencillo, el algoritmo proporciona un rendimiento decente.

Un ejemplo de LOD discreto

Como ejemplo simple, considere una esfera . Un enfoque LOD discreto almacenaría en caché una cierta cantidad de modelos para usar a diferentes distancias. Debido a que el modelo se puede generar de manera trivial mediante procedimientos mediante su formulación matemática, el uso de una cantidad diferente de puntos de muestra distribuidos en la superficie es suficiente para generar los diversos modelos requeridos. Este paso no es un algoritmo LOD.

Para simular un escenario realista de transformación limitada, se puede utilizar una aplicación escrita ad hoc. El uso de algoritmos simples y operaciones de fragmentos mínimos garantiza que no se produzcan limitaciones de CPU . En cada cuadro, el programa calculará la distancia de cada esfera y elegirá un modelo de un grupo de acuerdo con esta información. Para mostrar fácilmente el concepto, la distancia a la que se utiliza cada modelo está codificada en el código fuente. Un método más complejo calcularía modelos adecuados según la distancia de uso elegida.

Se utiliza OpenGL para renderizar debido a su alta eficiencia en la gestión de lotes pequeños, almacenando cada modelo en una lista de visualización, evitando así sobrecargas de comunicación. Se proporciona una carga de vértice adicional aplicando dos fuentes de luz direccionales ubicadas idealmente a una distancia infinita.

La siguiente tabla compara el rendimiento de la representación consciente de LOD y un método de detalles completos ( fuerza bruta ).

LOD jerárquico

Debido a que el hardware está orientado a grandes cantidades de detalles, la representación de objetos con pocos polígonos puede tener un rendimiento subóptimo. HLOD evita el problema agrupando diferentes objetos [4] . Esto permite una mayor eficiencia y aprovecha las consideraciones de proximidad.

Aplicaciones prácticas

Juegos de vídeo

El LOD es especialmente útil en los videojuegos 3D. Los desarrolladores de videojuegos quieren ofrecer a los jugadores mundos grandes, pero siempre están limitados por el hardware, la velocidad de cuadros y la naturaleza en tiempo real de los gráficos de los videojuegos. Con la llegada de los juegos 3D en la década de 1990, muchos videojuegos simplemente no renderizaban estructuras u objetos distantes. Solo se renderizaban los objetos cercanos y las partes más distantes se desvanecían gradualmente, implementando esencialmente la niebla de distancia . Los videojuegos que utilizan el renderizado LOD evitan este efecto de niebla y pueden renderizar áreas más grandes. Algunos ejemplos notables de renderizado LOD en videojuegos 3D incluyen The Killing Cloud , Spyro the Dragon , Crash Bandicoot: Warped , Unreal Tournament y el motor Serious Sam . La mayoría de los juegos 3D modernos utilizan una combinación de técnicas de renderizado LOD, utilizando diferentes modelos para estructuras grandes y eliminación de distancia para detalles del entorno como césped y árboles. El efecto a veces todavía se nota, por ejemplo, cuando el personaje del jugador vuela sobre el terreno virtual o usa una mira de francotirador para ver a larga distancia. Especialmente la hierba y el follaje parecerán aparecer al acercarse, también conocido como eliminación de follaje. [4] LOD también se puede utilizar para renderizar terreno fractal en tiempo real. [5] El sistema Nanite de Unreal Engine 5 esencialmente implementa el nivel de detalle dentro de las mallas en lugar de solo los objetos en su conjunto.

En SIG y modelado de ciudades en 3D

El LOD se encuentra en los SIG y en los modelos de ciudades en 3D como un concepto similar. Indica cuán minuciosamente se han mapeado las características del mundo real y en qué medida el modelo se adhiere a su contraparte del mundo real. Además de la complejidad geométrica, se pueden considerar otras métricas como la coherencia espacio-semántica, la resolución de la textura y los atributos en el LOD de un modelo. El estándar CityGML contiene una de las categorizaciones LOD más destacadas.

La analogía de "LOD-ing" en SIG se conoce como generalización .

Software de renderizado y modelado

Véase también

Referencias

  1. ^ "Múltiples niveles de detalle" (PDF) . clemson.edu . Consultado el 2 de julio de 2023 .
  2. ^ "Niveles de detalle LOD" (PDF) . computer-graphics.se . Consultado el 2 de julio de 2023 .
  3. ^ "Geometría dinámica basada en GPU LOD – RasterGrid".
  4. ^ "Modo follaje". docs.unrealengine.com . Consultado el 2 de julio de 2023 .
  5. ^ "Musgrave, F. Kenton, Craig E. Kolb y Robert S. Mace. "La síntesis y representación de terrenos fractales erosionados". ACM Siggraph Computer Graphics. Vol. 23. No. 3. ACM, 1989" (PDF) . Consultado el 2 de julio de 2023 .
  1. ^ Communications of the ACM, octubre de 1976, volumen 19, número 10. Páginas 547–554. Modelos geométricos jerárquicos para algoritmos de superficies visibles, por James H. Clark , Universidad de California en Santa Cruz. El escaneo digitalizado está disponible de forma gratuita en https://web.archive.org/web/20060910212907/http://accad.osu.edu/%7Ewaynec/history/PDFs/clark-vis-surface.pdf.
  2. ^ Catmull E., Un algoritmo de subdivisión para la visualización por computadora de superficies curvas . Tech. Rep. UTEC-CSc-74-133, Universidad de Utah, Salt Lake City, Utah, 1 de diciembre.
  3. ^ Ribelles, López y Belmonte, "Un modelo de nivel de detalle discreto mejorado mediante una representación incremental", 2010, disponible en http://www3.uji.es/~ribelles/papers/2010-TPCG/tpcg10.pdf
  4. ^ de Boer, WH, Representación rápida del terreno mediante MipMapping geométrico , en artículos destacados de flipCode, octubre de 2000. Disponible en flipcode - Representación rápida del terreno mediante MipMapping geométrico.
  5. ^ El artículo de Carl Erikson en http://www.cs.unc.edu/Research/ProjectSummaries/hlods.pdf ofrece una descripción rápida, pero eficaz, de los mecanismos de HLOD. En su tesis, en https://wwwx.cs.unc.edu/~geom/papers/documents/dissertations/erikson00.pdf, se incluye una descripción más detallada.