.fbx export warum gibt es keine materialien oder texturen?

Ich habe Knotentexturen in einem Netz verwendet, das ich in .FBX exportiert habe.

Ich habe es dann in Unreal Engine 4 importiert und es hat nicht funktioniert. “ Ich habe in Unreal Engine auf die Option Texturen hochladen geklickt.

Gibt es etwas, das ich falsch mache, oder ist es Blender?

Kommentare

Antwort

Dies ist eine häufig gestellte Frage.

TL; DR

Die meisten Dateiformate unterstützen nur nicht das Exportieren von Texturen, geschweige denn vollständige Materialdefinitionen oder andere anwendungsspezifische Funktionen Die meisten Blender-Importeure / -Exporteure unterstützen knotenbasierte Materialien derzeit nicht gut.

Reproduzieren Sie Ihre Materialien manuell mit verfügbaren Texturen in der Zielumgebung.

Lange Geschichte

Materialien sind zu implementierungsspezifisch und eng mit dem Rendering-System verbunden, zu dem sie gehören an oder Software, mit der sie erstellt wurden. Sie können zum größten Teil keine Materialdefinitionen zwischen Anwendungen importieren / exportieren, Sie können nicht einmal Blender-interne Materialien für die Arbeit mit Cycles Renderer verwenden oder umgekehrt, und beide werden mit Blender erstellt, geschweige denn zwischen völlig unterschiedlichen Anwendungen

Aus diesem Grund kann oder versucht kein von Ihnen verwendetes Dateiformat Materialeigenschaften zu importieren oder zu exportieren, sei es 3DS, FBX, Collada, STL, OBJ oder ein anderes. Hierbei handelt es sich meistens um nur auf Maschen ausgerichtete, geometriezentrierte Dateiformate, die sich mit der Portierung von Objektformen befassen, und manchmal auch um Animation, Anker und grundlegende Schattierungen oder Farbeigenschaften (wie MTL-Dateien). Niemals vollständige komplexe Materialdefinitionen.

In den Spezifikationen für die meisten Exchange-Dateiformate sind einfach keine Datenstrukturen enthalten, um diese Daten aufzunehmen, geschweige denn alle möglichen Arten von Eigenschaften, Einstellungen oder Karten. und selbst wenn dies der Fall wäre, gibt es viel zu viele verschiedene Rendering-Implementierungen für eine Vielzahl von Zwecken und die Reaktion auf unterschiedliche Anforderungen (wie Geschwindigkeit oder Reaktionsfähigkeit für Echtzeit-Rendering-Engines oder -Spiele oder Realismus für physisch basierte „Offline-Renderings“) Verwenden eines eigenen Parametersatzes und bestimmter Arten der Interpretation bestimmter Eigenschaften, um Einstellungen, Parameter oder bestimmte Merkmale problemlos korrekt miteinander abgleichen zu können.

Beispielsweise benötigen die meisten Echtzeit-Rendering-Systeme eine Form von explizite " Backface-Culling-Option ", da die Rasterisierung aus Leistungsgründen stark davon abhängt, beim Rendern wie bei Cycles jedoch nur ein grundlegender Knoten ist Für Raytracer ist es unerheblich, in welche Richtung eine Geometrie zeigt. Auf der anderen Seite arbeiten Glas- und transparente Shader " nur " mit großer Brechung in Raytracern, aber in EEVEE müssen Sie sich mit dem Mischen herumschlagen Modi und Transparenzeinstellungen, die in Zyklen nicht vorhanden sind, da die Darstellung von Objektinteraktionen für Rasterisierer teuer und komplex ist.

Einige häufigere bildbasierte Texturkanäle können manchmal korrekt beibehalten werden, z. B. diffus, spiegelnd, glänzend oder " PBR-Workflows " werden immer beliebter, aber sicherlich nie prozedural generierte Texturen und / oder generierte Texturkoordinaten. Diese werden zum Renderzeitpunkt generiert und können Beachten Sie, dass die meisten Blender-Exporteure (zu diesem Zeitpunkt) nicht einmal Materialien unterstützen, die auf basieren Es wird höchstwahrscheinlich nicht erwartet, dass selbst in Cycles-Knotenbäumen verwendete Bildtexturen erhalten bleiben.

Gleiches gilt für viele andere Funktionen, die für Anwendungen oder Render-Engines wie Beleuchtungsparameter, Schatteneinstellungen, Lampen, Kameras, Physiksimulationen (Flüssigkeiten, Tücher, weiche Körper), Texturoptionen (Klemmen, Beschneiden, Kacheln, Farbanpassungen), generierte Texturkoordinaten (alles, was nicht explizit durch eine UV-Karte abgebildet oder durch Auspacken eines Netzes erstellt wurde), Materialoptionen (Backface Culling, Schatten, Sichtbarkeit, Transparenz und Mischmodi) Partikelsysteme, Rauch- und Feuersimulationen, Volumendaten, Modifikatoren, Formmorphing (wie Shapekeys oder deformationsbasierte Animationen) und andere " generierte Daten " können (mit wenigen Ausnahmen) auch größtenteils nicht importiert oder exportiert werden.

Wie kann man sie dann lösen?

Alles, was Sie importieren / exportieren können und sollten, sind UV-Koordinaten mit Ihrem Netz, damit Sie Ihre Texturen unter Zielanwendung " , Spiel-Engine oder Empfangs-Rendering-Umgebung, in der Sie Ihr Modell importieren und anzeigen Sei es Unreal, Unity, Gamekit, externe Rendering-Software oder so weiter oder sogar Blender selbst, wenn Modelle von einem anderen Ort importiert werden. UV-Karten werden von den meisten Exchange-Dateiformaten standardmäßig korrekt beibehalten.

Dort sollten Sie Geld ausgeben Einige Zeit, um Ihre Materialien mit den bereitgestellten Texturen und verfügbaren Karten von Grund auf neu zu erstellen. Ja, es erfordert ein gewisses Zurückverfolgen und wird einige Zeit dauern, aber mit der Übung wird es schneller. Speichern Sie Voreinstellungen in wiederverwendbaren Bibliotheken, sofern verfügbar, um die Anzahl der Wiederholungen zu verringern.

In einigen Situationen können Sie Blender verwenden, um Texturen zu backen dass Sie später im endgültigen Ziel verwenden oder eine Anwendung empfangen können, um dort Materialien zu erstellen, nicht in Blender .

Beim Backen wird die Schattierung vorberechnet und Speichern in einer statischen Bildtextur, die mehrere optionale Kanäle wie diffuse, glänzende, indirekte Beleuchtung, Bump-Maps, normale Maps und Light-Maps enthalten kann. Dies kann die Grafikqualität verbessern oder den " Realismus " auf Kosten der Dynamik wahrnehmen, da bestimmte Eigenschaften von Materialien und Texturen statisch werden können wenn " auf die Oberfläche " gemalt wird, wie Schatten oder Reflexionen. Dies ist häufig eine Voraussetzung für Hochleistungsmedien oder Plattformen mit geringem Stromverbrauch wie Web- oder Mobile-Gaming, bei denen die verfügbaren Ressourcen begrenzt oder unbekannt sind und die Geschwindigkeit Vorrang vor der grafischen Wiedergabetreue hat.

Ausnahmen

Eine bemerkenswerte Ausnahme ist das Dateiformat glTF , das ab Version 2.0 verwendet wird glTF unterstützt einige Materialdefinitionen, die auf einem Metall-Rauheits-Schattierungsmodell in seinen Spezifikationen basieren. Das von der Khronos Group selbst erstellte Addon glTF-Blender-IO unterstützt das Exportieren von knotenbasierten BSDF-Materialien mit Prinzipien . Aber auch dann gelten einige Einschränkungen.

Aufgrund der jüngsten Beliebtheit des Physikalisch basierten Renderns und seiner zunehmenden Verwendung in Game Engines und Real – Zeit-Rendering-Anwendungen sind zu einer Art vage definiertem " losem Standard " zur Beschreibung der Oberflächeneigenschaften von Materialien geworden (obwohl mehrere unterschiedlich nuanciert sind) Versionen existieren).

Zukünftige Entwicklungen

PBR ist jedoch kein Standard und nicht jede Implementierung funktioniert auf die gleiche Weise oder interpretiert die gleichen Parameter ähnlich. Das BSDF mit Prinzipien wurde bereits nach einem Modell geschrieben, das von einem etablierten Branchenführer (Disney) für den eigenen internen Gebrauch und für das eigene Spiel entwickelt wurde Engines wie Unreal Engine® oder Texture Painting-Anwendungen wie Substance Painter® haben es ebenfalls übernommen.

Da der PBR-Workflow immer beliebter und attraktiver wird, ist es möglich, dass mehr Anwendungen " Schließen Sie sich der Bewegung " an und implementieren Sie sie in Zukunft. Wenn ein gemeinsamer Standard vereinbart werden kann, ist es möglich, dass in Zukunft mehr Importeure / Exporteure die Verträglichkeit mit einer zunehmenden Anzahl von Materialeigenschaften verbessern. Sie werden wahrscheinlich entweder direkt aus einer Blend-Datei lesen, ein anderes hypothetisches neues Dateiformat verwenden oder gezwungen sein, neue Standards zu implementieren. da den aktuellen noch Datenstrukturen fehlen, um sie korrekt zu beschreiben. Zu diesem Zeitpunkt handelt es sich um reine Spekulation, und es sind keine Pläne bekannt.

Verwandte Probleme

Kommentare

  • Ich habe noch nie Unreal oder eine andere Engine verwendet. Ich habe keine Ahnung. Sie müssen in einer dedizierten Community danach fragen. I ' Ich habe Angst.Ich habe gehört, dass einige Motoren nicht mehrere Materialien pro Masche zulassen. Sie müssten es in mehrere Objekte aufteilen. Auf jeden Fall können Sie die Materialien in Blender anwenden, um die visuelle Wiedergabetreue im Ansichtsfenster zu gewährleisten. Wenn der Importeur unterstützt, dass ' weniger Arbeit in der Engine erforderlich ist, müssen Sie nur ' Erwarten Sie nicht, genau dieselben Materialdefinitionen zu verwenden.
  • Es ist erwähnenswert, dass sich viele Anwendungen / Formate um zugewiesene Materialsteckplätze kümmern (dh welche Verts haben welches Material zugewiesen). , aber nicht das tatsächlich zugewiesene Material, da diese zum Zuweisen eigener Materialien benötigt werden.
  • @Duarte Farrajota Ramos Es gibt unzählige Exportskripte, die Mixer-Meshes mit den zugewiesenen Materialien exportieren
  • @ phil123 Sie sollten dies als Antwort unten mit Links zu diesen Skripten und einer Beschreibung des verwendeten Workflows sowie einigen Screenshots der Ergebnisse posten.
  • Ich kann etwas über Unreal und glTF hinzufügen, don ' weiß nichts über FBX. Cycles, Eevee und Unreal verfügen jeweils über leistungsstarke knotenbasierte Materialien. Das glTF 2.0-Materialmodell ist einfacher, kann jedoch einen großen Prozentsatz der Anforderungen an Spielekunst erfüllen (bildtexturbasiertes PBR). glTF arbeitet zwischen Blender und Unreal (ab 4.19) für statische Netze mit Materialien. Sie können mehrere Materialien in einem einzelnen Netzobjekt haben, und diese werden in Unreal als Materialschlitze angezeigt. Von dort aus können Sie die aus glTF importierten Materialien verwenden oder sie austauschen / neue in Unreal verfassen.

Antwort

Wenn Sie nach .fbx exportieren, können Sie keine Materialien exportieren, Sie haben die Oberflächenfarbe, aber keine anderen Einstellungen wie Glanz und Reflexion für Texturen, ja, Sie können, aber Sie müssen den internen Mixer verwenden (dies ist der Fall) nicht mit Zyklen arbeiten), und stellen Sie sicher, dass Sie keine Knoten verwenden, wenden Sie die Texturen an. Gehen Sie dann in den fbx-Exporteinstellungen nach unten, legen Sie den zu kopierenden Pfad fest und aktivieren Sie das Kontrollkästchen daneben sollte jetzt die Texturen in die exportierte fbx-Datei einbetten.

PS: Ich habe den neuen Mixer 2.79

Blender-Fbx-Exporteinstellungen zum Einbetten von Texturen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.