Jeg brugte nodestrukturer i et maske, jeg eksporterede til .FBX.
Jeg importerede det derefter til Unreal Engine 4, og det gjorde det ikke ” t importerer teksturer; jeg klikkede på indstillingen Upload teksturer i Unreal Engine.
Er der noget, jeg laver forkert, eller er det Blender?
Kommentarer
- Jeg tror, at dette er gjort før. Se: gamefromscratch.com/post/2014/07/16/… Prøv det!
Svar
Dette er et ofte stillet spørgsmål.
TL; DR
De fleste filformater understøtter ikke eksport af teksturer, endsige fuldblæste materialedefinitioner eller andre applikationsspecifikke funktioner . de fleste Blender-importører / eksportører understøtter i øjeblikket ikke node-baserede materialer godt.
Reproducer manuelt dine materialer ved hjælp af tilgængelige strukturer i målmiljøet.
Lang historie
Materialer er for implementeringsspecifikke og tæt knyttet til det gengivelsessystem, de tilhører til eller software, de blev oprettet med. Du kan for det meste ikke importere / eksportere materialedefinitioner mellem applikationer, du kan ikke engang få Blender Internal Materials til at arbejde med Cycles Renderer eller omvendt, og de er begge oprettet med Blender, endsige mellem helt forskellige applikationer .
Derfor kan intet filformat, du bruger, eller endda forsøge at importere eller eksportere materialegenskaber, det være sig 3DS, FBX, Collada, STL, OBJ eller andre. Disse er for det meste kun mesh-geometri-centrerede filformater, der beskæftiger sig med portering af objektformer og nogle gange animation, armatur og grundlæggende skygge- eller farveegenskaber (som MTL-filer); aldrig fulde komplekse materialedefinitioner.
Der er simpelthen ingen datastrukturer i specifikationerne for de fleste udvekslingsfilformater til at rumme disse data, endsige alle mulige typer egenskaber, indstillinger eller kort; og selvom der var, er der alt for mange forskellige gengivelsesimplementeringer til en række formål og reagerer på særskilte krav (som hastighed eller lydhørhed til gengivelsesmotorer eller spil i realtid eller realisme til fysisk baserede “offline-gengivelser”), og hver ved hjælp af sit eget forskellige sæt parametre og bestemte måder at fortolke specifikke egenskaber for at være i stand til korrekt at matche indstillinger, parametre eller bestemte funktioner mellem dem.
For eksempel har de fleste realtids rendering systemer behov for en eller anden eksplicit " slagtning af bagflade ", fordi rasterisering er stærkt afhængig af det af ydeevneårsager, men i gengivelse som cyklusser er det bare en grundlæggende node, fordi for raytracers er det irrelevant, hvilken retning en geometri vender. På den anden side arbejder glas og gennemsigtige skygger " bare " med stor refraktion i raytracers, men alligevel i EEVEE er du nødt til at dræbe rundt med blanding tilstande og gennemsigtighedsindstillinger, der ikke findes i cyklusser, fordi det at repræsentere objektinteraktioner er dyrt og komplekst for rasterizers.
Nogle mere almindelige billedbaserede teksturkanaler kan nogle gange bevares korrekt, som diffus, spekulær, glans eller Stadig populær " PBR-arbejdsgange ", men bestemt aldrig proceduremæssigt genererede strukturer og / eller genererede teksturkoordinater, disse genereres på gengivelsestid og kan “t eksporteres. Husk, at de fleste Blender-eksportører ikke engang understøtter Cycles node -baserede materialer overhovedet (på det tidspunkt for skrivning til Blender 2.79 #), så selv billedteksturer, der bruges i cyklusseknudetræer, forventes det sandsynligvis ikke at blive bevaret. / p>
Det samme gælder for mange andre funktioner, der er specifikke for applikationer eller gengiver motorer, som f.eks. lysparametre, skyggeindstillinger, lamper, kameraer, fysiksimuleringer (væsker, klude, bløde kroppe), teksturindstillinger (fastspænding, klipning, flisebelægning, farvejusteringer), genererede strukturkoordinater (alt, hvad der ikke er kortlagt eksplicit af et UV-kort eller skabt ved at pakke et net ud), materialemuligheder (bagudslagtning, skygger, synlighed, gennemsigtighed og blandingstilstande) partikelsystemer, røg- og ildsims, volumetriske data, modifikatorer, formmorfering (som formkaster eller deformationsbaserede animationer) og andre " genererede data ", kan ikke t for det meste også importeres eller eksporteres (med få undtagelser).
Hvordan løses det derefter?
Alt hvad du kan og bør importere / eksportere er UV-koordinater med dit net, så du korrekt kan anvende dine teksturer på " målapplikation " , spilmotor eller modtagelsesmiljø, hvor du” importerer og viser din model , det være sig Unreal, Unity, Gamekit, ekstern gengivelsessoftware eller hvad der ikke er; eller endda Blender selv, når man importerer modeller fra andre steder. UV-kort er generelt korrekt bevaret af de fleste udvekslingsfilformater som standard.
Der skal du bruge noget tid at genskabe dine materialer fra bunden igen med de medfølgende teksturer og tilgængelige kort. Ja, det kræver noget tilbagesporing og vil tage noget tid, men med øvelse bliver det hurtigere. Gem forudindstillinger i genanvendelige biblioteker, når de er tilgængelige, for at reducere mængden af gentagelse.
Hvad du kan gøre i nogle situationer er at bruge Blender til at bage teksturer at du senere kan bruge i den endelige destination eller modtage applikation til at oprette materialer der, ikke inde i Blender .
Bagning er processen til forudberegning af skygge og gemme det i en statisk billedstruktur, der kan indeholde flere valgfri kanaler som diffus, blank, indirekte belysning, bump-kort, normale kort, lyskort, blandt andre. Dette kan forbedre grafisk kvalitet eller opfattes " realisme " på bekostning af dynamik, da visse egenskaber ved materialer og teksturer kan blive statiske, som hvis " malet på overfladen ", som skygger eller refleksioner. Dette er ofte et krav til højtydende medier eller platforme med lav effekt som f.eks. Spil på nettet eller mobilenheder, hvor de tilgængelige ressourcer er begrænsede eller ukendte, og hastighed har forrang over grafisk troskab.
Undtagelser
En bemærkelsesværdig undtagelse fra alt dette er glTF filformat, som fra version 2.0 glTF understøtter nogle materialedefinitioner baseret på en metalskærmmodel i dets specifikationer. glTF-Blender-IO addon oprettet af Khronos Group understøtter selv eksporterende principielle BSDF node-baserede materialer . Men selv da gælder nogle begrænsninger.
På grund af den nylige popularitet af Fysisk baseret gengivelse og dens stigende anvendelse i spilmotorer og rigtige -Tidsgengivelsesapplikationer er det blevet en slags vagt defineret " løs standard " til beskrivelse af materialers overfladeegenskaber (skønt adskillige forskellige nuancer versioner findes).
Fremtidig udvikling
PBR er dog ikke en standard og ikke alle implementeringer fungerer på samme måde eller fortolker de samme parametre på samme måde. Principled BSDF var allerede skrevet i henhold til en model designet af en etableret brancheleder (Disney) til deres eget interne brug og spil motorer som Unreal Engine® eller applikationer til teksturmaling som Substance Painter® vedtog det også.
Da PBR-arbejdsgangen vinder popularitet og trækkraft, er det muligt, at flere applikationer " slutte sig til bevægelsen " og implementere den i fremtiden. Hvis der kan aftales en fælles standard, kan det være muligt, at flere importører / eksportører i fremtiden forbedrer kompatibiliteten med et stigende antal materialegenskaber. De vil sandsynligvis enten læse direkte fra en blandingsfil, bruge et andet hypotetisk nyt filformat eller blive tvunget til at implementere nye standarder; da de nuværende stadig mangler datastrukturer til korrekt beskrivelse af dem. På dette tidspunkt er det ren spekulation, og der kendes ingen planer.
Relaterede problemer
- Import af OBJ med MTL og billedet fungerer ikke korrekt
- Når jeg gemmer noget som en OBJ-fil, gemmes ikke strukturen med det, hvorfor?
- Sådan importeres en .mtl-fil?
- Blender er ikke ' t importerer mtl korrekt med obj?
- Eksport cykler materiale til enhed
- Sådan importeres en model med teksturer anvendt?
Kommentarer
- Jeg har aldrig brugt Unreal eller nogen anden motor, jeg har ingen anelse, du bliver nødt til at spørge om det i et dedikeret samfund I ' er bange.Jeg hører, at nogle motorer ikke tillader flere materialer pr. Mesh, du bliver nødt til at opdele det i flere objekter. Under alle omstændigheder kan du anvende materialerne i Blender til visuel troskab i visningen, og hvis importøren understøtter, at det ' mindre arbejde, skal du gøre om i motoren, skal du bare ikke ' t forventer at bruge de samme nøjagtige materialedefinitioner.
- Det er værd at bemærke, at mange applikationer / formater bryr sig om tildelte materialespalter (dvs. hvilke verts der har tildelt materiale) , men ikke det egentlige materiale, der er tildelt, da de har brug for disse til at tildele deres egne materialer.
- @Duarte Farrajota Ramos der er utallige eksportskripter, der eksporterer blendermasker med deres tildelte materialer
- @ phil123 Du skal skrive det som et svar nedenfor med links til de nævnte scripts og en beskrivelse af den anvendte arbejdsgang sammen med nogle skærmbilleder af resultaterne
- Jeg kan tilføje noget om Unreal og glTF, don ' ikke kender til FBX. Cykler, Eevee og Unreal har hver især kraftfulde node-baserede materialer. GlTF 2.0 materialemodellen er enklere, men kan håndtere en stor procentdel af spilkunstbehov (billedstrukturbaseret PBR). glTF fungerer mellem Blender og Unreal (pr. 4.19) til statiske masker med materialer. Du kan have flere materialer i et enkelt mesh-objekt, og disse vises som materialespalter i Unreal. Derfra kan du bruge de importerede materialer fra glTF eller bytte dem ud / oprette nye i Unreal.
Svar
Når du eksporterer til .fbx, kan du ikke eksportere materialer, du vil have overfladefarven, men ikke andre indstillinger såsom glans og refleksion, for teksturer, ja du kan, men du skal bruge blender intern (det gør arbejder ikke med cyklusser), og sørg for, at du ikke bruger noder, anvender teksturerne, og når du er i fbx-eksportindstillingerne, skal du gå til bunden, indstille sti til kopiering og derefter markere det feltlignende ikon ved siden af det, det skal nu integrere teksturerne med den eksporterede fbx-fil.
PS: Jeg testede ikke den nye blender 2.79