LOD en juegos modernos [cerrado]

14

Actualmente estoy trabajando en mi tesis de maestría sobre LOD y la simplificación de mallas, y he estado leyendo muchos artículos académicos y artículos sobre el tema. Sin embargo, no puedo encontrar suficiente información sobre cómo se usa LOD en los juegos modernos. Sé que muchos juegos usan algún tipo de LOD dinámico para el terreno, pero ¿qué pasa en otros lugares?

Level of Detail for 3D Graphics, por ejemplo, señala que el LOD discreto (donde los artistas preparan varios modelos por adelantado) se usa ampliamente debido a la sobrecarga de rendimiento del LOD continuo. Sin embargo, ese libro fue publicado en 2002, y me pregunto si las cosas son diferentes ahora. Ha habido alguna investigación en la realización de LOD dinámico utilizando el sombreador de geometría ( este documento, por ejemplo, con su implementación en ShaderX6), ¿se usaría en un juego moderno?

Para resumir, mi pregunta es sobre el estado de LOD en los videojuegos modernos, ¿qué algoritmos se usan y por qué? En particular, ¿se utiliza la simplificación continua dependiente de la vista o la sobrecarga en tiempo de ejecución hace que el uso de modelos discretos con una combinación adecuada e impostores sea una solución más atractiva? Si se usan modelos discretos, ¿se usa un algoritmo (por ejemplo, agrupación de vértices ) para generarlos sin conexión, ¿los artistas crean manualmente los modelos o tal vez se usa una combinación de ambos métodos?

Firas Assaad
fuente
Sugeriría agregar una etiqueta de 'representación', ya que está puramente interesado en los gráficos LOD, mientras que el LOD también se puede aplicar a la física, la IA y cualquier otra área donde la importancia se puede reducir en función de la distancia a algo o el rendimiento.
Kaj
@Kaj: Buen punto. Estoy hablando de la simplificación de malla poligonal en particular.
Firas Assaad
Oh, parece que hemos editado al mismo tiempo (olvidé que podía agregar etiquetas, siéntase libre de eliminar la programación de gráficos: o \). Trataré de encontrar una respuesta más tarde, hoy estoy en crisis.
Kaj

Respuestas:

9

Por ahora parece que todavía se prefiere LOD discreto, pero queda por ver si esto cambiará con la próxima generación de hardware de consola.

Por lo que vale, Tom Forsyth ha escrito mucho sobre LOD continuo, al que llama "mallado progresivo". Game Programming Gems 2 pretende tener uno de estos artículos, pero parece reflejarse aquí .

Creo que uno de los juegos de Tom se envió usando mallado progresivo en el hardware de la consola de última generación. No creo que sea la sobrecarga de cómputo que a la gente le preocupa con la LOD continua. Creo que es más que LOD discreto es más fácil. El LOD continuo hace un levantamiento más pesado en la tubería de herramientas y no tiene suficientes ventajas claras.

En cuanto a la generación de LOD discretos, utilizamos una combinación de herramientas automáticas y creación de artistas. El DirectX SDK viene con algunas cosas para reducir automáticamente la geometría y creo que lo usamos como primer paso, si la calidad no es lo suficientemente buena, los artistas generan los LOD discretos a mano o usando herramientas adicionales en Maya.

Dan Olson
fuente
1
Creo que Mesías usó mallas progresivas ampliamente, parece que hace eones el mundo estaba alborotado. Pero estoy de acuerdo, el alojamiento estático todavía parece prevalecer donde miro. Es difícil decidir algorítmicamente qué detalle es crítico preservar, aunque muchos documentos de SigGraph se han escrito sobre eso, estoy seguro de que OP lo sabe. Por otro lado, creo que un lindo método que siempre recordé fue el capítulo 'verdadero impostor' en una de las gemas de programación de juegos ... donde usan impostores con mapeo de oclusión de parralax. Sé que he visto más documentos escritos siguiendo la misma metodología (¿Fabio Policarpo, tal vez?)
Kaj
1
Otro golpe contra el LOD continuo es la cantidad fija de memoria disponible en el entorno de la consola. Los objetos discretos le permiten desechar los modelos de alta resolución y todas sus texturas / sombreadores dependientes y cambiar en un modelo de costo mucho más bajo con un sombreador simple y una textura más pequeña combinada previamente. En los títulos de mundo abierto que luchan por los datos que llenan, la memoria disponible limitada es a menudo una lucha mayor que los ciclos de CPU / GPU.
wkerslake
6
  • Comandante Supremo (1 y 2): este RTS se enorgullece del hecho de que puedes alejarte suavemente para ver un mapa del campo de batalla, y luego acercar un área y administrarla. Utiliza LOD muy bien al acercar y alejar para evitar sobrecargar la tarjeta gráfica, y en un cierto nivel de alejamiento las mallas se reemplazan por imágenes 2D de qué tipo de unidad son, de modo que el mapa del campo de batalla puede claramente muestra dónde están las cosas (ya que obviamente una malla 3D de muy bajo detalle a 20,000 pies sería indistinguible). Puede ver el efecto de reemplazo 2D con bastante claridad en los primeros segundos de este video .
  • RollerCoaster Tycoon 3 : similar a Supreme Commander, este juego te permite acercar y alejar a voluntad, ver todo tu parque temático o administrar una sola montaña rusa. No utiliza el reemplazo de imágenes 2D, pero debido a LOD, todo sigue siendo fluido; las mallas grandes no solo reducen su calidad, sino que pequeños detalles, como las personas que caminan, desaparecen cuando se aleja lo suficiente.
  • Leyenda de Zelda: Wind Waker : mientras navegas en mar abierto, puedes mirar alrededor y ver las islas más cercanas a ti; Sin embargo, solo son siluetas de las islas, y los modelos 3D reales no se cargan hasta que te acercas a una isla. También se cargan otras características de la isla, como enemigos y tifones en las aguas cercanas; desafortunadamente, el jugador puede verlos "aparecer" a medida que se acerca, pero en general es una buena técnica que evita sobrecargar el hardware de Nintendo GameCube mientras le da al jugador una sensación bastante precisa de navegar en los mares y ser capaz de distinguir islas emblemáticas en la distancia.
  • Elder Scrolls IV: Oblivion : no he jugado a este juego en mucho tiempo, pero sé que utiliza siluetas o modelos con pocos detalles para estructuras históricas distantes, como la torre alta de una de las ciudades y montañas distantes .

LOD no solo se usa para terreno, sino también para siluetas de estructuras distantes y para vistas de águila de juegos de estrategia / simulación. No conozco los detalles de los algoritmos, y supongo que esa es la parte principal de su pregunta, pero quería darle algunos ejemplos del estado de LOD en los videojuegos modernos.

Ricket
fuente
4

Un enfoque moderno para la LOD continua es la teselación de hardware. La teselación de hardware se implementó en DirectX 11 y esencialmente proporciona una subdivisión programable de superficies. Como esto se implementa en la GPU, permite detalles mucho más altos que los proporcionados por la teselación generada por la CPU. Al subdividir las superficies en función de la distancia de visualización, por ejemplo, puede proporcionar una forma de LOD continuo.

La teselación de hardware es una característica muy nueva de las GPU y no hay muchos juegos que la utilicen. Sospecho que los juegos que lo usan principalmente como un complemento para el mapeo de relieve, en lugar de un mapa de relieve en el sombreador de píxeles, puede modificar la geometría real. Probablemente haya mucho espacio para futuras investigaciones sobre la simplificación y mejora de mallas utilizando la teselación de hardware.

Algunos recursos más:

thekidder
fuente
Hasta el momento lo consideraría más una tecnología de exhibición que práctica, ya que realmente se excluye a una gran cantidad de público objetivo. Pero sí, los procedimientos pueden ser el camino a seguir en alguna forma o forma, pero no estoy seguro de que sea la implementación actual de MS. El tiempo dirá.
Kaj
3

LOD se trata de tratar de mantener constante la cantidad de procesamiento a lo largo del tiempo. El nivel jerárquico de detalle es la única forma de hacerlo para escenas de considerable detalle. Si está lo suficientemente cerca de un objeto, se descompone en varios objetos. Este LOD recursivo proporciona no solo un mecanismo simple para manejar los puntos de transición para cambiar en nuevos niveles de detalle, sino que también permite que el recuento de llamadas de procesamiento permanezca casi igual sin importar qué tan lejos / cerca llegue a sus objetos mundiales.

Está muy bien tener excelentes LOD para sus mallas y texturas, pero en al menos un juego que envié en la PS2, la forma en que ahorré tiempo fue agrupar todo el follaje en sectores en llamadas de un solo sorteo. Esta llamada de sorteo más grande tomó casi un 90% menos de tiempo que el procesamiento de todas las variantes de bajo alojamiento, incluso con transiciones de material cuidadosamente ordenadas y procesamiento por lotes de cada tipo de malla. Por lo tanto, considere LOD con cuidado. No se trata solo de objetos individuales. Se trata de toda la fase de renderizado.

Richard Fabian
fuente
1

Otro tema a considerar en su trabajo (aunque podría redactarse fácilmente una tesis completa solo sobre este tema) es la generación de terreno procesal.

Muchos proyectos modernos están comenzando a utilizar la generación de terreno procesal en tiempo real para producir extensiones masivas de terreno (Outerra, Infinity (INovae), por nombrar algunos de los más destacados). La LOD discreta simplemente no es una opción, debido a la naturaleza procesal de las mallas.

Estos terrenos a menudo usan estructuras de partición jerárquicas, como los cuadrúpedos, para determinar la LD, y generan una malla de la resolución adecuada en función de la profundidad del nodo del árbol.

Sin el uso de continuos LOD, estos increíbles proyectos simplemente serían imposibles.

bfishman
fuente