.fbx export varför det inte finns några material eller texturer?

Jag använde nodstrukturer i ett nät som jag exporterade till .FBX.

Jag importerade det sedan till Unreal Engine 4 och det gjorde det inte ” t importera texturer; jag klickade på alternativet Ladda upp texturer i Unreal Engine.

Finns det något jag gör fel eller är det Blender?

Kommentarer

Svar

Detta är en vanlig fråga.

TL; DR

De flesta filformat stöder inte bara exporttexter, än mindre fullständiga materialdefinitioner eller andra applikationsspecifika funktioner . de flesta Blender-importörer / exportörer stöder för närvarande inte nodbaserat material.

Reproducera ditt material manuellt med tillgängliga texturer i målmiljön.

Lång historia

Material är för implementeringsspecifika och tätt knutna till det renderingssystem som de tillhör till eller programvara de skapades med. Du kan inte, för det mesta, importera / exportera materialdefinitioner mellan applikationer, du kan inte ens få Blender Internal Materials att arbeta med Cycles Renderer eller vice versa, och de skapas båda med Blender, än mindre mellan helt olika applikationer .

Därför kan inget filformat du använder, eller ens försöka importera eller exportera materialegenskaper, vare sig det är 3DS, FBX, Collada, STL, OBJ eller något annat. Dessa är mestadels endast nätverks-, geometri-centrerade filformat som berör portningsobjektformer, och ibland animations-, armatur- och grundskuggnings- eller färgegenskaper (som MTL-filer); aldrig fullständiga komplexa materialdefinitioner.

Det finns helt enkelt inga datastrukturer i specifikationerna för de flesta utbytesfilformat för att tillgodose dessa data, än mindre alla möjliga typer av egenskaper, inställningar eller kartor; och även om det fanns finns det alldeles för många olika renderingsimplementeringar för en mängd olika syften och svarar på distinkta krav (som hastighet eller lyhördhet för realtids rendering motorer eller spel, eller realism för fysiskt baserade ”offline-render”), och varje använder sin egen olika uppsättning parametrar och särskilda sätt att tolka specifika egenskaper för att kunna matcha inställningar, parametrar eller specifika funktioner mellan dem enkelt.

Till exempel har de flesta realtids rendering system behov av någon form av explicit " baksidesutjämning " eftersom rasterisering är starkt beroende av det av prestationsskäl, men i render som Cycles är det bara en grundnod eftersom för raytracers är det irrelevant i vilken riktning en geometri vetter. Å andra sidan fungerar bara glas och genomskinliga skuggor " " med stor refraktion i raytracers, men i EEVEE måste du krossa med blandning lägen och transparensinställningar, obefintliga i cykler, eftersom det är dyrt och komplext att representera objektinteraktioner för rasterizers.

Vissa vanligare bildbaserade texturkanaler kan ibland bevaras korrekt, som diffus, spekulär, glans eller alltmer populärt " PBR-arbetsflöden ", men säkert aldrig procedurgenererade strukturer och / eller genererade strukturkoordinater, dessa genereras vid återgivningstid och kan ”t exporteras. Tänk på att de flesta Blender-exportörerna inte ens stöder Cycles-nod -baserat material alls (för tillfället att skriva för Blender 2.79 #), så även bildstrukturer som används i Cycles nodträd förväntas troligen inte bevaras.

Samma gäller för många andra funktioner som är specifika för applikationer eller återger motorer, som ljusparametrar, skugginställningar, lampor, kameror, fysiksimuleringar (vätskor, dukar, mjuka kroppar), texturalternativ (klämning, klippning, tegelplattor, färgjusteringar), genererade strukturkoordinater (allt som inte kartlagts uttryckligen av en UV-karta eller skapas genom att packa upp ett nät), materialalternativ (avlägsnande av baksidan, skuggor, synlighet, transparens och blandningslägen) partikelsystem, rök- och eldsim, volymetriska data, modifierare, formmorfing (som formknappar eller deformationsbaserade animationer) och andra " genererad data ", kan inte för det mesta också importeras eller exporteras (med några få undantag).

Hur löser man det då?

Allt du kan och bör, importera / exportera, är UV-koordinater med ditt nät så att du korrekt kan tillämpa dina texturer på " målapplikation " , spelmotor eller mottagningsmiljö, där du importerar och visar din modell oavsett om det är Unreal, Unity, Gamekit, extern renderingsprogramvara eller vad som helst; eller till och med Blender själv när man importerar modeller från andra håll. UV-kartor bevaras i allmänhet korrekt av de flesta utbytesfilformat som standard.

Där bör du spendera lite tid att återskapa dina material från grunden igen med de medföljande texturerna och tillgängliga kartor. Ja, det kräver lite backtracking och tar lite tid, men med övning blir det snabbare. Spara förinställningar i återanvändbara bibliotek när de är tillgängliga, för att minska mängden upprepning.

Vad du kan göra i vissa situationer är att använda Blender för att baka texturer att du senare kan använda i slutdestinationen eller ta emot applikation för att skapa material där, inte inuti Blender .

Bakning är processen att förberäkna skuggning och lagra den i en statisk bildstruktur som kan innehålla flera valfria kanaler som diffus, blank, indirekt belysning, bumpkartor, normalkartor, ljuskartor, bland andra. Detta kan förbättra grafisk kvalitet eller uppfattas " realism " på bekostnad av dynamik, eftersom vissa egenskaper hos material och texturer kan bli statiska, eftersom om " målad på ytan ", som skuggor eller reflektioner. Detta är ofta ett krav för högpresterande medier eller plattformar med låg effekt, som webb- eller mobilspel, där tillgängliga resurser är begränsade eller okända, och hastighet har företräde framför grafisk trovärdighet.

Undantag

Ett anmärkningsvärt undantag från allt detta är filformatet glTF , som från och med version 2.0 glTF stöder vissa materialdefinitioner baserade på en metallisk grov skuggmodell i sina specifikationer. Tillägget glTF-Blender-IO som skapats av Khronos-gruppen stöder exporterande principiella BSDF-nodbaserade material . Men även då gäller vissa begränsningar.

På grund av den senaste populariteten för Fysiskt baserad rendering , och dess ökande användning i spelmotorer och riktiga -Tidsåtergivningsapplikationer har det blivit en sorts vagt definierad " lös standard " för att beskriva ytegenskaper hos material (även om flera olika nyanserade versioner finns).

Framtida utveckling

PBR är dock inte en standard och inte alla implementeringar fungerar på samma sätt eller tolkar samma parametrar på samma sätt. Principled BSDF var redan skriven enligt en modell designad av en etablerad branschledare (Disney) för eget internt bruk och spel motorer som Unreal Engine® eller texturmålningsapplikationer som Substance Painter® antog det också.

Eftersom PBR-arbetsflödet blir populär och dragkraft är det möjligt att fler applikationer " gå med i rörelsen " och implementera den i framtiden. Om man kan komma överens om en gemensam standard kan det vara möjligt att fler importörer / exportörer i framtiden förbättrar kompatibiliteten med ett ökande antal materialegenskaper. De kommer antagligen antingen att läsa direkt från en blandningsfil, använda något annat hypotetiskt nytt filformat eller tvingas implementera nya standarder; eftersom de nuvarande fortfarande saknar datastrukturer för att korrekt beskriva dem. Vid denna tidpunkt är det ren spekulation, och inga kända planer görs.

Relaterade problem

Kommentarer

  • Jag har aldrig använt Unreal eller någon annan motor, jag har ingen aning, du måste fråga om det i en dedikerad gemenskap jag ' jag är rädd.Jag hör att vissa motorer inte tillåter flera material per nät, du måste dela upp det i flera objekt. Hur som helst kan du använda materialen i Blender, för visuell trohet i visningsområdet, och om importören stöder att det ' mindre arbete måste du göra om i motorn, bara gör ' t förväntar dig att använda samma exakta materialdefinitioner.
  • Det är värt att notera att många applikationer / format bryr sig om tilldelade materialplatser (dvs. vilka verter som har tilldelat material) , men inte det egentliga materialet som tilldelas, eftersom de behöver dessa för att tilldela sina egna material.
  • @Duarte Farrajota Ramos det finns otaliga exportskript som exporterar mixermaskor med sitt tilldelade material
  • @ phil123 Du bör lägga upp det som ett svar nedan, med länkar till nämnda skript och en beskrivning av det använda arbetsflödet, tillsammans med några skärmdumpar av resultaten
  • Jag kan lägga till något om Unreal och glTF, don ' vet inte om FBX. Cycles, Eevee och Unreal har vardera kraftfulla nodbaserade material. Materialmodellen glTF 2.0 är enklare men klarar en stor andel spelkonstbehov (bildstrukturbaserad PBR). glTF fungerar mellan Blender och Unreal (från 4.19) för statiska nät med material. Du kan ha flera material i ett enda nätobjekt, och dessa kommer att visas som materialfack i Unreal. Därifrån kan du använda material som importeras från glTF eller byta ut dem / skapa nya i Unreal.

Svar

När du exporterar till .fbx kan du inte exportera material, du kommer att ha ytfärgen, men inte andra inställningar som glans och reflektion, för texturer, ja du kan, men du måste använda blenderintern (det gör det fungerar inte med cykler), och se till att du inte använder noder, applicerar texturerna och sedan, när du är i fbx-exportinställningarna, går du till botten, ställer in sökvägen för att kopiera och markerar sedan den rutliknande ikonen bredvid den, den ska nu bädda in texturerna med den exporterade fbx-filen.

PS: Jag testade inte den nya mixern 2.79

Blender Fbx exportinställningar för att bädda in texturer

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *