.fbx eksport hvorfor det ikke er materialer eller teksturer?

Jeg brukte nodestrukturer i et nett jeg eksporterte til .FBX.

Jeg importerte den deretter til Unreal Engine 4 og det gjorde det ikke » t importere teksturer. Jeg klikket på alternativet Last opp teksturer i Unreal Engine.

Er det noe jeg gjør galt, eller er det Blender?

Kommentarer

Svar

Dette er et ofte stilte spørsmål.

TL; DR

De fleste filformater støtter bare ikke eksport av teksturer, enn si fullverdige materialdefinisjoner eller andre applikasjonsspesifikke funksjoner . de fleste Blender-importører / -eksportører støtter for øyeblikket ikke nodebaserte materialer godt.

Gjengir materialene dine manuelt ved hjelp av tilgjengelige teksturer i målmiljøet.

Lang historie

Materialer er for implementeringsspesifikke og tett knyttet til gjengivelsessystemet de tilhører til , eller programvare de ble opprettet med. Du kan for det meste ikke importere / eksportere materialdefinisjoner mellom applikasjoner, du kan ikke til og med få Blender Internal Materials til å jobbe med Cycles Renderer eller omvendt, og de er begge opprettet med Blender, enn si mellom helt forskjellige applikasjoner .

Av denne grunn kan ikke noe filformat du bruker, eller prøver å importere eller eksportere materialegenskaper, det være seg 3DS, FBX, Collada, STL, OBJ eller andre. Disse er for det meste bare geometrisk-sentriske filformater som er opptatt av portering av objektformer, og noen ganger animasjons-, armatur- og grunnleggende skygge- eller fargeegenskaper (som MTL-filer); aldri fullstendige komplekse materialdefinisjoner.

Det er ganske enkelt ingen datastrukturer i spesifikasjonene for de fleste utvekslingsfilformater for å imøtekomme disse dataene, enn si alle mulige typer egenskaper, innstillinger eller kart; og selv om det var det, er det altfor mange forskjellige gjengivelsesimplementeringer for en rekke formål og svarer på forskjellige krav (som hastighet eller respons for gjengivende motorer eller spill i sanntid, eller realisme for fysisk baserte «offline gjengivelser»), og hver ved å bruke sitt eget forskjellige sett med parametere og bestemte måter å tolke spesifikke egenskaper for å kunne matche riktig innstillinger, parametere eller bestemte funksjoner mellom dem enkelt.

For eksempel har de fleste sanntids gjengivelsessystemer behov for noen form for eksplisitt " baksideutslettelse " alternativ fordi rasterisering er sterkt avhengig av det av ytelsesgrunner, men i gjengivelse som sykluser er det bare en grunnleggende node fordi for raytracers er det irrelevant hvilken retning en geometri vender mot. På den annen side fungerer bare glass og gjennomsiktige skyggelister " bare " med stor refraksjon i raytracers, men i EEVEE må du gløtte med blanding moduser og gjennomsiktighetsinnstillinger, ikke-eksisterende i sykluser, fordi det å representere objektinteraksjoner er dyrt og komplekst for rasterizers.

Noen mer vanlige bildebaserte teksturkanaler kan noen ganger bevares riktig, som diffus, spekulær, glans eller stadig mer populært " PBR-arbeidsflyter ", men absolutt aldri prosessuelt genererte teksturer og / eller genererte teksturkoordinater, disse genereres på gjengivelsestid og kan «t bli eksportert. Husk at de fleste Blender-eksportører ikke engang støtter Cycles node -baserte materialer i det hele tatt (på det tidspunktet for skriving for Blender 2.79 #), så selv teksturer som brukes i Cycles node-trær, forventes det mest sannsynlig ikke å bli bevart.

Samme gjelder for mange andre funksjoner som er spesifikke for applikasjoner eller gjengir motorer, som lysparametere, skyggeinnstillinger, lamper, kameraer, fysikksimuleringer (væsker, kluter, myke kropper), teksturalternativer (klemming, klipping, flislegging, fargejusteringer), genererte teksturkoordinater (alt som ikke er kartlagt eksplisitt av et UV-kart eller opprettet ved å pakke ut et nett), materialalternativer (slakting på baksiden, skygger, synlighet, gjennomsiktighet og blanding) partikelsystemer, røyk- og brann-sims, volumetriske data, modifikatorer, formmorfing (som formvalg eller deformasjonsbaserte animasjoner) og andre " genererte data ", kan ikke t for det meste også importeres eller eksporteres (med noen få unntak).

Hvordan løser jeg det da?

Alt du kan og bør importere / eksportere er UV-koordinater med nettverket ditt, slik at du kan bruke teksturene dine riktig på " målapplikasjon " , spillmotor eller gjengivelsesmiljø, der du skal importere og vise modellen din , det være seg Unreal, Unity, Gamekit, ekstern gjengivelsesprogramvare eller hva som helst; eller til og med Blender selv når du importerer modeller fra andre steder. UV-kart blir vanligvis korrekt bevart av de fleste utvekslingsfilformater som standard.

Der bør du bruke litt tid å gjenskape materialene dine fra bunnen av igjen med de medfølgende teksturene og tilgjengelige kartene. Ja, det krever litt tilbakesporing og vil ta litt tid, men med øvelse blir det raskere. Lagre forhåndsinnstillinger i gjenbrukbare biblioteker når de er tilgjengelige, for å redusere mengden repetisjon.

Det du kan gjøre i noen situasjoner er å bruke Blender til å bake teksturer at du senere kan bruke i den endelige destinasjonen eller motta applikasjon for å lage materialer der, ikke inne i Blender .

Baking er prosessen med å beregne skyggelegging på forhånd og lagre den i en statisk bildestruktur som kan inneholde flere valgfrie kanaler som diffus, blank, indirekte belysning, bump maps, normal maps, light-maps, blant andre. Dette kan forbedre grafisk kvalitet eller oppfattet " realisme " på bekostning av dynamikk, da visse egenskaper til materialer og teksturer kan bli statiske, som hvis " malt på overflaten ", som skygger eller refleksjoner. Dette er ofte et krav for høyytelsesmedier eller plattformer med lav effekt, som nett- eller mobilspill, der tilgjengelige ressurser er begrensede eller ukjente, og hastighet går foran grafisk troskap.

Unntak

Et bemerkelsesverdig unntak fra alt dette er filformatet glTF , som fra versjon 2.0 glTF støtter noen materialdefinisjoner basert på en metallisk ruhetsskyggemodell i spesifikasjonene. glTF-Blender-IO addon opprettet av Khronos Group støtter selv eksporterende prinsipielle BSDF-nodebaserte materialer . Men selv da gjelder noen begrensninger.

På grunn av den nylige populariteten til Fysisk basert gjengivelse , og den økende bruken i spillmotorer og ekte -Tidsgjengivelsesapplikasjoner har det blitt en slags vagt definert " løs standard " for å beskrive overflateegenskapene til materialer (selv om flere forskjellige nyanser versjoner eksisterer).

Fremtidig utvikling

PBR er imidlertid ikke en standard , og ikke alle implementeringer fungerer på samme måte eller tolker de samme parameterne på samme måte. Prinsipiell BSDF var allerede skrevet i henhold til en modell designet av en etablert bransjeleder (Disney) for eget internt bruk og spill motorer som Unreal Engine® eller applikasjoner med teksturmaling som Substance Painter®, tok også i bruk det.

Etter hvert som PBR-arbeidsflyten blir mer populær og trekkraft, er det mulig at flere applikasjoner " bli med i bevegelsen " og implementer den i fremtiden. Hvis man kan bli enige om en felles standard, kan det være mulig at flere importører / eksportører i fremtiden forbedrer kompatibiliteten med et økende antall materialegenskaper. De vil sannsynligvis enten lese direkte fra en blandingsfil, bruke et annet hypotetisk nytt filformat eller bli tvunget til å implementere nye standarder; da de nåværende fremdeles mangler datastrukturer for å beskrive dem riktig. På dette tidspunktet er det ren spekulasjon, og ingen kjente planer blir laget.

Relaterte problemer

Kommentarer

  • Jeg har aldri brukt Unreal eller noen annen motor, jeg har ingen anelse, du må spørre om det i et dedikert fellesskap jeg ' er redd.Jeg hører at noen motorer ikke tillater flere materialer per maske, du må dele den opp i flere gjenstander. Uansett kan du bruke materialene i Blender, for visuell troskap i visningen, og hvis importøren støtter at det ' mindre arbeid, må du gjøre om i motoren, bare ikke ' t forventer å bruke de samme eksakte materialdefinisjonene.
  • Det er verdt å merke seg at mange applikasjoner / formater bryr seg om tildelte materialspor (dvs. hvilke verter som har tildelt materiale) , men ikke det faktiske materialet som er tildelt, da de trenger disse for å tildele sine egne materialer.
  • @Duarte Farrajota Ramos det er utallige eksportskripter som eksporterer blendermasker med deres tildelte materialer
  • @ phil123 Du bør legge det ut som et svar nedenfor, med lenker til nevnte skript og en beskrivelse av arbeidsflyten som brukes, sammen med noen skjermbilder av resultatene
  • Jeg kan legge til noe om Unreal og glTF, don ' vet ikke om FBX. Sykluser, Eevee og Unreal har hver kraftige nodebaserte materialer. GlTF 2.0-materialmodellen er enklere, men kan håndtere en stor prosentandel av spillkunstbehov (bildestrukturbasert PBR). glTF fungerer mellom Blender og Unreal (fra og med 4.19) for Static Meshes with Materials. Du kan ha flere materialer i et enkelt mesh-objekt, og disse vil vises som materialspor i Unreal. Derfra kan du bruke materialene som er importert fra glTF eller bytte dem ut / forfatter nye i Unreal.

Svar

Når du eksporterer til .fbx, kan du ikke eksportere materialer, du vil ha overflatefarge, men ikke andre innstillinger som glans og refleksjon, for teksturer, ja du kan, men du må bruke blender internt (det gjør det ikke arbeide med sykluser), og sørg for at du ikke bruker noder, bruker teksturene. Gå deretter til bunnen når du er i fbx-eksportinnstillingene, angi banen du vil kopiere, og kryss av i det bokseaktige ikonet ved siden av, det skal nå legge inn teksturene med den eksporterte fbx-filen.

PS: Jeg testet ikke den nye blenderen 2.79

Blender Fbx eksportinnstillinger for å legge inn teksturer

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *