Podpora 3D formátu

Aspose.3D FOSS pro TypeScript čte a píše sedm hlavních 3D formátů souborů. Detekce formátu je automatická při načítání: knihovna zkontroluje binární magické čísla, takže nemusíte specifikovat zdrojový formáty. Klasi variant specifických pro formaty jsou importovány ze podcestí aplikace . @aspose/3d balíček.

Podporované formáty

FormátRozšířeníČtěte.Píšeš.Třída formátuPoznámky
OBJ.objAno , ano .Ano , ano .ObjFormatObjektování na vlnové čele; čte se: .mtl materiály; píše .mtl vedle sebe .obj
glTF.gltf / .glbAno , ano .Ano , ano .GltfFormatbinární JSON a GLB v rámci glTF 2.0
STL.stlAno , ano .Ano , ano .StlFormatBinární a ASCII režimy
3MF.3mfAno , ano .Ano , ano .ThreeMfFormat3D Manufacturing Format
FBX.fbxNe*Ne*FbxFormatExistují dovozci/vývozci, ale automatická detekce formátu není propojená; nepoužitelná prostřednictvím systému ISOFIX. scene.open()
COLLADA.daeAno , ano .Ano , ano .ColladaFormatPožadavky xmldom (automaticky nainstalovaný)

OBJ (Wavefront)

OBJ podporuje jak dovoz, tak vývoz v České republice. @aspose/3d.Při ukládání jako OBJ se u materiálu nachází knihovna (.mtl) se automaticky zapíše vedle čísla “Připravené” (včetně čísel: .obj Použití souboru. ObjLoadOptions ovládání zatížení materiálu a koordinace chování systému.

Klíčové možnosti pro: ObjLoadOptions:

Možnost:Typ:PředvoleněÚčinek
enableMaterialsbooleantrueProzkoumejte to. .mtl soubor, na který se odkazuje: mtllib
flipCoordinateSystembooleanfalseOtočte osy Y/Z tak, aby odpovídaly systémům praváky.
scalenumber1.0Jednotná stupnice aplikovaná na všechny vrcholy při zatížení.
normalizeNormalbooleantrueNormalizace normálního vrcholu na jednotku délky
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';

const scene = new Scene();
const opts = new ObjLoadOptions();
opts.enableMaterials = true;
opts.normalizeNormal = true;

scene.open('model.obj', opts);
console.log(`Loaded ${scene.rootNode.childNodes.length} top-level node(s)`);

Chcete-li přeměnit OBJ do jakéhokoli formátu, který je možné napsat, naložte ho a zavolejte: scene.save() s cílovou třídou formátu.

glTF a GLB

glTF 2.0 je doporučený formát pro výměnu webových a herních motorů. Knihovna používá stejné GltfFormat třída pro oba .gltf (JSON + sidecar) a .glb (binární, samostatný) výstup. Přepínat mezi nimi s GltfSaveOptions.binaryMode.

Náklad glTF nebo GLB:

import { Scene } from '@aspose/3d';
import { GltfLoadOptions } from '@aspose/3d/formats/gltf';

const scene = new Scene();
scene.open('model.gltf', new GltfLoadOptions());
// or
scene.open('model.glb');  // format detected from magic bytes

Export jako JSON glTF (.gltf + .bin):

import { Scene } from '@aspose/3d';
import { GltfSaveOptions, GltfFormat } from '@aspose/3d/formats/gltf';

const scene = new Scene();
scene.open('input.fbx');

const opts = new GltfSaveOptions();
opts.binaryMode = false;  // produces output.gltf + output.bin
scene.save('output.gltf', GltfFormat.getInstance(), opts);

Vývoz jako binární GLB (.glb):

import { Scene } from '@aspose/3d';
import { GltfSaveOptions, GltfFormat } from '@aspose/3d/formats/gltf';

const scene = new Scene();
scene.open('input.obj');

const opts = new GltfSaveOptions();
opts.binaryMode = true;  // single self-contained file
scene.save('output.glb', GltfFormat.getInstance(), opts);

Použití: binaryMode = true Jednotná výroba, která je součástí výrobního aktiva. .glb v prohlížečích a motorech se načte rychleji než rozdělený text + binární pár.

STL

STL je formát třístranného sítě používaný v CAD a 3D tisku. Obě binární a ASCII ST L jsou podporovány pro vstup a výstup . StlSaveOptions.binaryMode ovládá, zda je výstup binární (kompaktivní) nebo ASCII (čitelný pro člověka).

import { Scene } from '@aspose/3d';
import { StlLoadOptions, StlSaveOptions } from '@aspose/3d/formats/stl';

const scene = new Scene();
scene.open('model.stl', new StlLoadOptions());

// Export as binary STL (default, compact)
const binaryOpts = new StlSaveOptions();
binaryOpts.binaryMode = true;
scene.save('output_binary.stl', binaryOpts);

// Export as ASCII STL (human-readable)
const asciiOpts = new StlSaveOptions();
asciiOpts.binaryMode = false;
scene.save('output_ascii.stl', asciiOpts);

STL ukládá pouze triangulační geometrii a normály vrcholu. Materiální údaje a UV data nejsou uchovávána v ST L.

3MF (3D Manufacturing Format)

3MF is an XML-based format designed for additive manufacturing. It supports color and material metadata alongside geometry. Use it when exchanging files with 3D printing slicers or manufacturing workflows.

import { Scene } from '@aspose/3d';
import { ThreeMfSaveOptions } from '@aspose/3d/formats/3mf';

const scene = new Scene();
scene.open('model.3mf');

// Re-export as 3MF
scene.save('output.3mf', new ThreeMfSaveOptions());

3MF files are ZIP archives internally. The library handles archive creation and extraction automatically.

FBX

Varování:: třídy dovozců a vývozců FBX (FbxImporter, FbxExporter) existují v knihovně, ale FBX formát automatické detekce je bez drátů do … scene.open() nebo: scene.save().Volám . scene.open('file.fbx') nebude odvolávat dovozce FBX soubor se dostane do rezervního systému STL. scene.save('output.fbx', opts) nebude odvolávat FBX exportér. V tabulce podpory formátu výše je označeno FBx jako No* Použijte GLB nebo COLLADA pro plně funkční dovoz a vývoz prostřednictvím systému GPL. scene.open() / scene.save().

COLLADA (DAE)

COLLADA je formát výměny založený na XML, který podporuje širokou škálu nástrojů DCC (Blender, Maya, Cinema 4D). Knihovna používá xmldom závislost na analýze XML; je automaticky instalován s npm install @aspose/3d.

import { Scene } from '@aspose/3d';
import { ColladaSaveOptions } from '@aspose/3d/formats/collada';

const scene = new Scene();
scene.open('model.dae');

// Re-export as COLLADA
const saveOpts = new ColladaSaveOptions();
scene.save('output.dae', saveOpts);

Soubory COLLADA mohou obsahovat metadata pro jednotkové měření (<unit> Knihovna automaticky připojuje konverzi jednotek po načtení.

Formát automatického detekce

Při načítání z cesty souboru se knihovna pokouší detekovat formát ze binárních magických čísel, než se vrátí ke rozšíření souborů. To znamená, že můžete načíst soubory GLB jménem .bin nebo soubor STL s názvem: .model bez výslovného upřesnění formátu.

Při nakládání z Buffer s: scene.openFromBuffer(), detekce magických čísel je primární mechanismus:

import { Scene } from '@aspose/3d';
import * as fs from 'fs';

const buffer = fs.readFileSync('model.glb');
const scene = new Scene();
scene.openFromBuffer(buffer);  // format detected from magic bytes: 'glTF'

console.log(`Root has ${scene.rootNode.childNodes.length} child node(s)`);

Formáty s spolehlivými magickými čísly: GLB (glTF), STL binární (80-byte hlavička + počet trojúhelníků), 3MF (ZIP magie) PK) OBJ a COLLADA jsou textové a je detekováno z rozšíření souboru nebo třídou možností, kterou projdete.

Tipy.

  • OBJ podporuje jak dovoz, tak vývoz.: při ukládání jako OBJ, se .mtl materiální soubor je napsán automaticky vedle .obj - Soubor.
  • Použití GLB pro webovou distribuci: samostatný binární formát zabraňuje problémům s CORS pomocí .bin Sidecars a naloží rychleji v renderingu WebGL.
  • Projít formátem specifické možnosti: obecné scene.open(path) funguje pro většinu formátů, ale přechodem třídy možnosti nakladače umožňuje chování specifické pro formáty, jako je načítání materiálu OBJ nebo normalizace souřadnic STL.
  • xmldom je nutná pro COLLADA.: je instalován automaticky. Nepridajte ho do aplikace: peerDependencies nebo se ho pokusit odstranit, čtenář COLLADA to volá přímo.

Obvyklé problémy

Příznak:Pravděpodobná příčinaOpravy
Materiály OBJ jsou po naložení prázdné.enableMaterials NevyhodněnéProcházející. ObjLoadOptions s: enableMaterials = true
GLB vyrábí .bin nádržbinaryMode zpoždění falseSestavení: opts.binaryMode = true v . GltfSaveOptions
scene.open() vypustí “nepodporovaný formát”Rozšíření souboru není rozpoznánoPřejít shodu . *LoadOptions třída nebo použití openFromBuffer()
Nespravitelné načtení COLLADA s chybou XMLxmldom chybí nebo se neshodují.Běžte. npm install @aspose/3d znovu; xmldom je přímá závislost
Ztráta normálů STL při vývozu ASCIIASCII STL klesá na normály za obličejPoužití: binaryMode = true pro výstup při zachování normálu,

Viz také:

 Čeština