STL, OBJ czy 3MF: jaki format pliku 3D wybrać?
Wybierz STL do jednokolorowego wydruku, który trzeba tylko pociąć w slicerze, OBJ, gdy model ma tekstury do renderingu lub silnika gry, a 3MF, gdy obsługuje go Twój slicer i chcesz zachować jednostki, kolory oraz wiele części. Format decyduje o tym, jakie metadane trafiają razem z siatką; nigdy nie decyduje o tym, czy sama siatka jest poprawna.
STL: lista trójkątów i nic więcej
STL powstał w 1987 roku dla pierwszych maszyn stereolitograficznych firmy 3D Systems i widać to w jego konstrukcji. Plik to płaska lista trójkątów, z których każdy opisany jest normalną ścianki i trzema wierzchołkami. Nie ma wspólnej tablicy wierzchołków, więc narożnik stykający się z sześcioma trójkątami zapisany jest sześć razy. Nie ma też pola jednostki: współrzędna 25 może oznaczać milimetry, cale lub metry, a prawie każdy slicer zakłada milimetry. Kolor, tekstura i nazwy części nie mieszczą się w podstawowym formacie, i właśnie dlatego czyta go każdy slicer, program CAD i serwis druku.
STL występuje w dwóch kodowaniach. ASCII STL zapisuje wszystko tekstem, w liniach takich jak facet normal, outer loop i vertex 12.5 0 3.2, więc można go otworzyć w edytorze tekstu i odczytać liczby. Binarny STL zaczyna się 80-bajtowym nagłówkiem i 4-bajtową liczbą trójkątów, a potem zapisuje każdy trójkąt jako dwanaście 4-bajtowych liczb zmiennoprzecinkowych plus 2-bajtowe pole atrybutu: dokładnie 50 bajtów na trójkąt. Dzięki tej regule łatwo przewidzieć rozmiar. Model z milionem trójkątów to około 50 MB w wersji binarnej, a wersja ASCII tej samej siatki jest zwykle cztery do sześciu razy większa, bo każda cyfra staje się znakiem.
Prostota jest zarazem siłą i pułapką. STL nie powie, czy miał być jedną częścią, czy trzema, czy wyeksportowano go w calach, ani czy jego trójkąty faktycznie zamykają bryłę. Slicer ustala to z surowych współrzędnych, a gdy się pomyli, dostajemy część 25,4 razy za małą albo brakującą ściankę. Dla jednokolorowej części, którą sam zaprojektowałeś i wyeksportowałeś w milimetrach, nie ma to znaczenia, a STL pozostaje formatem, który najrzadziej zostaje odrzucony.
OBJ: wielokąty, UV i osobny plik materiałów
OBJ pochodzi od Wavefront Technologies, której oprogramowanie Advanced Visualizer używało go pod koniec lat 80. W latach 90. rozpowszechnił się jako tekstowy format wymieniany przez niemal każdy program 3D. W przeciwieństwie do STL przechowuje listę wierzchołków i buduje ściany z indeksów, więc wspólny narożnik zapisany jest raz, a ściany mogą być trójkątami, czworokątami lub większymi wielokątami. Linie zaczynające się od v zawierają pozycje, vt współrzędne tekstur (UV), vn normalne, a f ściany. Grupy (g) i obiekty (o) nazywają części, dlatego OBJ przechodzi przez Blendera, Mayę czy ZBrusha z zachowaną strukturą.
Wygląd modelu znajduje się poza plikiem .obj. Linia mtllib wskazuje towarzyszący plik .mtl, a linie usemtl przypisują materiały do ścian. Plik .mtl przechowuje kolory, takie jak Kd (rozproszony), i wskazuje obrazy tekstur wpisami typu map_Kd wood.png. Model OBJ z teksturą to więc co najmniej trzy pliki: geometria, biblioteka materiałów i jeden lub więcej obrazów, wszystkie wskazane ścieżkami względnymi. Jeśli wyślesz sam .obj, odbiorca zobaczy szary model. Ten podział jest przydatny w produkcji gier i efektów wizualnych, gdzie graficy zmieniają tekstury bez dotykania geometrii, i jest najczęstszym powodem, dla którego pobrany model wygląda źle.
OBJ ma ten sam słaby punkt co STL, jeśli chodzi o skalę: przechowuje gołe liczby bez jednostki. Większość narzędzi do modelowania zapisuje metry lub centymetry, a slicery czytają milimetry, więc OBJ ze sklepu z zasobami do gier może trafić do slicera z błędem 10 lub 1000 razy. Do druku OBJ nie dodaje niczego, z czego korzysta slicer, poza kolorem wierzchołków w kilku programach, więc jeśli chcesz wydrukować zasób graficzny, zwykle najprościej zachować tekstury do renderowania, a do slicera wysłać czystą siatkę. W przeciwnym kierunku zamiana STL na OBJ to najkrótsza droga od modelu do druku do renderowania lub gry.
3MF: pakiet ZIP stworzony do druku
3MF opublikowało w 2015 roku 3MF Consortium, grupa założona przez Microsoft wraz z firmami z branży druku i CAD. Plik .3mf to archiwum ZIP, ten sam format kontenera, który opisujemy w artykule ZIP, RAR czy 7z. Zmień rozszerzenie na .zip, a znajdziesz plik XML 3D/3dmodel.model z siatką, plik typów zawartości, pliki relacji, a często także miniatury i konfigurację slicera. Każdy model deklaruje swoją jednostkę (mikron, milimetr, centymetr, cal, stopa lub metr), więc problem skali, który nęka STL i OBJ, po prostu nie występuje. Kolory, materiały bazowe, wiele obiektów i ich rozmieszczenie na stole roboczym należą do specyfikacji.
Specyfikacja wymaga też, aby siatki były rozmaitościowe (manifold) i spójnie zorientowane: każda krawędź należy do dokładnie dwóch trójkątów, a wszystkie są skierowane na zewnątrz. Eksportery przestrzegające reguł nie zapiszą otwartej, samoprzecinającej się geometrii, którą STL chętnie przenosi. Obsługa w obecnych narzędziach jest szeroka. PrusaSlicer, Bambu Studio, OrcaSlicer i UltiMaker Cura czytają 3MF, PrusaSlicer i Bambu Studio zapisują cały projekt jako .3mf z ustawieniami druku i malowanymi kolorami, a aplikacja Microsoft 3D Builder w Windows otwiera go bezpośrednio. Słabym punktem są starsze oprogramowanie sprzętowe, portale farm druku i importery CAD, które nadal oczekują STL; w takim przypadku skonwertuj 3MF na STL i pogódź się z tym, że dodatki zostaną za nami.
| from ↓ · to → | Units | Color | Textures | Wiele części | Ustawienia druku | Reguła rozmaitości |
|---|---|---|---|---|---|---|
| STL | – STL to Units: no | – STL to Color: no | – STL to Textures: no | – STL to Wiele części: no | – STL to Ustawienia druku: no | – STL to Reguła rozmaitości: no |
| OBJ | – OBJ to Units: no | OBJ to Color: yes | OBJ to Textures: yes | OBJ to Wiele części: yes | – OBJ to Ustawienia druku: no | – OBJ to Reguła rozmaitości: no |
| 3MF | 3MF to Units: yes | 3MF to Color: yes | 3MF to Textures: yes | 3MF to Wiele części: yes | 3MF to Ustawienia druku: yes | 3MF to Reguła rozmaitości: yes |
Dopasowanie formatu do zadania
Właściwy format zależy od tego, dokąd trafi plik, a nie od tego, który jest nowszy. Jeśli następnym krokiem jest slicer, a część ma jeden kolor, STL wystarczy i nadal jest formatem rozumianym przez każde forum, bibliotekę modeli i serwis druku. Jeśli następnym krokiem jest renderer, silnik gry lub program do modelowania innego grafika, OBJ zachowa UV, normalne i nazwane grupy, które STL odrzuca, a jego tekstowa forma ułatwia szukanie problemów.
3MF jest potrzebny, gdy plik niesie więcej niż geometrię. Wielokolorowy wydruk namalowany w Bambu Studio, stół z dwunastoma częściami ułożonymi do jednego zadania, część zaprojektowana w calach czy projekt, który chcesz otworzyć ponownie z tą samą wysokością warstwy i wypełnieniem, wymagają 3MF, bo żaden inny format z tej listy nie pomieści takich informacji. Gdy plik ma trafić w kilka miejsc, zachowaj najbogatszą wersję jako kopię główną i eksportuj z niej prostsze za pomocą konwertera modeli 3D, zamiast łączyć kolejne konwersje.
STL do zwykłych wydruków
Jedna część, jeden kolor, eksport w milimetrach. Otwiera się w każdym slicerze, oknie importu CAD i formularzu serwisu druku.
OBJ do modeli z teksturami
UV, normalne i nazwane grupy dla Blendera, Mayi, Unity lub Unreal. Dołącz plik .mtl i obrazy tekstur.
3MF do nowoczesnych slicerów
Prawdziwe jednostki, kolory, kilka obiektów i ustawienia druku w jednym ZIP-ie. Natywny format projektu PrusaSlicer i Bambu Studio.
Pięć sposobów, w jakie plik 3D może zawieść
Większość nieudanych wydruków i błędnych importów, które przypisuje się formatowi, to tak naprawdę problemy z siatką albo z założeniami programu odbierającego. STL jest najbardziej narażony, bo nie niesie metadanych wychwytujących pomyłki; OBJ ma te same problemy ze skalą i brakującymi plikami; 3MF unika większości z nich dzięki konstrukcji, choć niedbały eksporter nadal może zapisać złą siatkę. Rozwiń poniższe wiersze, aby zobaczyć, jak wygląda każda usterka i skąd zwykle się bierze.
Siatka nierozmaitościowa
Krawędzie należące do jednego trójkąta albo do trzech lub więcej, szczeliny między powierzchniami lub ścianki o zerowej grubości. Slicer pokazuje brakujące warstwy, przypadkowe dziury lub ostrzeżenie o otwartych krawędziach. Przyczyna leży w modelowaniu lub eksporcie, często w łączeniu części, które tylko się stykają.
Odwrócone normalne
Niektóre trójkąty są skierowane do wewnątrz. Renderery pokazują czarne lub przezroczyste plamy, a slicery mogą traktować ten obszar jak pustą przestrzeń. Naprawi to polecenie przeliczenia normalnych w Blenderze, Meshmixerze lub narzędziu naprawy w slicerze.
Pomylone milimetry i cale
Część narysowana w calach trafia do slicera zakładającego milimetry 25,4 razy za mała; centymetry odczytane jako milimetry dają błąd 10-krotny. STL i OBJ nie zapisują jednostki, więc ustawiasz ją przy eksporcie lub konwersji.
Brak pliku .mtl lub tekstur
OBJ, który ładuje się na szaro lub w kolorze magenta, stracił bibliotekę materiałów lub obrazy albo ścieżki w pliku .mtl wskazują folder na komputerze autora. Trzymaj wszystkie pliki w jednym folderze i spakuj je razem.
Ogromne pliki ASCII STL
Szczegółowy skan zapisany jako ASCII STL może przekroczyć kilkaset megabajtów, co spowalnia slicery i przekracza limity wysyłania. Ponowny eksport tej samej siatki jako binarny STL zmniejsza plik mniej więcej pięciokrotnie bez zmiany ani jednego trójkąta.
Jak duże bywają pliki w każdym formacie
Rozmiar wynika ze struktury. Binarny STL ma stałe 50 bajtów na trójkąt, więc można go obliczyć przed eksportem. ASCII STL powtarza każdy narożnik jako tekst i zwykle jest cztery do sześciu razy większy od binarnego. OBJ zapisuje każdy wspólny wierzchołek raz i odwołuje się do niego indeksem, więc dla typowej zamkniętej siatki jest mniejszy niż ASCII STL i mniej więcej na poziomie binarnego STL, a większy, jeśli zawiera też UV i normalne. 3MF przechowuje indeksowany XML i kompresuje go w ZIP-ie, co zwykle czyni go najmniejszym z trójki dla tej samej geometrii.
Poniższe wartości są typowe dla zamkniętej siatki z około 500 000 trójkątów, na przykład szczegółowej figurki. Rzeczywiste pliki różnią się zależnie od dokładności współrzędnych i eksportera, więc traktuj je jako rzędy wielkości, przydatne, gdy serwis druku ogranicza wysyłane pliki albo STL wyeksportowany z 3MF wychodzi kilka razy większy.
- Binarny STL (500 000 trójkątów × 50 bajtów)
- ≈ 25 MB
- ASCII STL, ta sama siatka, typowo
- ≈ 100–150 MB
- OBJ bez UV, typowo
- ≈ 15–30 MB
- 3MF po kompresji ZIP, typowo
- ≈ 5–12 MB
Co naprawia konwersja, a czego nigdy nie naprawi
Konwersja odczytuje trójkąty z jednego kontenera i zapisuje je w drugim. Wszystko, co format docelowy potrafi wyrazić, zostaje przeniesione; reszta jest pomijana. Dlatego STL na OBJ jest bezstratny dla geometrii, 3MF na STL traci kolory, jednostki i układ stołu, a OBJ na STL traci tekstury i nazwy części. W narzędziach 3D w UltKit dodatkowe decyzje są jawne: Jednostki modelu informują konwerter, jakiej skali używa źródło, Oś pionowa obsługuje różnicę między osią Y w górę a Z w górę w silnikach gier i slicerach, a Scal w jedną siatkę decyduje, czy oddzielne części pozostaną oddzielne.
Konwersja nigdy nie naprawia siatki. Jeśli STL ma dziurę, OBJ z niego wykonany ma tę samą dziurę, a eksporter 3MF albo ją odrzuci, albo zapisze mimo wszystko. Naprawa to osobny krok w narzędziu do siatek lub we wbudowanym naprawiaczu slicera i najlepiej zrobić ją raz, w pliku głównym, zanim wyeksportujesz cokolwiek innego. Tak samo jest ze skalą: konwersja nie może wiedzieć, że część miała być w calach, jeśli jej tego nie powiesz. Szczegółowość działa podobnie: STL o niskiej liczbie wielokątów zostanie OBJ lub 3MF o niskiej liczbie wielokątów, więc gdy liczy się jakość, wyeksportuj model ponownie ze źródła.
Co zmienia zmiana formatu
- Przenosi te same trójkąty do kontenera, który akceptuje inny program
- Stosuje jednostkę wybraną w polu Jednostki modelu, naprawiając błąd skali 25,4× lub 10×
- Obraca model między osią Y w górę a Z w górę za pomocą Oś pionowa
- Zmniejsza ASCII STL, zapisując zamiast niego wersję binarną
- Zachowuje lub scala oddzielne części, zależnie od Scal w jedną siatkę
Co zostaje dokładnie takie, jakie było
- Dziury, otwarte krawędzie i geometria nierozmaitościowa
- Odwrócone lub niespójne normalne
- Samoprzecinające się części i ścianki o zerowej grubości
- Szczegóły utracone przy pierwszym eksporcie siatki
- Kolory i tekstury, gdy format docelowy nie ma na nie miejsca
Tabela decyzyjna: STL, OBJ czy 3MF
Przy tym pytaniu zawsze wracają jeszcze dwa inne formaty. STEP (ISO 10303) przechowuje dokładne bryły i powierzchnie zamiast trójkątów, więc to format do użycia, gdy część ma wrócić do Fusion 360, SolidWorks lub FreeCAD w celu edycji. GLB, binarna forma glTF 2.0 grupy Khronos, pakuje siatkę wraz z materiałami i teksturami w jeden plik w metrach i jest formatem do pokazywania modelu w sieci lub w AR na Androidzie.
Dla trzech formatów omawianych w artykule poniższa tabela podsumowuje wybór według miejsca docelowego. Jeśli pasują dwa wiersze, wybierz format niosący więcej informacji, a prostszy wyeksportuj później; przejście z 3MF na STL jest łatwe, a odtwarzanie utraconych kolorów lub jednostek to praca ręczna.
| Sytuacja | Najlepszy format | Dlaczego |
|---|---|---|
| Jednokolorowa część do dowolnego slicera | STL (binarny) | Powszechna obsługa; slicer nie potrzebuje niczego więcej |
| Wysyłanie do biblioteki modeli lub serwisu druku | STL, a także 3MF, jeśli jest dostępny | STL jest zawsze akceptowany; 3MF zachowuje jednostki i kolory |
| Wydruk wielokolorowy lub z wielu materiałów | 3MF | Jedyny format z tej listy, który przechowuje kolory i materiały poszczególnych części dla slicerów |
| Stół z kilkoma częściami i ustawieniami druku | 3MF | Przechowuje rozmieszczenie obiektów i ustawienia slicera w jednym pliku |
| Część zaprojektowana w calach | 3MF | Deklaruje jednostkę, więc nic nie jest skalowane przez 25,4 |
| Model z teksturami do Blendera, Unity lub Unreal | OBJ (+ .mtl i obrazy) | Zachowuje UV, normalne i przypisania materiałów |
| Szybkie sprawdzenie w edytorze tekstu | OBJ lub ASCII STL | Zwykły tekst, który można czytać linia po linii |
| Stare oprogramowanie sprzętowe lub program obsługujący tylko STL | STL | Usuń dodatki i wyślij samą siatkę |
Najważniejsze wnioski
- STL przechowuje tylko trójkąty: bez jednostek, bez koloru, a w wersji binarnej 50 bajtów na trójkąt.
- OBJ dodaje UV, normalne i nazwane grupy, ale jego kolory i tekstury zależą od osobnego pliku .mtl i plików obrazów.
- 3MF to ZIP z XML, który zapisuje jednostki, kolory, kilka obiektów i ustawienia druku oraz wymaga zamkniętych siatek.
- Używaj STL do zwykłych jednokolorowych wydruków, OBJ do modeli z teksturami w grafice i grach, a 3MF zawsze, gdy obsługuje go Twój slicer.
- Konwersja zmienia kontener, a nie siatkę: dziury i normalne napraw w narzędziu do siatek, a jednostkę ustaw samodzielnie.
Najczęściej zadawane pytania
Czy 3MF zastępuje STL?
Powoli, jeśli chodzi o druk. PrusaSlicer i Bambu Studio już zapisują projekty jako 3MF, ale STL nadal jest formatem akceptowanym przez każde narzędzie i każdą bibliotekę modeli, więc oba formaty będą współistnieć jeszcze przez lata.
Czy binarny STL może przechowywać kolor?
Nie w żaden standardowy sposób. Niektóre programy zapisują kolor w 2-bajtowym polu atrybutu każdego trójkąta, ale większość slicerów go ignoruje, dlatego gdy kolor ma znaczenie, użyj 3MF lub OBJ.
Dlaczego mój plik OBJ po pobraniu jest szary?
Plik .mtl lub obrazy tekstur zostały pominięte albo ścieżki wewnątrz pliku .mtl wskazują foldery, których nie ma na Twoim komputerze. Umieść pliki .obj, .mtl i obrazy w jednym folderze i wczytaj model ponownie.
Czy STL ASCII czy binarny daje dokładniejszy wydruk?
W praktyce żaden z nich nie drukuje dokładniej. Oba opisują te same trójkąty; format binarny zapisuje współrzędne jako 32-bitowe liczby zmiennoprzecinkowe, a ASCII jako tekst, a pliki binarne są zwykle kilkukrotnie mniejsze.
Czy mogę zamienić OBJ z powrotem na STL do druku?
Tak. Trójkąty zostają przeniesione bez zmian, natomiast mapy UV, materiały i tekstury są pomijane, ponieważ STL nie ma na nie miejsca. Potem sprawdź skalę, bo pliki OBJ z programów do modelowania są często w metrach lub centymetrach.
Jakiego formatu użyć, by udostępnić model innym do druku?
Udostępnij plik STL dla jak najszerszej zgodności, a jeśli model ma kilka części, kolory lub został zaprojektowany w calach, dodaj obok plik 3MF, aby osoby z nowoczesnym slicerem dostały pełną konfigurację.
Czytaj dalej
ZIP, RAR czy 7z: jaki format archiwum wybrać? | UltKit
ZIP otworzysz wszędzie, 7z kompresuje najmocniej i ukrywa nazwy plików, RAR ma rekordy naprawcze. Porównanie kompresji, szyfrowania i limitów.
Lucas Ferreira · 27 wrz 2026 · 11 min czytania
TTF, OTF czy WOFF: który format czcionki wybrać | UltKit
Na Windows, macOS i Linux instaluj TTF lub OTF, na stronach używaj WOFF2 z WOFF jako zapasem. Co zawiera każdy format, ile waży i co zmienia konwersja.
Jonas Weber · 10 wrz 2026 · 11 min czytania
Jak zamienić PNG na SVG: wektoryzacja logo i ikon
PNG staje się prawdziwym SVG tylko przez wektoryzację. Sprawdź, co dobrze się wektoryzuje, jak przygotować PNG, jakie ustawienia wybrać i jak ocenić ścieżki.
Jonas Weber · 4 paź 2026 · 12 min czytania