ue4

RTX Mega Geometry: il ray tracing incontra la geometria virtualizzata

Con Unreal Engine 5 e tecnologie come Nanite, la quantità di geometria gestita in tempo reale è cresciuta enormemente. Modelli composti da milioni di triangoli possono essere visualizzati senza ricorrere ai tradizionali livelli di dettaglio preparati manualmente.

Quando però entra in gioco il ray tracing, la situazione si complica.

Un ray tracer deve poter interrogare rapidamente tutta la geometria della scena per determinare dove un raggio incontra una superficie. Per farlo utilizza strutture di accelerazione, normalmente organizzate come BVH e suddivise in BLAS e TLAS (qui si trova una breve spiegazione)

Queste strutture funzionano bene, ma diventano costose da costruire e aggiornare quando la scena contiene una quantità enorme di geometria dinamica.

È proprio qui che entra in gioco RTX Mega Geometry.

Più geometria, senza ricostruire tutto

Mega Geometry non è una nuova tecnica di illuminazione e non va confusa con DLSS (qui ne avevamo già parlato)

Il suo obiettivo è rendere più efficiente la gestione della geometria utilizzata dal ray tracing, soprattutto nelle scene molto complesse.

Uno degli elementi chiave è la suddivisione delle mesh in piccoli cluster di triangoli. In Vulkan NVIDIA introduce per questo scopo le Cluster Level Acceleration Structures, o CLAS.

L’idea è semplice: invece di gestire una mesh composta da milioni di triangoli come un unico blocco, la scena viene suddivisa in unità più piccole.

Se una parte della geometria cambia, non è quindi necessario ricostruire tutto.

Questa maggiore granularità si presta bene a sistemi di LOD dinamico, tessellation, displacement e geometria procedurale, ma soprattutto alla geometria virtualizzata.

Il collegamento con Nanite

Nanite rappresenta probabilmente il caso d’uso più interessante.

Unreal Engine può visualizzare mesh estremamente dettagliate selezionando dinamicamente solo la geometria necessaria. Il ray tracing, però, può utilizzare una rappresentazione più semplice della stessa mesh, chiamata Fallback Mesh.

Questo significa che il modello visibile sullo schermo e quello utilizzato per calcolare riflessi e ombre possono avere livelli di dettaglio differenti.

Mega Geometry punta a ridurre questa distanza, permettendo al ray tracing di lavorare con una quantità molto maggiore della geometria originale.

In pratica, i raggi possono “vedere” una scena più simile a quella realmente visualizzata dal giocatore.

LOD e streaming anche per il ray tracing

L’organizzazione a cluster permette inoltre di applicare al ray tracing principi già comuni nella rasterizzazione moderna.

Non tutta la geometria deve essere presente al massimo dettaglio e non tutto deve essere residente contemporaneamente nella VRAM.

I cluster possono essere selezionati in funzione del livello di dettaglio necessario e caricati quando servono.

Lo stesso principio vale per le acceleration structures: se in una scena enorme cambia soltanto una piccola parte degli oggetti, diventa molto più efficiente aggiornare solo quella porzione anziché ricostruire l’intera struttura.

È un cambiamento importante perché sposta il problema del ray tracing dalla semplice capacità di eseguire test di intersezione alla capacità di organizzare e aggiornare enormi quantità di geometria in pochi millisecondi.

Gears of War: E-Day sarà il primo banco di prova

Una delle prime applicazioni videoludiche di RTX Mega Geometry sarà Gears of War: E-Day.

Il titolo utilizza Nanite e sfrutterà Mega Geometry per aumentare il dettaglio geometrico utilizzato nei calcoli ray traced (qui l’annuncio ufficiale)

Elementi come vegetazione, detriti, rocce o piccoli dettagli degli oggetti potranno quindi contribuire in maniera più accurata a ombre e riflessi.

È probabilmente questo il modo migliore per interpretare la tecnologia: Mega Geometry non aggiunge dettaglio ai modelli, ma permette al ray tracing di utilizzare meglio il dettaglio che esiste già.

Perché è una tecnologia interessante

Dal punto di vista tecnico, Mega Geometry è interessante soprattutto per la direzione che indica.

Le scene future continueranno a diventare più complesse, mentre rasterizzazione e ray tracing dovranno lavorare sempre più spesso sulla stessa geometria virtualizzata.

Non sarà quindi sufficiente avere GPU capaci di tracciare più raggi. Serviranno sistemi efficienti per costruire, aggiornare e trasmettere le strutture geometriche necessarie al ray tracing.

Cluster, streaming, aggiornamenti locali e LOD dinamico sembrano destinati a diventare una parte sempre più importante di questa pipeline.

NVIDIA parla della possibilità di gestire fino a 100 volte più triangoli ray traced in alcuni scenari basati sulla geometria a cluster. Non significa ottenere cento volte più FPS: significa rendere gestibile una complessità geometrica molto più elevata.

Ed è forse questo l’aspetto più interessante di RTX Mega Geometry: non cerca semplicemente di rendere più veloce il ray tracing, ma di prepararlo alle scene di nuova generazione.

Per approfondire

Per chi vuole entrare nei dettagli tecnici, consiglio soprattutto queste risorse:

In-camera VFX con UE4.27

Siamo ormai abituati agli annunci dirompenti del team Epic sulle nuove incredibili integrazioni all’interno del famoso ambiente di sviluppo Unreal Engine.

Una delle discipline in cui gli sviluppatori della casa americana stanno investendo da diverso tempo è l’integrazione del rendering in realtime in fase di produzione visiva.
Ne è un esempio l’integrazione del mo-cap in tempo reale o del tracking della camera da ripresa.

Le funzioni in-camera VFX

Immaginiamo di avere a disposizioni un set di ripresa con un background costituito da pannelli LED (come tanti monitor) collegati tra loro che proiettano un’immagine sincronizzata con la scena virtuale presente all’interno di un progetto di Unreal Engine.
La camera di ripresa presente fisicamente all’interno dello stage, viene collegata ad un sistema di live tracking in modo che i suoi movimenti vengano tracciati e sincronizzati con la camera virtuale presente all’interno del progetto UE4 e visualizzata on-stage; in questo modo, la scena visualizzata sui display in background risulta perfettamente calibrata con la ripresa live simulando un inner-frustum calibrato con il FOV della camera
I display esterni al campo visivo, proietteranno l’ambiente virtuale circostante, in un outer-frustum che collaborerà ad una illuminazione (e riflessione) realistica dei soggetti e dei materiali ripresi.

A questo, si aggiunge la possibilità di inserire effetti visivi all’interno della ripresa virtuale, ritrovandoli immediatamente in off-axis projection, con un perfetto allineamento con la scena reale.
Grazie ai sistemi nDisplay, Live Link, Multi-User Editing, e Web Remote Control offerti da Unreal, l’utente è in grado di creare un vero e proprio set digitale virtuale.

Shooting virtuale

Ed è proprio su questa linea di sviluppo che i programmatori di Epic in collaborazione con lo studio di produzione Bullit, hanno sperimentato una piccola produzione cinematografica in virtual-real time, integrando le nuove tecnologie presenti nella versione 4.27 di Unreal Engine.

All’interno degli studi californiani della NantStudios, si è sperimentato un workflow innovativo, in cui pre-produzione, shooting e post-produzione si sono integrati all’interno di un ambiente totalmente virtualizzabile e programmabile in tempo reale.
Sfruttando la potenza di calcolo di due GPU NVIDIA Quadro A6000 ed un sistema di proiezione LED dello stage virtuale, il team è riuscito a chiudere questa produzione in soli 4 giorni, sfruttando i nuovi tools di controllo e simulazione in-camera offerti dall’ambiente grafico Unreal.
La possibilità di riconfigurare in pochissimo tempo una scena, simulandone configurazioni ambientali ed illuminazione, ha portato ad una notevole diminuzione dei tempi di produzione con, ovviamente, conseguente risparmio economico.

Inoltre, la possibilità di provare nuove configurazioni in realtime, ha permesso un approccio più creativo e spontaneo, facilitando la sperimentazione di nuovi setup, consentendo al regista di valutarne immediatamente la resa.

Questo nuovo paradigma di produzione porta con sè anche una rivoluzione nei flussi di lavoro normalmente configurati in una produzione; riunire sul set, durante le riprese, tutti i teams coinvolti normalmente nelle fasi di pre-produzione e post-produzione, porta ad una collaborare in tempo reale sulla scena in fase di shooting, riducendo eventuali incoerenze che normalmente possono verificarsi in fase di lavorazione non simultanea.

Un innovativo modo di concepire la produzione visiva troverà presto integrazioni sempre più diffuse nei vari ambienti di sviluppo, avvicinando settori e professionalità che normalmente sono separati in comparti differenti della computer grafica.

Per approfondire: visita il sito UnrealEngine

Visualizza l’hardware raccomandato

FaceTracking in tempo reale con Unreal MetaHumans Demo

All’annuncio della nuova piattaforma di creazione e rigging MetaHuman, Epic ha deciso di anticipare la distribuzione della parte Creator con un progetto demo in Unreal in cui è possibile trovare due personaggi già realizzati.
Ho provato a configurare FaceLink per tracciare il mio volto e associarlo ai personaggi MetaHuman presenti.

Requisiti:

  • Windows 10, build 1902 or sup con supporto a DirectX 12
  • Scheda video NVIDIA con supporto al Raytracing in realtime
  • Unreal Engine 4.26.1 o sup.
  • Telefono IPhone X o sup.
  • App FaceLink

MetaHuman è una nuova piattaforma cloud creata che permette la creazione parametrica di personaggi e il loro successivo RIG, rendendoli pronti per essere utilizzati all’interno dell’ambiente di sviluppo Unreal Engine.
L’utilizzo dell’app, verrà gestita tramite un collegamento web basato sul protocollo Unreal Engine Pixel Streaming e consentirà la creazione di nuovi personaggi tramite la parametrizzazione dei tratti somatici che andranno a scolpire la mesh tridimensionale del volto.
In questo modo, si potrà osservare in tempo reale la modifica che tali impostazioni portano al personaggio.

MetaHuman Creator allows anyone to create realistic digital people

Gli utenti saranno in grado di applicare stili di capelli, utilizzare campionari di abbigliamento preconfigurato e 18 tipologie di normotipo corporali.
Inoltre, il Creator gestirà in modo automatica la generazione dei vari LOD variabile in base alle componenti (ad esempio il volto supporto fino a 8 LOD mentre il corpo 4 LOD configurati tramite il componente LOD sync di UE4).

GroomLODSequence.png

Quando terminato l’asset, si potrà scaricare tramite Quixel Bridge, il tutto già completamente riggato, con LOD già definiti e pronto all’eventuale motion capture in Unreal Engine.
Sarà possibile anche utilizzare i singoli file generati in formato Maya.

Attualmente il face tracking è supportato solo tramite l’app FaceLink, ma Epic promette una prossima integrazione con Faceware, JALI Inc., Speech Graphics, Dynamixyz, DI4D, Digital Domain, and Cubic Motion, oltre ovviamente alla possibilità di registrazione manuale tramite keyframes.

Maneggiando un po’ il progetto DEMO, devo ammettere che la particolare capacità di deformazione delle mesh e l’ottima configurazione delle texture, rende il risultato veramente fenomenale, soprattutto se si pensa al risparmio di tempo che tale elaborazione, con relative pesature, accompagnano le attività di creazione e riggin dei personaggi all’interno dei software 3D.

Visto che ad oggi, l’APP di creazione non è ancora utilizzabile, mi sono concentrato sulla configurazione face tracking tramite l’app FaceLink.

FaceLink

La configurazione dell’App è semplicissima.
E’ sufficiente installarla ed avviarla abilitando nelle impostazioni (icona a forma di rotellina) la voce STREAM HEAD ROTATION.

Infine, sempre nelle impostazioni, cliccando sulla voce LIVE LINK possiamo accedere alle impostazioni in cui inserire l’indirizzo IP del computer sul quale è avviato Unreal Engine.

Ovviamente il computer deve condividere la stessa rete Wi-Fi del cellulare.

Per approfondire…

Se vuoi approfondire la tematica del FaceTracking markerless, puoi leggere questo mio articolo

Configurazione in Unreal Engine

Apriamo Unreal Engine, accertiamoci di avere l’ultima versione dell’Engine installato e successivamente cerchiamo nel MARKETPLACE il progetto MetaHuman, procedendo con l’installazione.

Dopo averlo installato, clicchiamo sul pulsante CREA PROGETTO, scegliamo la posizione sul nostro computer nella quale creare il nuovo progetto UE4 basato sul template MetaHumans.

A questo punto possiamo aprire il progetto appena creato e attendere qualche minuto.

Una volta aperto Unreal, dobbiamo accedere alla finestra FaceLink (se non è visibile la possiamo abilitare dal menù Windows->FaceLink.

Se a questo punto attiviamo l’app FACELINK sul cellulare, dovremmo vedere apparire il nostro ID all’interno dell’elenco delle sorgenti.
Questo significa che Unreal sta ricevendo il flusso di capturing dal nostro cellulare (ma non sa ancora a cosa attribuirlo).

In caso non compaia il nostro ID, verificare le impostazioni di firewall o antivirus presenti nel computer.

Per prima cosa, andiamo a cancellare l’oggetto METASHAPESAMPLE_SEQUENCE. Si tratta di una sequenza video dimostrativa che parte appena mandiamo in PLAY la scena.

Dopodiché, cerchiamo l’oggetto BP_metahuman_001 che identifica il blueprint associato al personaggio donna della nostra scena (si consideri che all’interno della scena, dietro un “muro” presente alle spalle del personaggio donna, si nasconde un personaggio uomo).

Nelle proprietà del componente troviamo la voce di configurazione di FaceLink. Possiamo impostare l’ID del nostro cellulare e attiviamo la voce LLINK FACE HEAD.

A questo punto possiamo attivare un PLAY SIMULATIVO (attivabile anche tramite la combinazione di tasti ALT+S) e vedremo il personaggio interpretare le nostre smorfie.

Devo dire che la facilità di configurazione del face tracking e la morbidezza espressiva dei personaggi mi ha impressionato positivamente. Qualche limite sul tracciamento con facelink lo attribuisco alla parametrizzazione standard utilizzata nel personaggio e alla tecnologia markerless che introduce inevitabilmente qualche imprecisione.
Sicuramente c’è da attendere la parte Creator per poter completare la valutazione di questa nuova tecnologia ma, comunque, dobbiamo ammettere la semplificazione verso la quale si stanno spingendo i software di rigging che, salvo esigenze particolari, diventano accessibili ai più giovani progettisti 3D.

Per approfondire:
https://www.unrealengine.com/en-US/digital-humans

MoCap facciale markerless

Proviamo FACEWARE, un software di Mocap markerless compatibile con le piattaforme Unity e Unreal.

Usare in ambito “domestico” Mocap facciale oggi è sempre più comune grazie alla disponibilità di prodotti software accessibili e basati su algoritmi markeless affidabili.
L’utilizzo di tecniche di tracking markless, solleva numerose problematiche di carattere tecnico-implementativo a causa delle numerose variabili (luce, ambiente, conformazione del volto, pattern recognize, ecc.) e delle difficoltà nell’interpretare movimenti muscolari interni (come la mascella).
La ricerca scientifica in tale ambito sta facendo passi da gigante, grazie anche all’affinamento degli algoritmi di face-recognize (utilizzati oggi all’interno dei dispositivi mobile), all’integrazione di processi AI e alla potenza di calcolo sempre maggiore presente nei nostri computer domestici.
Alcuni dei più moderni approcci in tale ambito, fa uso di dataset di ricognizioni facciali con marcatori usati come riferimento per l’implementazione di algoritmi di mappatura non-lineare delle pelle, risalendo così a “pose” di riferimento.
La creazione di questi archivi, ovviamente, implica un impegno notevole al fine di ricostruire un dominio sufficiente per la ricognizione delle movimenti (si consideri che alcuni lavori di ricerca hanno addirittura costretto l’utilizzo di marker applicati sui denti per un più preciso tracciamento dei movimenti mascellari di riferimento).

from Gaspard Zoss, Derek Bradley, Pascal Bérard, and Thabo Beeler. 2018. An Empirical
Rig for Jaw Animation. ACM Transactions on Graphics 37, 4 (2018), 59:1—-59:12.
https://doi.org/10.1145/3197517.3201382

L’applicazione di queste tecniche trova applicazione in vari ambiti, da quello medico-scientifico (per l’identificazione e l’individuazione di deformazioni posturali e/o muscolari) all’ambito rappresentativo (ad esempio cinematografico) dove permette di creare sincronismo espressivo fra attori e personaggi digitali, facilitando la creazione di “alterego” virtuali con cui interagire in ambiente VR anche da remoto.
L’utilizzo di “rig” virtuali e morph-pose digitali, stanno portando a risultati sempre più affidabili anche in contesti low-budget, con l’utilizzo di camere di media risoluzione in ambienti luminosi eterogenei.

Proviamo Faceware studio

Fra i tanti software oggi disponibili, ho voluto provato FACEWARE STUDIO, scaricabile in TRIAL dal sito https://facewaretech.com/software/studio/
Questo programma consente l’analisi in tempo reale delle deformazioni facciali senza l’utilizzo di marker e con una semplice camera (anche quella integrata nel notebook), dopo una rapidissima calibrazione iniziale.

Unreal Engine 4.25 supporta le nuvole di punti

Ora è possibile importare, visualizzare ed interagire con le nuvole di punti LIDAR o fotogrammetriche in UE4

Importante aggiornamento nella versione 4.25 del famoso ambiente di sviluppo in realtime di casa EPIC GAMES. Grazie all’integrazione di un precedente plugin esterno, ora è possibile importare e utilizzare in modo nativo le nuvole di punti elaborate con strumentazione LIDAR o con fotogrammetria. Questo aggiornamento, fortemente orientato al settore architettonico/ingegneristico, segna un importante scelta di mercato da parte di Epic Games, che accontenta quella parte di utilizzatori che usano Unreal Engine per elaborazioni ArchView interattive (e non) sfruttando il motore di render e gli algoritmi Raytracing presenti all’interno.