Qui di seguito il making of del progetto “test” che ho sviluppato con Unreal Engine relativo alla realizzazione di un'interno pubblicato su treddi LINK , e finalizzato alla migliore comprensione dell'utilizzo del software nell'ambito architettonico.

3d999f2fd65738161bc9a709b5586566.jpg

Suddividero' il tutto in 3 parti:

1. Introduzione, preparazione all'esportazione ed integrazione con Unreal
2. Setup scena, illuminazione, uv e materiali
3. Rendering, post produzione, collisioni ed interazione

Una breve premessa riguardante Unreal. L'ambito del programma è esclusivamente videoludico, è stato sviluppato nel corso degli anni proprio per tal funzione. Con le ultime release il software ha implementato l'utilizzo degli shader PBR (physically based rendering) ed è stato integrato l'enlighten (un sistema di illuminazione globale in realtime), guadagnando in tal maniera un notevole miglioramento riguardo la resa.
Il programma non permette di modellare oggetti 3d complessi, ha la possibilità di realizzare delle semplici primitive 3d e modificarle, ed aggiungo per nulla utili. Le geometrie debbono quindi e comunque essere modellate tramite altri software, qualsiasi essi siano, ed esportate in formato .fbx
Ne consegue che il suo utilizzo può essere solo d'ausilio proprio allo sviluppo dei rendering, animazioni, walktrough e visite interattive. Praticamente tutto il progetto dovrebbe essere bello che pronto (almeno cosi' io ho agito) e quindi importato all'interno del programma, anche per meglio ottimizzarne i tempi di sviluppo.
Infine, se paragonati ai rendering realizzati con i classici programmi tradizionali come V-Ray, mental ray, Iray etc, le immagini derivanti da Unreal saranno decisamente inferiori in termini di pura resa grafica e accuratezza, ma lo sviluppo di un progetto tramite il software, offre in molti casi dei vantaggi che a mio parere e specialmente nel campo dei rendering architettonici, vanno meglio a comunicare il progetto stesso, acquistando anche a volte, più importanza del fotorealismo. 

Durante la spiegazione del making, cercherò di farvi qualche appunto per meglio evidenziare alcune specifiche del software. 

PREPARAZIONE ALL'ESPORTAZIONE
Nello sviluppo del progetto ho avuto modo di organizzare tutti gli oggetti presenti nella scena singolarmente, ho disposto il tutto in maniera tale da poter selezionare ed ispezionare ogni geometria presente nel progetto. Disponevo quindi ad esempio, della pavimentazione, muri, arredi, complementi etc., quindi nessun gruppo e/o insiemi di oggetti uniti.
50f4918579815e1b58b9fa07f0442cea.jpg
Inoltre le geometrie sono state ottimizzate sia in termini di numero vertici (ho ridotto considerevolmente il numero di loop nella quasi totalità delle mesh, definendone al minimo necessario, nel caso di oggetti poligonali suddivisi, il numero di iterazioni, questo per rendere più agevole la visualizzazione all'interno di Unreal) che di UV map.

Queste ultime sono state riviste in funzione delle impostazioni che Unreal richiede. Praticamente la necessità che il software impone è quella riguardante la creazione di due UV. La prima, fondamentale, riguarda l'uso per le connessioni agli shader, quindi le texture di diffusione, riflessione, bump etc. La seconda che è altrettanto importante interessa la mappa dell'illuminazione. In concreto il software genera sulla seconda UV il baking dell'illuminazione, cosi le ombre e le luci vengono proiettate sulle stesse UV. Se queste ultime non sono sviluppate con criterio, la qualità e definizione dell'illuminazione all'interno del software verrà a mancare. E' possibile anche lasciare questo compito alla gestione automatica del programma, ma l'accuratezza delle UV nella maggior parte dei casi è scadente. Comunque su questo punto approfondirò meglio nella seconda parte, cosi come sulla illuminazione globale, in quanto le due cose sono intrinsecamente legate.

Altra specifica che bisogna attenzionare prima dell'esportazione è quella riguardante il pivot degli oggetti e la loro collocazione nello spazio 3D. In generale ho suddiviso le geometrie in due categorie, quelle che necessitavo rimanessero “ferme” nello spazio (in modo da averne l'esatta corrispondenza e aggancio durante l'importazione es. pavimento, solai, muri) rispetto alle altre, come gli arredi e i complementi, di cui mi riservavo la possibilità di traslarle a mio piacimento e di ottimizzarle singolarmente in funzione di alcuni aspetti su Unreal.  
La collocazione dei muri, pavimentazione e solai era quella che avevo già impostato, assegnando però al pivot le coordinate 0,0,0.
Per tutti gli altri oggetti invece ho collocato sia il loro posizionamento che il pivot a 0,0,0

Altro punto essenziale è quello che riguarda la suddivisione degli id. Unreal essenzialmente riesce ad interpretare le geometrie con dei sotto elementi e/o delle selezioni di differenti poligoni, sempre della stessa mesh. Questo torna utilissimo nel caso di singole geometrie con selezioni di diversi materiali al loro interno, come ad esempio il pavimento (unica geometria) che disponeva di 3 tipologie di finiture differenti. L'unica specifica quando si ha a che fare con questi oggetti, è quella di assegnare tante quante tipologie di materiali si intende sfruttare sui rispettivi id. In tal maniera Unreal riesce a tenerne conto e prepara la mesh a distinti input di materiali.

Riguardo il sistema metrico conviene utilizzare i cm., in quanto è quello che Unreal considera corretto. 

Una volta che quanto sopra è stato attenzionato si può procedere all'esportazione in formato .FBX. Queste sono le specifiche ho utilizzato.
30313ab49eca8026f62ec3b1e5dfee03.jpg

SETUP SCENA PER UNREAL
Caricato il programma basta creare una scena pulita senza bisogno di inserire gli asset che il programma propone. Fatto questo ho importato le singole geometrie con questi parametri
940ad62cfcde20c7d53e2f4f19a3ba86.jpg
La prima cosa dopo aver caricato tutte le mesh è stata quella di collocare queste ultime nello spazio 3d. Una volta importate basta resettarne le coordinate su 0,0,0. Cosi facendo il programma tiene conto dei valori del pivot per come sono stati precedentemente impostati e le posiziona correttamente.

Per adesso è tutto, alla prossima :)