Wavefront OBJ (.obj)

Wavefront Standard

Wavefront 3D Object (OBJ) er et udbredt udvekslingsformat til 3D-geometri. Understøttelsen af geometri, materialer og teksturer varierer mellem programmer til modellering, skulpturering og 3D-print.

Konverter OBJ til STL

Gratis OBJ til STL-konverter i browseren. Konverter filer med det samme på din enhed.

Undersøgelse og metadata

Operativsystemer og filanalysatorer identificerer OBJ-filer ved at inspicere den indledende binære bytesekvens:

Vælg eller træk filer hertil

Privat - filer forlader aldrig din enhed

eller indsæt Ctrl+V
Privatlivsgaranti uden netværksoverførsel: 0 byte overført til eksterne servere. Al behandling foregik lokalt i browserens sandkasse.

Byte-niveau Header-signatur (Magic Bytes)

Operativsystemer og filanalysatorer identificerer OBJ-filer ved at inspicere den indledende binære bytesekvens:

HEX-SIGNATUR (OFFSET 0):

76 20 / 23 20

ASCII-REPRÆSENTATION: v / #

Standardisering: Wavefront Advanced Visualizer Specification

Tekniske specifikationer

ContainerarkitekturASCII-tekstfil, der definerer hjørner (v), teksturkoordinater (vt), normaler (vn) og polygonflader (f) med referencer til tilhørende .mtl-materialefiler
KomprimeringUkomprimeret, menneskeligt læsbar tekst
Byte-rækkefølgeUTF-8-/ASCII-tekststrøm
FarverumsRGB (defineret i den tilhørende .mtl-fil)
Kanaler og strukturPolygongeometri (trekanter, firkanter, n-goner), udjævningsgrupper og materialereferencer
Maks. dimensionerUbegrænset 3D-koordinatrum med flydende kommatal
GennemsigtighedOpacitet (tag 'd' eller 'Tr') understøttes i tilhørende .mtl-materialefiler
Streaming og progressivSekventiel fortolkning linje for linje giver progressiv streamingvisning af hjørner

Teknisk sammenligningsmatrix: OBJ sammenlignet med konkurrenterne

Teknisk attributOBJ (Aktuel)STLGLBPLY
AnimationsunderstøttelseIngen (strengt statisk geometri)Ingen (statiske trekanter)Fuldstændige skeletanimationerIngen (statisk punktsky/mesh)
Teksturkoordinater (UV'er)Fuld understøttelse af UV-teksturkoordinaterIngen (kun geometri)Fulde multikanals-UV'erPr. vertex-farver / UV'er
PolygontyperTrekanter, firkanter (quads) og n-gonsKun trekanterTrekanter og punkterTrekanter og vilkårlige polygoner
FiltypeMenneskelæsbar ASCII-tekstBinær eller ASCII-tekstKompakt binærbeholderBinær eller ASCII-tekst

Almindelige korruptionstilstande og hex-gendannelsesvejledning

3D-modellen gengives med belysning indefra og ud eller sorte huller i meshet.

Grundlæggende årsag: Omvendt rækkefølge på fladehjørner (toppunkter angivet med uret i stedet for mod uret), så normalerne vender forkert.

Gendannelse: Genberegn og ensret normaler ved hjælp af File2File.app 3D Mesh Repair.

Sikkerhedsanalyse og parser-angrebsvektorer

OBJ-parsere behandler ASCII-tal og fladeindekser, som kan føre til bufferoverløb eller heltalsoverløb i C-biblioteker uden validering.

Kendte angrebsvektorer

  • Bufferoverløb ved læsning af ekstremt lange fladedefinitionsstrenge med tusindvis af toppunkter.
  • Heltalsoverløb under allokering af koordinatarrays for toppunkter.
  • Tjenestenægtelse via sti-gennemløb i erklæringer af tilhørende 'mtllib'-materialefiler.

Defensive bedste praksisser: Håndhæv maksimale grænser for indekser for toppunkter, og rens stier til tilhørende materialefiler.

Historisk oprindelse og milepæle

2000Bliver udbredt til udveksling af 3D-overflademodeller mellem grafik- og produktionsværktøjer.
1990Wavefront fusionerer med Alias Research (senere opkøbt af Autodesk), hvilket cementerer OBJ på tværs af Hollywoods VFX-industri.
1984Wavefront Technologies introducerer OBJ til animationspakken Advanced Visualizer.

Vigtige fordele og styrker

  • OBJ understøttes af mange 3D-modelleringsværktøjer og spilmotorer, men understøttelsen og eksportfunktionerne varierer mellem programmer.
  • ASCII-tekst, der er let at læse: geometrien kan inspiceres, genereres automatisk og ændres i et almindeligt tekstredigeringsprogram.
  • Understøtter vilkårlige n-gon-polygoner, glatte normaler og multi-tile UV-teksturmapping.

Tekniske begrænsninger og ulemper

  • Kun statisk geometri: formatet kan ikke gemme skelet-rigging, knoglevægte, skinning eller animationer.
  • Kræver tilhørende .MTL-materialefiler og eksterne billedfiler for at vise farver og teksturer.
  • ASCII-tekstformatering giver større filer og langsommere fortolkning end moderne binære formater som GLB.

Interessante tekniske fakta

  • Hvert toppunkt i en OBJ-fil begynder med det enkelte bogstav 'v', normaler begynder med 'vn', teksturkoordinater med 'vt' og flader med 'f'.
  • Modellerne findes i forskellige formater, herunder OBJ; den tilgængelige fil afhænger af kilden.
  • Wavefront Technologies, som skabte OBJ i 1984, var en af de allerførste computergrafikvirksomheder, der vandt en Academy Award (Oscar) for software til visuelle effekter.

Ofte stillede tekniske spørgsmål

Hvad er .MTL-filen, der følger med en .OBJ-fil?

.MTL-filen (Material Template Library) beskriver farver, glans, gennemsigtighed og navnene på de teksturbilledfiler, der bruges af .OBJ 3D-modellen.

Kan jeg 3D-printe en OBJ-fil?

Ja. De fleste moderne 3D-printslicere (såsom Cura og PrusaSlicer) accepterer OBJ-filer direkte og bevarer ofte fuld farve, når der bruges 3D-printere med flere farver.

Hvordan kan jeg konvertere OBJ til GLB eller STL?

Du kan konvertere OBJ-filer (sammen med tilhørende MTL og teksturer) til moderne GLB- eller 3D-printbare STL-filer direkte i din webbrowser ved hjælp af File2File.app.