eksport .fbx dlaczego nie ma materiałów ani tekstur?

Użyłem tekstur węzłów w siatce, którą wyeksportowałem do formatu .FBX.

Następnie zaimportowałem ją do Unreal Engine 4 i nie udało się. ” t importować jakiekolwiek tekstury; kliknąłem opcję Prześlij tekstury w Unreal Engine.

Czy coś robię źle, czy jest to Blender?

Komentarze

Odpowiedź

To jest często zadawane pytanie.

TL; DR

Większość formatów plików po prostu nie obsługuje eksportowania tekstur, nie mówiąc już o pełnych definicjach materiałów lub innych funkcjach specyficznych dla aplikacji . Ponadto większość importerów / eksporterów Blendera obecnie nie obsługuje dobrze materiałów opartych na węzłach.

Ręcznie odtwarzaj materiały, używając dostępnych tekstur w środowisku docelowym.

Długa historia

Materiały są zbyt specyficzne dla implementacji i ściśle powiązane z systemem renderowania, do którego należą do lub oprogramowania, za pomocą którego zostały utworzone. W większości przypadków nie możesz importować / eksportować definicji materiałów między aplikacjami, nie możesz nawet zmusić wewnętrznych materiałów Blendera do pracy z Cycles Renderer ani odwrotnie, i oba są tworzone w Blenderze, nie mówiąc już o całkowicie różnych aplikacjach .

Z tego powodu żaden format pliku, którego używasz, nie może, ani nawet nie próbuje, importować lub eksportować właściwości materiału, czy to 3DS, FBX, Collada, STL, OBJ czy jakikolwiek inny. Są to głównie formaty plików skupione wyłącznie na siatce i geometrii, związane z przenoszeniem kształtów obiektów, a czasami animacji, szkieletu i podstawowego cieniowania lub właściwości kolorów (np. Pliki MTL); nigdy nie pełnych skomplikowanych definicji materiałów.

Po prostu nie ma struktur danych w specyfikacjach dla większości formatów plików wymiany, aby pomieścić te dane, nie mówiąc już o wszystkich możliwych typach właściwości, ustawień lub map; a nawet gdyby istniało, jest zbyt wiele różnych implementacji renderowania do różnych celów i odpowiadających różnym wymaganiom (np. szybkości lub responsywności silników renderujących w czasie rzeczywistym lub gier lub realizmu fizycznego renderowania offline), a każda używanie własnego zestawu parametrów i określonych sposobów interpretacji określonych właściwości, aby móc łatwo dopasować ustawienia, parametry lub określone cechy między nimi.

Na przykład większość systemów renderowania w czasie rzeczywistym potrzebuje jakiejś formy jawna opcja " backface culling ", ponieważ rasteryzacja w dużym stopniu opiera się na niej ze względu na wydajność, ale w renderowaniu podobnym do Cycles jest to tylko podstawowy węzeł, ponieważ w przypadku raytracerów nie ma znaczenia, w którym kierunku geometria jest zwrócona. Z drugiej strony szklane i przezroczyste shadery " po prostu działają " z doskonałym załamaniem w raytracerach, ale w EEVEE trzeba się bawić z blendowaniem tryby i ustawienia przezroczystości, nieistniejące w Cycles, ponieważ reprezentowanie interakcji między obiektami jest kosztowne i skomplikowane dla rasteryzatorów.

Niektóre bardziej popularne kanały tekstur oparte na obrazach mogą czasami być poprawnie zachowane, takie jak rozproszenie, lustrzanie, połysk lub coraz bardziej popularne " przepływy pracy PBR ", ale z pewnością nigdy nie generowane proceduralnie i / lub współrzędne tekstur są generowane w czasie renderowania i mogą „nie wyeksportować. Należy pamiętać, że większość eksporterów Blendera w ogóle nie obsługuje nawet materiałów opartych na węźle Cycles (w tamtym czasie pisania dla Blendera 2.79 #), więc nawet tekstury obrazów używane w drzewach węzłów Cycles najprawdopodobniej nie zostaną zachowane. / p>

To samo dotyczy wielu innych funkcji specyficznych dla aplikacji lub silników renderujących, takich jak parametry oświetlenia, ustawienia cienia, lampy, kamery, symulacje fizyki (płyny, tkaniny, miękkie ciała), opcje tekstur (zaciskanie, przycinanie, kafelkowanie, dopasowywanie kolorów), generowane współrzędne tekstury (wszystko, co nie zostało wyraźnie odwzorowane przez mapę UV lub utworzone przez rozpakowanie siatki), opcje materiałów (usuwanie tylnych powierzchni, cienie, widoczność, przezroczystość i tryby mieszania) systemy cząstek, symulacje dymu i ognia, dane wolumetryczne, modyfikatory, morfing kształtów (np. shekeys lub animacje oparte na deformacji) i inne " wygenerowane dane ", nie można również w większości zaimportować lub wyeksportować (z kilkoma wyjątkami).

Jak więc rozwiązać ten problem?

Wszystko, co możesz i powinieneś importować / eksportować, to współrzędne UV ze swoją siatką, dzięki czemu można poprawnie zastosować tekstury w " docelowa aplikacja " , silnik gry lub środowisko odbierające renderowanie, w którym będziesz„ importować i wyświetlać swój model , czy to Unreal, Unity, Gamekit, zewnętrzne oprogramowanie do renderowania czy cokolwiek; a nawet sam Blender podczas importowania modeli z innego miejsca. Mapy UV są na ogół poprawnie zachowywane przez większość formatów plików wymiany.

Tam powinieneś spędzić ponowne odtworzenie materiałów od zera za pomocą dostarczonych tekstur i dostępnych map.Tak, wymaga to trochę cofania się i zajmie trochę czasu, ale z praktyką będzie to szybciej. Zapisz ustawienia w bibliotekach wielokrotnego użytku, jeśli są dostępne, aby zmniejszyć liczbę powtórzeń.

W niektórych sytuacjach możesz użyć Blendera do wypalania tekstur że możesz później użyć w docelowym miejscu docelowym lub aplikacji odbierającej do tworzenia tam materiałów, poza Blenderem .

Pieczenie to proces wstępnego obliczania cieniowania i przechowywanie go w statycznej teksturze obrazu, która może zawierać kilka opcjonalnych kanałów, takich jak między innymi rozproszone, błyszczące, pośrednie oświetlenie, mapy wypukłości, mapy normalne, mapy światła. Może to poprawić jakość grafiki lub postrzegany " realizm " kosztem dynamizmu, ponieważ niektóre właściwości materiałów i tekstur mogą stać się statyczne, ponieważ jeśli " namalowane na powierzchni ", na przykład cienie lub odbicia. Jest to często wymagane w przypadku platform o wysokiej wydajności lub platformach o niskim zużyciu energii, takich jak gry internetowe lub mobilne, gdzie dostępne zasoby są ograniczone lub nieznane, a szybkość ma pierwszeństwo przed wiernością grafiki.

Wyjątki

Jednym godnym uwagi wyjątkiem od tego wszystkiego jest format pliku glTF , który na dzień w wersji 2.0 glTF obsługuje niektóre definicje materiałów oparte na modelu cieniowania szorstkości metalu w specyfikacji. Dodatek glTF-Blender-IO stworzony przez grupę Khronos obsługuje eksportowanie materiałów opartych na węzłach BSDF Principled . Ale nawet wtedy obowiązują pewne ograniczenia.

Ze względu na niedawną popularność Renderowania opartego na fizyce oraz jego rosnące zastosowanie w silnikach gier i rzeczywistych -Time aplikacje renderujące stały się rodzajem niejasno zdefiniowanym " luźnym standardem " do opisywania właściwości powierzchni materiałów (chociaż kilka różnych niuansów istnieją wersje).

Przyszłe zmiany

PBR nie jest standardem i nie każda implementacja działa w ten sam sposób lub podobnie interpretuje te same parametry. Principled BSDF został już napisany zgodnie z modelem zaprojektowanym przez uznanego lidera branży (Disney) do użytku wewnętrznego i do gry silniki takie jak Unreal Engine® lub aplikacje do malowania tekstur, takie jak Substance Painter®, również je przyjęły.

Ponieważ przepływ pracy PBR zyskuje na popularności i przyczepności, możliwe jest, że więcej aplikacji " dołącz do ruchu " i wdrażaj go w przyszłości. Jeśli uda się uzgodnić wspólny standard, może się okazać, że w przyszłości więcej importerów / eksporterów poprawi zgodność z coraz większą liczbą właściwości materiałów. Prawdopodobnie albo będą czytać bezpośrednio z pliku Blend, albo użyją innego, hipotetycznego nowego formatu pliku, albo będą zmuszeni do implementacji nowych standardów; ponieważ obecne wciąż brakuje struktur danych, aby je poprawnie opisać. W tej chwili to czysta spekulacja i żadne znane plany nie są sporządzane.

Powiązane problemy

Komentarze

  • Nigdy nie używałem Unreal ani żadnego innego silnika, nie mam pojęcia, będziesz musiał zapytać o to w dedykowanej społeczności I ' boję się.Słyszałem, że niektóre silniki nie pozwalają na użycie wielu materiałów na siatkę, musiałbyś rozdzielić ją na kilka obiektów. W każdym razie możesz zastosować materiały w Blenderze, aby uzyskać wizualną wierność w oknie roboczym, a jeśli importer obsługuje to ' to mniej pracy, którą musisz powtórzyć w silniku, po prostu nie ' nie spodziewaj się używania tych samych dokładnych definicji materiałów.
  • Warto zauważyć, że wiele aplikacji / formatów dba o przypisane miejsca na materiały (tj. Które verts mają przypisany materiał) , ale nie faktycznego przypisanego materiału, ponieważ potrzebują ich do przypisywania własnych materiałów.
  • @Duarte Farrajota Ramos istnieje niezliczona liczba skryptów eksportu, które eksportują siatki blendera z przypisanymi materiałami.
  • @ phil123 Powinieneś zamieścić to jako odpowiedź poniżej, z linkami do wspomnianych skryptów i opisem zastosowanego przepływu pracy, wraz z kilkoma zrzutami ekranu wyników
  • Mogę dodać coś o Unreal i glTF, don ' Nie wiem o FBX. Cycles, Eevee i Unreal mają potężne materiały oparte na węzłach. Model materiału glTF 2.0 jest prostszy, ale może obsłużyć duży procent potrzeb związanych z grafiką gier (PBR oparty na teksturach obrazu). glTF działa między Blenderem i Unreal (od 4.19) dla statycznych siatek z materiałami. Możesz mieć wiele materiałów w jednym obiekcie siatkowym, a te pojawią się jako szczeliny materiałów w Unreal. Stamtąd możesz używać materiałów zaimportowanych z glTF lub wymieniać je / tworzyć nowe w Unreal.

Odpowiedź

Podczas eksportowania do .fbx nie możesz eksportować materiałów, będziesz mieć kolor powierzchni, ale nie będziesz mieć innych ustawień, takich jak połysk i odbicie, dla tekstur, tak możesz, ale musisz użyć wewnętrznego blendera (tak nie działa z cyklami) i upewnij się, że nie używasz węzłów, zastosuj tekstury, a następnie, w ustawieniach eksportu fbx, przejdź na dół, ustaw ścieżkę do kopiowania, a następnie zaznacz ikonę podobną do pola obok, to powinien teraz osadzić tekstury w wyeksportowanym pliku fbx.

PS: Nie testowałem nowego blendera 2.79

Ustawienia eksportu Blendera Fbx w celu osadzenia tekstur

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *