In questo videotutorial vedremo come importare i modelli 3D scaricati da Adobe Stock in Unity, impostando le Textures PBR sia per il built-in Shader che per la Universal Render Pipeline.



Trascrizione del video

Salve a tutti! In questo videotutorial vedremo come importare i modelli 3D scaricati da Adobe Stock in Unity, impostando le Textures PBR sia per il built-in Shader che per la Universal Render Pipeline.

Tra questi due motori di rendering ci sono infatti alcune piccole differenze che esamineremo in questo tutorial, per cui vi consiglio di guardarlo tutto, fino alla fine. Non mostrerò come farlo per High Definition Rendering Pipeline perché non cambia molto rispetto a Universal Rendering Pipeline.

Per fare un esempio pratico utilizzerò un chiamato Business Jet. Che ho scaricato proprio dal sito Adobe Stock 3D.

Sul sito Adobe Stock, infatti, sono disponibili migliaia di modelli 3D. Ciascun modello 3D è fornito in formato OBJ con PBR Textures a corredo, per cui può essere utilizzato in praticamente tutti i software di grafica 3D motori di gioco, come ad esempio Unity, Unreal, Blender, 3D Studio MAX e altri ancora.

Le Textures dei modelli sono in formato PNG e contengono i canali separati per il PBR Metallic Workflow, per cui avremo le Textures per i canali Base Color, Normal, Metallic, Roughness, Glow e Opacity.

I materiali di default di Unity richiedono però l'informazione Smoothness integrata nella Texture Metallic. Inoltre, Smoothness è opposta rispetto a Roughness, che ci viene fornita nel pacchetto Adobe.

È possibile convertire e impacchettare l'informazione Metallic mediante software esterni, ma in realtà in Unity esiste un modo per specificare proprio le Textures del Metallic Workflow come immagini separate e lo vedremo tra pochissimo.

Vediamo quindi come importare e configurare questi modelli 3D in Unity, iniziando con un progetto nel quale si fa uso del built-in shader.

Per prima cosa, trascinate nella scheda Project sia il file OBJ che il file MTL presenti nel pacchetto scaricato da Adobe. Il file MTL è necessario per specificare quali materiali creare e come mapparli sul modello 3D.

Per visualizzare in tempo reale le modifiche, trasciniamo il modello 3D dal Project nella scena, premendo poi il tasto F per inquadrarlo meglio.

Unity cerca i materiali e le textures all'interno del modello 3D importato, ma in questo caso le Textures non sono integrate.

Selezioniamo quindi il modello 3D nel Project, dopodiché apriamo la scheda Materials nella finestra Inspector.

Nel menù Location, selezioniamo l'opzione Legacy, quindi facciamo click su Apply.

Unity creerà una nuova cartella, chiamata Materials, nella finestra Project. In questa cartella troveremo i due materiali, già associati al modello 3D, ma senza Textures.

Trasciniamo quindi le Textures che ci interessano dal pacchetto Adobe a questa cartella. Non sto importando le Texture Glow perché non sono previsti materiali emettitori di luce per questo oggetto.

A questo punto, selezioniamo per primo il materiale completamente opaco.

Nella finestra Inspector, clicchiamo sul menù Shader e selezioniamo l'opzione Autodesk Interactive.

Come potete vedere, abbiamo alcune opzioni per il Rendering Mode, che in questo caso lasceremo su Opaque, e soprattutto possiamo specificare le singole textures del PBR Metallic Workflow!

Associamo quindi le Textures importate dal pacchetto Adobe ai rispettivi canali dello Shader.

Nel caso della Normal Map, in particolare, facciamo clip sul pulsante Fix Now che apparirà subito dopo l'importazione.

Dobbiamo fare anche un paio di osservazioni per quanto riguarda l'aspetto del Base Color, qui chiamato Albedo, e della Roughness.

Il Base Color deriva infatti da una miscelazione della Texture e del colore presente a fianco.

Cliccate quindi su quel colore e portatelo a bianco puro per ottenere, come risultato, solo il colore della Texture.

Potete anche divertirvi a miscelare la Texture con colori diversi, per vedere l'effetto che fa.

Per quanto riguarda la Texture Roughness, nel caso l'effetto finale non dovesse essere quello desiderato, selezionate la Texture nel Project, dopodiché deselezionate la casella sRGB Color Texture nella finestra Inspector e cliccate su Apply per valutare il risultato.

Queste operazioni vanno ripetute anche per il materiale Glass, con l'ovvia differenza che, in questo caso, dovremo impostare Autodesk Interactive con Rendering Mode di tipo Transparent.

Questa modalità preleverà l'opacità dal canale Alpha della Texture Base Color, se presente, ma potreste anche evitare di importare questa Texture ed impostare manualmente il valore Alpha a 0 nello slot colorato accanto ad Albedo.

Non resta che applicare le altre Textures, facendo attenzione a quanto detto prima nel caso delle Textures Roughness e Normal Map, ossia la deselezione della casella sRGB e il click sul pulsante Fix Now.

Adesso vediamo come importare il modello e le sue Textures in un progetto che è stato creato utilizzando sin da subito la Universal Rendering Pipeline.

L'importazione del modello 3D e la creazione dei Materiali avviene così come abbiamo visto nel caso del built-in shader, per cui importeremo sia il file OBJ che il file MTL nella finestra Project.

Successivamente, nella scheda Materials della finestra Inspector del modello 3D, selezioneremo l'opzione Legacy per i materiali e cliccheremo su Apply, così da far creare a Unity la cartella Materials con i materiali da specificare per il modello.

Nella cartella Materials importeremo quindi le immagini Textures da associare ai materiali presenti.

A questo punto, però, non potremo cambiare il tipo di Shader di ciascun materiale direttamente in Autodesk Interactive, perché quell'opzione può essere utilizzata solo con il built-in shader.

Niente paura! Autodesk Interactive è disponibile anche tra le opzioni di Universal Render Pipeline, nel menù Shader!

Notiamo anche che sono disponibili tre diverse modalità, ossia base, Masked e Transparent.

Per il materiale opaco dell'aereo utilizzeremo quindi la modalità base, mentre per i finestrini utilizzeremo il materiale Transparent.

Iniziamo associando le Textures ai rispettivi canali del materiale Autodesk Interactive di Universal Render Pipeline.

Notiamo subito che lo shader non applica in automatico le Textures, per cui toccherà a noi selezionare le varie caselle di tipo Use Map per ciascuna Texture.

Nel caso della Normal Map, Unity dovrebbe offrirci la possibilità di sistemare la Texture cliccando sul pulsante Fix Now.

Nel caso in cui questo pulsante non dovesse essere disponibile, potremo comunque sistemare la Texture selezionandola nel Project e specificandone il tipo corretto, che è Normal Map, nel menù Texture Type, nella finestra Inspector.

Anche per quanto riguarda la Texture Roughness vale quanto detto nel caso del built-in shader, per cui potrebbe essere necessario deselezionare l'opzione sRGB nella finestra Inspector di questa Texture e applicare le modifiche.

Per quanto riguarda il materiale Glasses, dobbiamo fare delle operazioni simili, ma con alcune differenze. Innanzitutto, lo Shader dovrà essere di tipo Autodesk Interactive Transparent.

Le Textures Base Color, Normal Map, Metallic e Roughness vanno impostate come abbiamo già visto negli altri casi, ma c'è una differenza importante per quanto riguarda la texture della trasparenza, chiamata Opacity.

Nel caso di Autodesk Interactive Transparent, infatti, la casella Use Opacity Map ci consentirà di utilizzare il canale di trasparenza presente nella Texture Base Color.

Noi però abbiamo una Texture a parte per il canale Opacity. Come dobbiamo procedere? Ci sono due alternative, a seconda che il vostro materiale sia completamente trasparente o meno.

Se il materiale è completamente trasparente, come nel nostro caso, allora potremo specificare direttamente il valore della trasparenza nel campo Opacity, senza far uso di Texture, ad esempio portando il valore Opacity a 0.

Nel caso di un materiale trasparente solo in alcune zone, potremo optare per lo shader Autodesk Interactive Masked, dove potremo utilizzare anche la nostra texture Opacity.

Anche in questi casi, come in quello del built-in shader, è possibile utilizzare la mappa Glow fornita nel pacchetto Adobe per il canale Emissive. Non ho utilizzato questa Texture perché in questo progetto non è necessaria, ma è bene sapere che questa possibilità è disponibile.

Spero che questo tutorial vi sia stato utile! A presto!

Cerca nei Tutorial

Cerca inserendo una frase o più parole chiave, separate da virgole.

Modelli 3D, tutorial e risorse di computer grafica di Francesco Milanese. Le licenze d’uso dei modelli 3D sono acquistabili tramite gli store esterni indicati nelle rispettive pagine, secondo le condizioni di licenza applicabili. Francesco Milanese — Partita IVA: 06321250877. Contatti: info@francescomilanese.com


INFORMATIVA ESTESA SULL'UTILIZZO DEI COOKIES