LOD nei giochi moderni [chiuso]


14

Attualmente sto lavorando alla tesi del mio master su LOD e semplificazione delle maglie e ho letto molti articoli accademici e articoli sull'argomento. Tuttavia, non riesco a trovare abbastanza informazioni su come LOD viene utilizzato nei giochi moderni. So che molti giochi usano una sorta di LOD dinamico per il terreno, ma che dire altrove?

Il livello di dettaglio per la grafica 3D, ad esempio, sottolinea che il LOD discreto (in cui gli artisti preparano in anticipo diversi modelli) è ampiamente utilizzato a causa del sovraccarico prestazionale del LOD continuo. Quel libro è stato pubblicato nel 2002, tuttavia, e mi chiedo se le cose siano diverse ora. Ci sono state delle ricerche sull'esecuzione di LOD dinamici usando lo shader di geometria ( questo documento per esempio, con la sua implementazione in ShaderX6), sarebbe usato in un gioco moderno?

Per riassumere, la mia domanda riguarda lo stato di LOD nei videogiochi moderni, quali algoritmi vengono utilizzati e perché? In particolare, viene utilizzata la semplificazione continua dipendente dalla vista o l'overhead di runtime rende l'utilizzo di modelli discreti con una corretta miscelazione e impostori una soluzione più attraente? Se vengono utilizzati modelli discreti, viene utilizzato un algoritmo (ad esempio cluster di vertici ) per generarli offline, gli artisti creano manualmente i modelli o forse viene utilizzata una combinazione di entrambi i metodi?


Suggerirei di aggiungere un tag di "rendering", poiché sei puramente interessato al LOD grafico, mentre il LOD può essere applicato anche alla fisica, all'IA e a qualsiasi altra area in cui l'importanza può essere ridotta in base alla distanza da qualcosa o dalle prestazioni.
Kaj,

@Kaj: buon punto. Sto parlando della semplificazione della mesh poligonale in particolare.
Firas Assaad,

Oh, sembra che abbiamo modificato allo stesso tempo (ho dimenticato di poter aggiungere tag, sentiti libero di rimuovere la programmazione grafica: o \). Proverò a trovare una risposta più tardi: oggi sono in crisi.
Kaj,

Risposte:


9

Per ora sembra che il LOD discreto sia ancora preferito, ma resta da vedere se questo cambierà con l'hardware della console di prossima generazione.

Per quello che vale Tom Forsyth ha scritto molto sul LOD continuo, che chiama "mesh progressivo". Game Programming Gems 2 pretende di avere uno di questi articoli, ma sembra rispecchiarsi qui .

Credo che uno dei giochi di Tom sia stato distribuito utilizzando il mesh progressivo sull'hardware della console di ultima generazione. Non credo sia il calcolo delle persone in testa di cui le persone sono preoccupate per il LOD continuo. Penso che sia più che LOD discreto sia più facile. Il LOD continuo consente un sollevamento più pesante nella tubazione degli strumenti e non presenta vantaggi sufficientemente chiari.

Per quanto riguarda la generazione di LOD discreti, utilizziamo una combinazione di strumenti automatici e creazione di artisti. L'SDK DirectX viene fornito con alcuni elementi per ridurre automaticamente la geometria e credo che lo usiamo come primo passaggio, se la qualità non è abbastanza buona, gli artisti generano i LOD discreti a mano o utilizzando strumenti aggiuntivi in ​​Maya.


1
Penso che il Messia abbia usato ampiamente la mesh progressiva, ehi eoni fa il mondo era in fermento per questo. Ma sono d'accordo, il lod statico sembra essere ancora prevalente dove guardo. È difficile decidere algoritmicamente quali dettagli sono fondamentali da preservare, anche se molti articoli di SigGraph sono stati scritti al riguardo, come sono sicuro che OP sa. Per inciso, un metodo carino che ho sempre ricordato era il capitolo del "vero impostore" in una delle gemme di programmazione del gioco, credo che ... dove usano gli impostori con la mappatura dell'occlusione parralax. So di aver visto più articoli scritti seguendo la stessa metodologia (forse Fabio Policarpo?)
Kaj

1
Un altro avvertimento contro LOD continuo è la quantità fissa di memoria disponibile nell'ambiente console. Gli oggetti discreti ti consentono di eliminare i modelli ad alta risoluzione e tutte le loro trame / shader dipendenti e scambiarli in un modello molto più economico con un semplice shader e una trama più piccola pre-combinata. Nei titoli del mondo aperto, lottare su quali dati riempie la memoria disponibile limitata è spesso una lotta più grande dei cicli CPU / GPU.
Wkerslake,

6
  • Comandante supremo (1 e 2) - questo RTS orgoglioso del fatto che è possibile rimpicciolire uniformemente fino in fondo per vedere una mappa del campo di battaglia, quindi ingrandire completamente un'area e gestirla. Usa LOD molto bene mentre ingrandisci e riduci per evitare di sovraccaricare la scheda grafica e ad un certo livello di zoom indietro le maglie vengono sostituite da immagini 2D di che tipo di unità sono, in modo che la mappa del campo di battaglia possa chiaramente mostra dove sono le cose (dato che ovviamente una mesh 3D con dettagli molto bassi a 20.000 piedi sarebbe indistinguibile). Puoi vedere l'effetto di sostituzione 2D abbastanza chiaramente nei primi secondi di questo video .
  • RollerCoaster Tycoon 3 - Simile a Supreme Commander, questo gioco ti consente di ingrandire e rimpicciolire a piacimento, visualizzare l'intero parco a tema o gestire un singolo sottobicchiere. Non utilizza la sostituzione di immagini 2D ma grazie a LOD tutto rimane liscio; non solo le maglie grandi si riducono in termini di qualità, ma piccoli dettagli come le persone che camminano scompaiono quando si ingrandisce abbastanza.
  • La leggenda di Zelda: Wind Waker - Mentre navighi in mare aperto puoi guardarti intorno e vedere le isole più vicine a te; sono solo sagome delle isole, tuttavia, e i modelli 3D reali non si caricano finché non ti avvicini a un'isola. Anche altre caratteristiche dell'isola si caricano, come nemici e tifoni nelle acque vicine; sfortunatamente il giocatore può vederli "pop" in esistenza mentre si avvicina, ma nel complesso è una buona tecnica che impedisce di sovraccaricare l'hardware del Nintendo GameCube dando al giocatore una sensazione abbastanza accurata di navigare in mare e di essere in grado di distinguere le isole di riferimento in la distanza.
  • Elder Scrolls IV: Oblivion - Non gioco a questo gioco da molto tempo, ma so che utilizza modelli che si stagliano o con dettagli molto bassi per strutture di riferimento distanti, come l'alta torre di una delle città e montagne lontane .

LOD non viene utilizzato solo per il terreno, ma anche per le sagome di strutture distanti e per le viste a volo d'aquila dei giochi di strategia / simulazione. Non conosco i dettagli degli algoritmi e immagino che questa sia la parte principale della tua domanda, ma volevo darti alcuni esempi dello stato di LOD nei videogiochi moderni.


4

Un approccio moderno al LOD continuo è la tassellatura hardware. La tassellatura hardware è stata implementata in DirectX 11 e fornisce essenzialmente una suddivisione programmabile delle superfici. Poiché questo è implementato sulla GPU, consente dettagli molto più elevati rispetto a quelli forniti dalla tassellatura generata dalla CPU. Suddividendo le superfici in base alla distanza della vista, ad esempio, è possibile fornire una forma di LOD continuo.

La tessellazione hardware è una nuovissima funzionalità delle GPU e non ci sono molti giochi che la utilizzano. Sospetto che i giochi che lo utilizzano principalmente come drop-in per il bump mapping - anziché la bump map nel pixel shader, puoi modificare la geometria effettiva. Probabilmente c'è ancora molto spazio per ulteriori ricerche sulla semplificazione e il miglioramento della mesh usando la tassellatura hardware.

Altre risorse:


Fino ad ora lo considererei più una tecnologia da vetrina che pratica, dato che stai davvero escludendo un sacco di pubblico target. Ma sì, le procedure potrebbero essere la via da seguire in qualche forma o semplicemente non sono sicuri che sia l'attuale implementazione di MS. Il tempo lo dirà.
Kaj,


3

LOD sta cercando di mantenere costante la quantità di elaborazione nel tempo. Il livello gerarchico di dettaglio è l'unico modo per farlo per scene con dettagli considerevoli. Se sei abbastanza vicino a un oggetto, questo si decompone in più oggetti. Questo LOD ricorsivo fornisce non solo un semplice meccanismo per gestire i punti di transizione per passare a nuovi livelli di dettaglio, ma consente anche al conteggio delle chiamate di rendering di rimanere pressoché invariato, non importa quanto lontano / vicino arrivi agli oggetti del tuo mondo.

Va benissimo avere ottimi LOD per le tue maglie e trame, ma in almeno un gioco che ho spedito su PS2, il modo in cui ho risparmiato tempo è stato solo quello di raggruppare tutto il fogliame dei settori in singole chiamate di disegno. Questo richiamo più ampio ha richiesto quasi il 90% di tempo in meno rispetto al rendering di tutte le varianti low lod, anche con transizioni di materiale attentamente ordinate e rendering batch di ogni tipo di mesh. Quindi, considera LOD con cura. Non si tratta solo di singoli oggetti. Riguarda l'intera fase di rendering.


1

Un altro argomento da considerare nel tuo articolo (anche se un'intera tesi potrebbe essere facilmente scritta solo su questo argomento da solo) è la generazione procedurale del terreno.

Molti progetti moderni stanno iniziando a utilizzare la generazione procedurale in tempo reale per produrre enormi distese di terreno (Outerra, Infinity (INovae), per citarne alcuni tra i più importanti). Il LOD discreto non è semplicemente un'opzione, a causa della natura procedurale delle maglie.

Questi terreni usano spesso strutture di partizionamento gerarchico come i quadrifogli per determinare il LOD e generare una mesh della risoluzione appropriata in base alla profondità del nodo dell'albero.

Senza l'uso del LOD continuo, questi fantastici progetti sarebbero semplicemente impossibili.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.