Hvad er OBJ-filformatet?
Filformatet .obj bruges til at gemme 3D-objekter oprettet med forskellige design- og redigeringsprogrammer. Hver .obj-fil kan indeholde data såsom koordinater for hjørnepunkter, overfladenormaler, UV-teksturkoordinater og referencer til eksterne teksturbilledfiler. .obj-filer indeholder ingen data vedrørende objektets miljø - der er ingen information om belysning, kamera eller scenehierarki. Formatet blev udviklet af Wavefront Technologies, oprindeligt designet som en lagerfil til deres Advanced Visualizer-applikation.
OBJ- og MTL-filkompatibilitet
.obj-filer indeholder oftest referencer til ledsagende .mtl-filer, som beskriver hvert objekts overflademateriale og relevante data. Hver .obj-fil kan referere til en eller flere .mtl-filer; uden dem renderes meshes som u-skygget geometri.
Anvendelser af OBJ-formatet
.obj er et bredt understøttet åbent format og betragtes som en de facto-standard for udveksling af 3D-objekter. Da det er almindelig ASCII-tekst, er .obj-filer læsbare for mennesker og nemme at parse, hvilket er grunden til, at stort set alt CAD- og 3D-redigeringssoftware tilbyder muligheder for at importere og eksportere data i dette format. I de senere år, med væksten i 3D-printteknologi, har .obj vundet yderligere popularitet - især som det foretrukne format til printfunktioner med flere farver og materialer. Det bruges ofte sammen med .stl og .ply i additive fremstillingsprocesser, og i stigende grad som et kildeformat til konvertering til moderne udvekslingsformater såsom .gltf.
Sikkerhed og tryghed
RISIKO: LOWEn OBJ er geometridata i almindelig tekst - den indeholder ingen eksekverbar kode og kan ikke køre noget, så det er sikkert at åbne en. De eneste praktiske problemer er ikke-ondsindede: meget store meshes med mange polygoner (f.eks. 3D-scanninger) kan være langsomme at indlæse, og en OBJ med tekstur har brug for sin tilhørende .mtl og billedfiler, ellers fremstår den grå/uden tekstur. Som altid bør du kun stole på filtypen efter at have tjekket den - en fil, der udgiver sig for at være «model.obj», men som faktisk er en eksekverbar fil, er den reelle risiko, ikke selve OBJ-formatet.
Formatdetaljer
kort fortalt- COFF-objektfil (.obj) - En kompileret objektfil produceret som et midlertidigt trin af C/C++ kompilere, ikke relateret til 3D-modelformatet.
Programmer der åbner OBJ-filer
Tekniske detaljer
dyb specifikation| Filkodning | Almindelig ASCII-tekst; UTF-8 kompatibel, ingen binære sektioner |
| Filsignatur (magic bytes) | Ingen - identificeres ved linjestart-tokens: `v ` (hjørnepunkt), `vt ` (UV-koordinat), `vn ` (normal), `f ` (flade), `mtllib` |
| MIME-type | `model/obj` |
| Koordinatsystem | Højrehåndet; Y-op som konvention (nogle eksportere bruger Z-op) |
| Geometri-primitiver | Hjørnepunkter (`v`), UV-teksturkoordinater (`vt`), normaler (`vn`), flader (`f`), linjer (`l`), punkter (`p`) |
| Polygontyper | Trekanter, firkanter (quads) og vilkårlige n-goner (polygoner med et vilkårligt antal hjørnepunkter per flade) |
| Indeksbase | 1-baserede heltalsindekser; negative værdier tilladt som relative (omvendte) referencer |
| Materialereferencer | Eksterne `.mtl`-filer erklæret med `mtllib`; anvendes per mesh-gruppe via `usemtl` |
| Objekt/gruppestruktur | Navngivne objekter (`o`-nøgleord) og grupper (`g`-nøgleord) tillader meshes i flere dele i en enkelt fil |
| Tekstur-mapping | UV-koordinater gemt som `vt`-indgange; stier til teksturbilledfiler defineret i den ledsagende `.mtl` |
| Fri-form geometri | Valgfrie NURBS-kurver og B-spline-overflader via `curv` / `surf` nøgleord - implementeres sjældent i praksis |
| Animationsunderstøttelse | Ingen - kun statisk geometri; animation kræver eksterne formater (FBX, glTF) |
| Scenedata | Ingen belysning, kameraer eller scenehierarki; formatet gemmer kun geometri |
| Komprimering | Ukomprimeret almindelig tekst; filer komprimeres effektivt med ZIP eller gzip |
| Egnethed til 3D-print | Bredt accepteret af slicer-software; foretrækkes frem for STL til FDM-print med flere farver/materialer |
| Interoperabilitet | Understøttes indfødt af Blender, Autodesk Maya, Cinema 4D, ZBrush, SolidWorks og de fleste CAD/DCC-værktøjer |
| Udgivet | Late 1980s (Wavefront Technologies, for The Advanced Visualizer) |
| Åben standard | Ja · royaltyfri |
| Specifikation | paulbourke.net |