stringtranslate.com

Nivel de detalle (gráficos por computadora)

En gráficos por computadora , el nivel de detalle ( LOD ) se refiere a la complejidad de la representación de un modelo 3D . [1] [2] [3] El LOD se puede disminuir a medida que el modelo se aleja del espectador o según 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 del renderizado al disminuir la carga de trabajo en las etapas del proceso de gráficos , generalmente 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á lejos o se mueve rápidamente.

Aunque la mayoría de las veces LOD se aplica únicamente a detalles geométricos , 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. A los mapas de textura se les aplica desde hace años una forma de gestión del nivel de detalle, bajo el nombre de mipmapping , proporcionando también una mayor calidad de renderizado.

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

Referencia histórica

El origen [1] de todos los algoritmos LOD para gráficos por computadora en 3D se remonta a un artículo de James H. Clark en la edición de octubre de 1976 de Communications of the ACM . En ese momento, las computadoras eran monolíticas y raras, y los investigadores manejaban los gráficos. El hardware en sí era completamente diferente, tanto en términos de arquitectura como de rendimiento. Como tal, se pueden observar muchas diferencias con respecto a los algoritmos actuales pero también muchos puntos en común.

El algoritmo original presentó un enfoque mucho más genérico de lo que se discutirá aquí. Después de introducir algunos algoritmos disponibles para la gestión de la geometría, se afirma que los beneficios más fructíferos provinieron de "...estructurar los entornos que se renderizan" , permitiendo explotar transformaciones y operaciones de recorte más rápidas .

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

Por ejemplo, un dodecaedro parece una esfera desde una distancia suficientemente grande y, por lo tanto, puede usarse para modelarlo siempre que se vea desde esa distancia o desde una distancia mayor. Sin embargo, si alguna vez es necesario verlo más de cerca, parecerá un dodecaedro. Una solución a esto es simplemente definirlo con el mayor detalle que sea necesario. 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 objetos de este tipo, habría demasiados polígonos (u otras primitivas geométricas) para que los algoritmos de superficie visible los manejen de manera eficiente.

El algoritmo propuesto prevé una estructura de datos 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 proporcionan más detalle a cada objeto. Cuando se llega a una hoja, se podrían utilizar otros métodos cuando se necesiten mayores detalles, como la subdivisión recursiva de Catmull [2] .

Lo 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 el selección, aunque a menudo es similar), 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 cubre una amplia gama de técnicas de gestión de niveles de detalle, las aplicaciones del mundo real suelen emplear métodos especializados adaptados a la información que se representa. Dependiendo de los requisitos de la situación, se utilizan dos métodos principales:

El primer método, Niveles discretos de detalle (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, es posible que se produzcan estallidos visuales cuando se cambia un modelo por otro. Esto puede mitigarse mediante la combinación alfa o la transformación entre estados durante la transición.

El segundo método, Niveles Continuos de Detalle (CLOD) , utiliza una estructura que contiene un espectro de detalle geométrico continuamente variable. Luego se puede sondear la estructura para elegir sin problemas el nivel de detalle apropiado requerido para la situación. Una ventaja significativa 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, al mismo tiempo que se reduce el detalle en su lado distante.

En ambos casos, los LOD se eligen basándose en alguna heurística que se utiliza para juzgar cuánto detalle se pierde por la reducción del detalle, como por ejemplo mediante la evaluación del error geométrico del LOD en relación con el modelo de detalle completo. Luego, los objetos se muestran con la cantidad mínima de detalle requerida 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 DLOD. Las áreas más oscuras deben representarse con mayor detalle. Se ejecuta una operación de selección adicional, descartando toda la información fuera del frustum (áreas coloreadas).

El concepto básico de LOD discreto (DLOD) es proporcionar varios modelos para representar el mismo objeto. Obtener 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 sucesivos algoritmos de LOD simplemente asumirán que esos modelos están disponibles.

Los algoritmos DLOD se utilizan a menudo en aplicaciones de alto rendimiento con pequeños conjuntos de datos que pueden caber fácilmente en la memoria. Aunque se podrían utilizar algoritmos fuera del núcleo , la granularidad de la información no es adecuada para este tipo de aplicación. Este tipo de algoritmo suele ser más fácil de poner en funcionamiento, ya que proporciona 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 "independientes", y posiblemente incluyan 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 "objetos". En lugar de calcular un error y simplificar la malla de acuerdo con esto, geomipmapping toma un método de reducción fija, evalúa el error introducido y calcula una distancia a la que el error es aceptable. Aunque sencillo, el algoritmo proporciona un rendimiento decente.

Un ejemplo de LOD discreto

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

Para simular un escenario realista de transformación, 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 límites 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 la fuente. Un método más complicado calcularía modelos adecuados según la distancia de uso elegida.

OpenGL se utiliza 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í gastos generales de comunicación. La carga de vértice adicional se obtiene mediante la aplicación de dos fuentes de luz direccionales ubicadas idealmente a una distancia infinita.

La siguiente tabla compara el rendimiento de la representación con reconocimiento de LOD y un método de detalle completo ( fuerza bruta ).

LOD jerárquico

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

Aplicaciones prácticas

Juegos de vídeo

LOD es especialmente útil en videojuegos 3D. Los desarrolladores de videojuegos quieren ofrecer a los jugadores mundos grandes, pero siempre están limitados por el hardware, la velocidad de fotogramas 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 representaban estructuras u objetos distantes. Solo se representarían los objetos cercanos y las partes más distantes se desvanecerían gradualmente, implementando esencialmente una niebla a distancia . Los videojuegos que utilizan renderizado LOD evitan este efecto de niebla y pueden renderizar áreas más grandes. Algunos ejemplos tempranos 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 selección de distancias para detalles del entorno como césped y árboles. El efecto a veces sigue siendo perceptible, por ejemplo cuando el personaje del jugador vuela sobre el terreno virtual o utiliza una mira de francotirador para observar a larga distancia. Especialmente la hierba y el follaje parecerán aparecer al acercarse, lo que también se conoce como eliminación de follaje. [4] LOD también se puede utilizar para representar 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 3D

LOD se encuentra en SIG y modelos de ciudades 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, en el LOD de un modelo se pueden considerar otras métricas como la coherencia espacio-semántica, la resolución de la textura y los atributos. El CityGML estándar 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

Ver 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) . gráficos por computadora.se . Consultado el 2 de julio de 2023 .
  3. ^ "LOD de geometría dinámica basada en GPU - 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. ^ Comunicaciones de la ACM, octubre de 1976 Volumen 19 Número 10. Páginas 547–554. Modelos geométricos jerárquicos para algoritmos de superficie visible por James H. Clark , Universidad de California en Santa Cruz. El escaneo digitalizado está disponible gratuitamente 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 . Tecnología. 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 discreto de detalle 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 proporciona una visión rápida pero eficaz de los mecanismos HLOD. Una descripción más detallada se incluye en su tesis, en https://wwwx.cs.unc.edu/~geom/papers/documents/dissertations/erikson00.pdf.