.fbx export perché non ci sono materiali o trame?

Ho usato le texture dei nodi in una mesh che ho esportato in .FBX.

Lho quindi importato in Unreal Engine 4 e non lha fatto ” t importare le trame; Ho fatto clic sullopzione Carica trame in Unreal Engine.

Cè qualcosa che sto sbagliando o è Blender?

Commenti

Risposta

Questa è una domanda frequente.

TL; DR

La maggior parte dei formati di file non supporta lesportazione di trame, per non parlare di definizioni di materiali in piena regola o altre funzionalità specifiche dellapplicazione . la maggior parte degli importatori / esportatori di Blender attualmente non supporta bene i materiali basati sui nodi.

Riproduce manualmente i materiali utilizzando le trame disponibili nellambiente di destinazione.

Storia lunga

I materiali sono troppo specifici per limplementazione e strettamente legati al sistema di rendering a cui appartengono a o al software con cui sono stati creati. Non puoi, per la maggior parte, importare / esportare le definizioni dei materiali tra le applicazioni, non puoi nemmeno far funzionare i materiali interni di Blender con Cycles Renderer né viceversa, e sono entrambi creati con Blender, figuriamoci tra applicazioni completamente diverse .

Per questo motivo nessun formato di file che utilizzi può, o addirittura tenta di importare o esportare le proprietà del materiale, sia esso 3DS, FBX, Collada, STL, OBJ o qualsiasi altro. Si tratta per lo più di formati di file solo mesh, incentrati sulla geometria, relativi al porting di forme di oggetti e, a volte, animazione, armatura e ombreggiatura di base o proprietà del colore (come i file MTL); mai definizioni di materiali complesse complete.

Non ci sono semplicemente strutture di dati nelle specifiche per la maggior parte dei formati di file di scambio per accogliere quei dati, per non parlare di tutti i possibili tipi di proprietà, impostazioni o mappe; e anche se ci fossero, ci sono troppe implementazioni di rendering diverse per una varietà di scopi e che rispondono a requisiti distinti (come velocità o reattività per motori di rendering in tempo reale o giochi, o realismo per “rendering offline” basati fisicamente), e ciascuno utilizzando il proprio diverso insieme di parametri e modi particolari di interpretare proprietà specifiche per essere in grado di abbinare correttamente impostazioni, parametri o caratteristiche particolari tra loro facilmente.

Ad esempio la maggior parte dei sistemi di rendering in tempo reale ha bisogno di qualche opzione " backface culling " perché la rasterizzazione si basa molto su di essa per motivi di prestazioni, ma nel rendering come Cycles è solo un nodo di base perché per i raytracer è irrilevante la direzione verso cui è rivolta una geometria. Daltra parte gli shader di vetro e trasparenti " funzionano solo " con grande rifrazione nei raytracer, ma in EEVEE devi giocare con la miscelazione modalità e impostazioni di trasparenza, inesistenti in Cycles, perché rappresentare le interazioni degli oggetti è costoso e complesso per i rasterizzatori.

Alcuni canali di texture basati su immagini più comuni possono talvolta essere conservati correttamente, come diffuso, speculare, lucentezza o sempre più popolari " flussi di lavoro PBR ", ma certamente mai trame generate proceduralmente e / o coordinate di trama generate, queste vengono generate in fase di rendering e possono “t essere esportato. Tieni presente che la maggior parte degli esportatori di Blender non supporta nemmeno i materiali basati sul nodo Cycles (al momento di scrittura per Blender 2.79 #), quindi è molto probabile che anche le trame delle immagini utilizzate negli alberi dei nodi di Cycles non vengano preservate.

Lo stesso vale per molte altre funzioni specifiche per applicazioni o motori di rendering, come parametri di illuminazione, impostazioni delle ombre, lampade, fotocamere, simulazioni fisiche (fluidi, panni, corpi morbidi), opzioni di texture (bloccaggio, ritaglio, piastrellatura, regolazioni del colore), coordinate di texture generate (qualsiasi cosa non mappata esplicitamente da una mappa UV o creata scartando una mesh), opzioni di materiale (eliminazione del backface, ombre, visibilità, trasparenza e modalità di fusione) sistemi di particelle, simulazioni di fumo e fuoco, dati volumetrici, modificatori, morphing di forme (come shapekeys o animazioni basate sulla deformazione) e altri " i dati generati ", non possono “essere anche importati o esportati per la maggior parte (con poche eccezioni).

Come risolverli allora?

Tutto quello che puoi e dovresti importare / esportare sono coordinate UV con la tua mesh in modo da poter applicare correttamente le tue trame in " applicazione di destinazione " , motore di gioco o ambiente di rendering ricevente, dove importerai e mostrerai il tuo modello , che si tratti di Unreal, Unity, Gamekit, software di rendering esterno o altro; o persino lo stesso Blender quando si importano modelli da altrove. Le mappe UV sono generalmente conservate correttamente dalla maggior parte dei formati di file di scambio per impostazione predefinita.

Là dovresti spendere un po di tempo ricreando di nuovo i tuoi materiali da zero con le texture fornite e le mappe disponibili. Sì, richiede un po di backtracking e richiederà del tempo, ma con la pratica diventerà più veloce. Salva i preset in librerie riutilizzabili quando disponibili, per ridurre la quantità di ripetizioni.

Quello che puoi fare in alcune situazioni è usare Blender per cuocere le trame che puoi utilizzare in seguito nella destinazione finale o in ricezione dellapplicazione per creare materiali lì, non allinterno di Blender .

La cottura è il processo di pre-calcolo dellombreggiatura e memorizzandola in una texture immagine statica che può incorporare diversi canali opzionali come illuminazione diffusa, lucida, indiretta, mappe di rilievo, mappe normali, mappe di luce, tra gli altri. Ciò può migliorare la qualità grafica o il " realismo " percepito a scapito del dinamismo, poiché alcune proprietà dei materiali e delle trame possono diventare statiche, poiché se " dipinto sulla superficie ", come ombre o riflessi. Questo è spesso un requisito per supporti ad alte prestazioni o piattaforme a basso consumo, come i giochi web o mobile, dove le risorse disponibili sono limitate o sconosciute e la velocità ha la precedenza sulla fedeltà grafica.

Eccezioni

Una notevole eccezione a tutto questo è il formato di file glTF , che a partire dalla versione 2.0 glTF supporta alcune definizioni di materiali basate su un modello di ombreggiatura a rugosità metallica nelle sue specifiche. Laddon glTF-Blender-IO creato dal gruppo Khronos stesso supporta lesportazione di materiali basati sui nodi BSDF di principio . Ma anche in questo caso si applicano alcune limitazioni.

A causa della recente popolarità del Rendering basato sulla fisica e del suo crescente utilizzo nei motori di gioco e nei -Applicazioni di rendering del tempo, è diventato una sorta di " standard sciolto " vagamente definito per descrivere le proprietà superficiali dei materiali (sebbene con diverse sfumature esistono versioni).

Sviluppi futuri

PBR non è uno standard tuttavia e non tutte le implementazioni funzionano allo stesso modo o interpreta gli stessi parametri in modo simile. Il Principled BSDF era già stato scritto secondo un modello progettato da un affermato leader del settore (Disney) per uso interno e gioco anche i motori come Unreal Engine® o applicazioni di pittura di texture come Substance Painter® lo hanno adottato.

Poiché il flusso di lavoro PBR guadagna popolarità e trazione, è possibile che più applicazioni " unisciti al movimento " e implementalo in futuro. Se è possibile concordare uno standard comune, è possibile che in futuro più importatori / esportatori migliorino la compatibilità con un numero crescente di proprietà dei materiali. Probabilmente leggeranno direttamente da un file Blend, useranno qualche altro ipotetico nuovo formato di file o saranno costretti a implementare nuovi standard; poiché gli attuali mancano ancora di strutture dati per descriverli correttamente. A questo punto si tratta di pura speculazione e non vengono fatti piani noti.

Problemi correlati

Commenti

  • Non ho mai usato Unreal o qualsiasi altro motore, non ne ho la più pallida idea, dovrai chiederlo a una community dedicata I ' ho paura.Ho sentito che alcuni motori non consentono più materiali per mesh, dovresti romperlo in diversi oggetti. Ad ogni modo puoi applicare i materiali in Blender, per fedeltà visiva nel viewport, e se limportatore supporta che ' è meno lavoro che devi rifare nel motore, basta don ' Non mi aspetto di utilizzare le stesse esatte definizioni di materiale.
  • Vale la pena notare che molte applicazioni / formati si preoccupano degli slot di materiale assegnati (cioè quali vert hanno quale materiale assegnato) , ma non il materiale effettivo assegnato, poiché ne hanno bisogno per assegnare i propri materiali.
  • @Duarte Farrajota Ramos ci sono innumerevoli script di esportazione che esportano le mesh di Blender con i materiali assegnati
  • @ phil123 Dovresti pubblicarlo come risposta di seguito, con collegamenti a detti script e una descrizione del flusso di lavoro utilizzato, insieme ad alcuni screenshot dei risultati
  • Posso aggiungere qualcosa su Unreal e glTF, don ' non conosco FBX. Cycles, Eevee e Unreal hanno ciascuno dei potenti materiali basati sui nodi. Il modello di materiale glTF 2.0 è più semplice ma può gestire una grande percentuale di esigenze artistiche di gioco (PBR basato su texture di immagini). glTF funziona tra Blender e Unreal (a partire dalla 4.19) per Static Mesh with Materials. Puoi avere più materiali in un singolo oggetto mesh e questi verranno visualizzati come slot di materiale in Unreal. Da lì puoi utilizzare i materiali importati da glTF o sostituirli / crearne di nuovi in Unreal.

Answer

Quando esporti in .fbx, non puoi esportare materiali, avrai il colore della superficie, ma non altre impostazioni come lucentezza e riflesso, per le trame, sì puoi, ma devi usare il frullatore interno (lo fa non funziona con i cicli) e assicurati di non usare i nodi, applica le trame, quindi, quando nelle impostazioni di esportazione fbx, vai in fondo, imposta il percorso da copiare, quindi seleziona licona a forma di scatola accanto ad essa, ora dovrebbe incorporare le texture con il file fbx esportato.

PS: non ho testato il nuovo blender 2.79

Impostazioni di esportazione Fbx di Blender per incorporare le trame

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *