Il rumore 3D diventa obbligatorio se il terreno necessita di reti di grotte e sporgenze.
Per estrarre un'isosuperficie dalle informazioni sulla densità, le 2 tecniche più popolari sono Marching Cubes (MC) e il più recente Dual Contouring (DC). La struttura dei dati necessaria è abbastanza diversa a seconda del metodo scelto.
Come accennato in precedenza, l'articolo GPU Gems 3 di Geiss è un punto di partenza molto istruttivo per la comprensione e l'implementazione di terreni MC sulla GPU (si noti che il suo approccio MC funziona interamente sulla GPU e richiede almeno SM4 - compatibile con GS).
Poiché i dati di densità sui voxel MC possono rimanere solo sui bordi del voxel, MC classico può contornare il volume senza preservare le caratteristiche dei bordi nitidi. DC non presenta questo inconveniente poiché le informazioni sulla densità sono espresse come un punto 3D (minimizer QEF) che si trova in qualsiasi punto all'interno del voxel più il segno in ogni angolo.
D'altra parte, MC non soffre di facce che si intersecano da sole perché tutti i triangoli generati sono racchiusi nei loro corrispondenti voxel, mentre DC ha bisogno di calcoli aggiuntivi per evitare intersezioni tra facce generate. Gli autori di DC hanno affrontato questo problema in una versione migliorata del loro algoritmo.
http://www.cs.wustl.edu/~taoju/research/interfree_paper_final.pdf
http://www.cs.berkeley.edu/~jrs/meshpapers/SchaeferWarren2.pdf
Questo collega propone anche un approccio probabilmente più pulito basato sull'analisi convessa / concava per evitare autointersezioni. Utilizza anche regole di suddivisione del quad migliori per aiutare a preservare l'orientamento del bordo:
http://www2.mae.cuhk.edu.hk/~cwang/pubs/TRIntersectionFreeDC.pdf
Inoltre, il MC classico non è "privo di crepe" e può richiedere patch crack se eseguito su oculari senza restrizioni. DC non soffre di quest'ultimo problema.
Ecco un bel sondaggio completo e completo sulla maggior parte delle tecniche di estrazione di mesh:
http://www.cs.berkeley.edu/~jrs/mesh/
Un approccio octree / voxel è intrinsecamente "CSG-friendly", che semplifica la pianificazione di una strategia a livello di gioco completamente "distruttibile", ma se è necessario implementare tutto questo in un gioco, anche la profondità dell'octree dovrà essere frustum -dipendente.
Se tutto il materiale si adatta alla memoria o viene trasmesso correttamente, i dati possono anche essere utilizzati per il rendering di AO e il calcolo della fisica / collisioni.