.fbx export waarom zijn er geen materialen of texturen?

Ik heb node-texturen gebruikt in een mesh die ik naar .FBX heb geëxporteerd.

Ik heb het vervolgens geïmporteerd in Unreal Engine 4 en dat deed het niet ” t importeer geen texturen; ik klikte op de Upload Textures optie in Unreal Engine.

Is er iets dat ik verkeerd doe of is het Blender?

Reacties

Antwoord

Dit is een veel gestelde vraag.

TL; DR

De meeste bestandsformaten ondersteunen gewoon het exporteren van texturen niet, laat staan volledige materiaaldefinities of andere toepassingsspecifieke functies . de meeste importeurs / exporteurs van Blender “ondersteunen momenteel niet goed op knooppunten gebaseerde materialen.

Reproduceer uw materialen handmatig met behulp van beschikbare texturen in de doelomgeving.

Lang verhaal

Materialen zijn te implementatiespecifiek en nauw verbonden met het weergavesysteem waartoe ze behoren naar , of software waarmee ze zijn gemaakt. Je kunt voor het grootste deel geen materiaaldefinities importeren / exporteren tussen applicaties, je kunt Blender Internal Materials niet eens laten werken met Cycles Renderer en vice versa, en ze zijn beide gemaakt met Blender, laat staan tussen totaal verschillende applicaties. .

Om deze reden kan geen enkel bestandsformaat dat u gebruikt, materiaaleigenschappen importeren of exporteren, of het nu 3DS, FBX, Collada, STL, OBJ of enig ander is. Dit zijn meestal alleen-mesh, geometrie-centrische bestandsformaten die zich bezighouden met het overzetten van objectvormen, en soms animatie, armatuur en basisarcering of kleureigenschappen (zoals MTL-bestanden); nooit volledige complexe materiaaldefinities.

Er zijn simpelweg geen datastructuren in de specificaties voor de meeste uitwisselingsbestandsformaten om die gegevens te accommoderen, laat staan alle mogelijke soorten eigenschappen, instellingen of kaarten; en zelfs als dat zo zou zijn, zijn er veel te veel verschillende rendering-implementaties voor verschillende doeleinden en die beantwoorden aan verschillende vereisten (zoals snelheid of reactievermogen voor real-time rendering-engines of games, of realisme voor fysiek gebaseerde offline renderingen), en elk gebruikmakend van zijn eigen verschillende set parameters en specifieke manieren om specifieke eigenschappen te interpreteren om instellingen, parameters of bepaalde kenmerken gemakkelijk tussen hen te kunnen matchen.

De meeste real-time renderingsystemen hebben bijvoorbeeld behoefte aan een of andere vorm van expliciete " backface culling " optie omdat rastering er sterk afhankelijk van is vanwege prestatieredenen, maar in renderen zoals Cycles is het slechts een basisknooppunt omdat voor raytracers is het niet relevant in welke richting een geometrie is gericht. Aan de andere kant werken glas en transparante shaders " gewoon " met een grote refractie in raytracers, maar in EEVEE moet je je vermoeien modi en transparantie-instellingen, niet aanwezig in Cycles, omdat het weergeven van objectinteracties duur en complex is voor rasterizers.

Sommige meer algemene op afbeeldingen gebaseerde textuurkanalen kunnen soms correct worden bewaard, zoals diffuus, spiegelend, glanzend of de steeds populairder " PBR-workflows ", maar zeker nooit procedureel gegenereerde texturen en / of gegenereerde textuurcoördinaten, deze worden tijdens het renderen gegenereerd en kunnen “t worden geëxporteerd. Houd er rekening mee dat de meeste Blender-exporteurs Cycles node helemaal niet ondersteunen (op dat moment van schrijven voor Blender 2.79 #), dus zelfs beeldtexturen die in Cycles-knooppuntbomen worden gebruikt, zullen waarschijnlijk niet behouden blijven. / p>

Hetzelfde geldt voor veel andere functies die specifiek zijn voor toepassingen of render-engines, zoals verlichtingsparameters, schaduwinstellingen, lampen, cameras, natuurkundige simulaties (vloeistoffen, doeken, zachte lichamen), textuuropties (klemmen, knippen, tegels, kleuraanpassingen), gegenereerde textuurcoördinaten (alles dat niet expliciet in kaart is gebracht door een UV-kaart of gemaakt door een gaas uit te pakken), materiaalopties (backface culling, schaduwen, zichtbaarheid, transparantie en overvloeimodi) deeltjessystemen, rook- en vuursimulaties, volumetrische gegevens, modificatoren, vormvervorming (zoals shapekeys of op vervorming gebaseerde animaties) en andere " gegenereerde gegevens ", kunnen “ook niet voor het grootste deel worden geïmporteerd of geëxporteerd (op een paar uitzonderingen na).

Hoe los je het dan op?

Alles wat u kunt en zou moeten importeren / exporteren zijn UV-coördinaten met uw mesh, zodat u uw texturen correct kunt toepassen op de " doeltoepassing " , game-engine of ontvangende weergaveomgeving, waar u uw model zult importeren en weergeven , of het nu Unreal, Unity, Gamekit, externe weergavesoftware of wat dan ook is; of zelfs Blender zelf bij het importeren van modellen van elders. UV-kaarten worden over het algemeen correct bewaard door de meeste uitwisselingsbestandsformaten.

Daar moet je uitgeven enige tijd om je materialen helemaal opnieuw te maken met de meegeleverde texturen en beschikbare kaarten. Ja, het vereist wat terugloop en zal wat tijd vergen, maar met oefenen zal het sneller worden. Bewaar voorinstellingen in herbruikbare bibliotheken, indien beschikbaar, om de hoeveelheid herhaling te verminderen.

Wat u in sommige situaties kunt doen, is Blender gebruiken om texturen te bakken die u later kunt gebruiken in de eindbestemming of ontvangende toepassing om daar materiaal te maken, niet in Blender .

Bakken is het proces van het vooraf berekenen van schaduw en het opslaan in een statische afbeeldingstructuur die verschillende optionele kanalen kan bevatten, zoals diffuse, glanzende, indirecte verlichting, bump maps, normale kaarten, lichtkaarten, onder anderen. Dit kan de grafische kwaliteit of waargenomen " realisme " verbeteren ten koste van dynamiek, aangezien bepaalde eigenschappen van materialen en texturen statisch kunnen worden, aangezien if " geschilderd op het oppervlak ", zoals schaduwen of reflecties. Dit is vaak een vereiste voor high-performance mediums of low-power platforms, zoals web- of mobiele gaming, waar de beschikbare bronnen beperkt of onbekend zijn en snelheid voorrang heeft op grafische getrouwheid.

Uitzonderingen

Een opmerkelijke uitzondering op dit alles is de bestandsindeling glTF , die vanaf versie 2.0 glTF ondersteunt enkele materiaaldefinities op basis van een metallic-ruwheid shading-model in de specificaties. De glTF-Blender-IO add-on gemaakt door de Khronos Group zelf ondersteunt exporteren van Principled BSDF-knooppunt-gebaseerde materialen . Maar zelfs dan zijn er enkele beperkingen.

Vanwege de recente populariteit van Fysiek gebaseerde weergave , en het toenemende gebruik ervan in Game Engines en Real -Tijdweergave-applicaties, het is een soort vaag gedefinieerde " losse standaard " geworden voor het beschrijven van oppervlakte-eigenschappen van materialen (hoewel een aantal verschillend genuanceerd versies bestaan).

Toekomstige ontwikkelingen

PBR is echter geen standaard en niet elke implementatie werkt op dezelfde manier of interpreteert dezelfde parameters op dezelfde manier. De Principled BSDF is al geschreven volgens een model dat is ontworpen door een gevestigde marktleider (Disney) voor eigen intern gebruik en game engines zoals Unreal Engine® of textuurschilderapplicaties zoals Substance Painter® namen het ook over.

Naarmate de PBR-workflow aan populariteit en grip wint, is het mogelijk dat meer applicaties " sluit je aan bij de beweging " en implementeer het in de toekomst. Als een gemeenschappelijke standaard kan worden overeengekomen, is het mogelijk dat in de toekomst meer importeurs / exporteurs de compatibiliteit met een toenemend aantal materiaaleigenschappen verbeteren. Ze zullen waarschijnlijk ofwel rechtstreeks uit een Blend-bestand lezen, een ander hypothetisch nieuw bestandsformaat gebruiken of gedwongen worden om nieuwe standaarden te implementeren; omdat de huidige nog geen datastructuren hebben om ze correct te beschrijven. Op dit moment is het pure speculatie en worden er geen plannen gemaakt.

Gerelateerde problemen

Opmerkingen

  • Ik heb nog nooit Unreal of een andere engine gebruikt, ik heb geen idee, je zult ernaar moeten vragen in een toegewijde gemeenschap I ' ben bang.Ik hoor dat sommige engines niet meerdere materialen per mesh toelaten, je zou het uit elkaar moeten halen in verschillende objecten. Hoe dan ook, je kunt de materialen in Blender toepassen, voor visuele getrouwheid in de viewport, en als de importeur dat ondersteunt ' s minder werk dat je opnieuw moet doen in de engine, hoef je alleen ' verwacht niet dezelfde exacte materiaaldefinities te gebruiken.
  • Het is vermeldenswaard dat veel applicaties / formaten zich bekommeren om toegewezen materiaalslots (dwz welke verts welk materiaal is toegewezen) , maar niet het daadwerkelijke materiaal dat is toegewezen, aangezien ze dit nodig hebben voor het toewijzen van hun eigen materiaal.
  • @Duarte Farrajota Ramos er zijn talloze exportscripts die blender-meshes exporteren met hun toegewezen materialen
  • @ phil123 Je zou dat als antwoord hieronder moeten posten, met links naar de genoemde scripts en een beschrijving van de gebruikte workflow, samen met enkele screenshots van de resultaten.
  • Ik kan iets toevoegen over Unreal en glTF, don ' weet niet van FBX. Cycles, Eevee en Unreal hebben elk krachtige op knooppunten gebaseerde materialen. Het materiaalmodel glTF 2.0 is eenvoudiger, maar kan een groot percentage van de behoeften aan gamekunst aan (PBR op basis van beeldstructuur). glTF werkt tussen Blender en Unreal (vanaf 4.19) voor Static Meshes with Materials. Je kan meerdere materialen hebben in een enkel mesh-object, en deze zullen verschijnen als materiaalslots in Unreal. Van daaruit kunt u de materialen gebruiken die geïmporteerd zijn uit glTF of ze uitwisselen / nieuwe schrijven in Unreal.

Antwoord

Wanneer je naar .fbx exporteert, kun je “geen materialen exporteren, je hebt wel de oppervlaktekleur, maar geen andere instellingen zoals glans en reflectie, voor texturen, ja dat kan, maar je moet interne blender gebruiken (dat doet het wel werk niet met cycli), en zorg ervoor dat je geen knooppunten gebruikt, pas de texturen toe, ga dan, wanneer je in de fbx-exportinstellingen bent, naar beneden, stel het pad in om te kopiëren en vink dan het vakachtige pictogram ernaast aan. zou nu de texturen moeten insluiten met het geëxporteerde fbx-bestand.

PS: ik heb de nieuwe blender 2.79 niet getest

Blender Fbx-exportinstellingen om texturen in te sluiten

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *