Hvad er B3D-filformatet?
En .b3d-fil er et binært chunk-baseret 3D-modelformat udviklet af Blitz Research Ltd til Blitz3D-spil-SDK'et (udgivet i 2001). Det gemmer en komplet scenegraf i en enkelt fil: mesh-geometri, UV-koordinater, materiale- og teksturreferencer, skeletale knoglevægte og keyframe-animationssekvenser.
Formatet bruger en hierarkisk chunk-struktur. Hver chunk åbner med et 4-tegns ASCII-tag og en 4-byte little-endian datalængde. Den obligatoriske rod-chunk BB3D omslutter TEXS (liste over teksturfilnavne), BRUS (brush- og materialedefinitioner) og NODE-chunks. NODE-chunks er rekursive og danner et forældre-barn-scenetræ. En MESH-node indeholder VRTX (vertex-buffer med positioner, normaler, UV'er og vertex-farver) og TRIS (trekant-indeks-arrays med materialetildelinger). KEYS- og ANIM-chunks definerer navngivne animationssekvenser med position-, rotations- og skalerings-keyframes pr. frame.
Blitz Research gjorde Blitz3D til open-source i 2013. Formatet fik et markant nyt liv som det primære 3D-modelformat til Luanti (tidligere Minetest), den open-source voxel-spilmotor, hvilket sikrer aktive community-værktøjer længe efter det oprindelige SDK. Irrlicht 3D-motoren indlæser også .b3d-filer indfødt. Blender kan importere .b3d via et community-plugin.
Til moderne produktionspipelines foretrækkes glTF eller FBX; .b3d forbliver dog udbredt i Luanti-modding-miljøer.
Sikkerhed og tryghed
RISIKO: LOWBinær 3D-modelfil; ingen eksekverbar kode. Ingen kendte CVE'er for B3D-parsere. Udvis normal forsigtighed ved åbning af filer fra ukendte kilder i spilmotorer.
Formatdetaljer
kort fortalt- BodyPaint 3D (MAXON) - MAXONs BodyPaint 3D-maleprogram er blevet forbundet med .b3d af visse databaser, men dets faktiske indfødte format er .c4d; .b3d er ikke et dokumenteret BodyPaint-format.
Programmer der åbner B3D-filer
Tekniske detaljer
dyb specifikation| Magic bytes | 42 42 33 44 («BB3D» ASCII) ved offset 0 - obligatorisk rod-chunk-tag |
| Byte-orden | Little-endian gennemgående |
| Chunk-struktur | 4-tegns ASCII-tag + 4-byte little-endian datalængde går forud for hver chunk-payload; chunks kan indlejres i vilkårlig dybde |
| Rod-chunk | `BB3D` - indeholder et versions-heltal (major×100 + minor) og omslutter alle indholdschunks |
| Tekstur-chunk | `TEXS` - ordnet liste over tekstur-filstistrenge refereret af materiale-indekser |
| Materiale-chunk | `BRUS` - brush-definitioner med farve, glans, blandingsstil og teksturindeks-referencer |
| Geometri-chunks | `MESH` → `VRTX` (vertex-positioner, normaler, UV'er, vertex-farver) + `TRIS` (trekant-indeks-arrays med materiale-tildeling pr. trekant) |
| Animations-chunks | `BONE` (vertex-vægte pr. knogle), `KEYS` (position/rotation/skalering-keyframes pr. node), `ANIM` (navngiven sekvens med start/slut-frame-interval) |
| Scenegraf | `NODE`-chunks er rekursive og understøtter hierarkiske pivot- og forældre-barn-transformationsforhold |
| Typisk størrelse | 10 KB - 20 MB (fra simpel statisk genstand til kompleks rigget karakter med animationssekvenser) |
| Komprimering | Ingen - alle data gemmes som ukomprimeret binær data |
| Primær aktiv brug | Luanti (tidligere Minetest) open-source voxel-motor - `.b3d` er det anbefalede format til entity- og NPC-modeller i Luanti-mods |
| Motor-understøttelse | Irrlicht 3D-motor (indfødt); Blitz3D open-source (oprindelig vært); Blender (community-import-plugin) |
| Open-source historie | Blitz3D gjort til open-source på GitHub (blitz-research/blitz3d) af Mark Sibly i 2013; formatspecifikation dokumenteret af Luanti-community'et |
| Udgivet | 2001 (Blitz3D 1.0) |
| Seneste version | No versioning after Blitz3D open-sourced; format spec frozen |
| Åben standard | Ja · royaltyfri |
| Specifikation | docs.luanti.org |
B3D-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om B3D-filer.