Dažnai užduodami klausimai
Dažnai užduodami klausimai
Kaip įdiegti @aspose/3d?
Įdiekite iš npm. Reikalingas Node.js 18 arba naujesnis:
npm install @aspose/3dPatikrinkite diegimą:
import { Scene } from '@aspose/3d';
const scene = new Scene();
console.log('@aspose/3d ready');TypeScript tipų apibrėžimai yra įtraukti į paketą. Nereikia atskiro @types/ paketo.
Kokie failų formatai palaikomi?
| Formatas | Importas | Eksportas |
|---|---|---|
| OBJ (Wavefront) | Taip | Taip |
| glTF 2.0 / GLB | Taip | Taip |
| FBX (Autodesk) | Ne* | Ne* |
| STL (Stereo Lithography) | Taip | Taip |
| 3MF (3D Manufacturing) | Taip | Taip |
| COLLADA (.dae) | Taip | Taip |
Kaip įkelti 3D failą?
Sukurkite Scene ir iškvieskite scene.open():
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());Formatams, kuriems nereikia specialių parinkčių, praleiskite antrą argumentą:
const scene = new Scene();
scene.open('model.glb');Ar scene.open() yra asinchroninis?
Ne. scene.open() ir scene.openFromBuffer() yra sinchroniniai iškvietimai. Jei reikia neblokuojančio I/O, vykdykite juos Node.js darbinio gijos viduje arba apgaubkite su setImmediate.
Kaip išsaugoti į glTF/GLB?
Įvykdykite scene.save() su failo keliu. Formatą aptinka automatiškai pagal plėtinį:
scene.save('output.glb'); // binary glTF
scene.save('output.gltf'); // JSON glTF
scene.save('output.obj'); // OBJ
scene.save('output.stl'); // STL
Kaip įkelti iš buferio (atmintyje)?
Naudokite scene.openFromBuffer():
import * as fs from 'fs';
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
const buffer = fs.readFileSync('model.obj');
const scene = new Scene();
scene.openFromBuffer(buffer, new ObjLoadOptions());Klaida: Nepavyko rasti modulio ‘@aspose/3d/formats/obj’
Tam reikalingas Node.js 12.7+ paketų eksporto sprendimas. Įsitikinkite, kad naudojate Node.js 18+. TypeScript atveju nustatykite "moduleResolution": "node16" arba "bundler" į tsconfig.json:
{
"compilerOptions": {
"moduleResolution": "node16",
"target": "ES2020"
}
}Koks yra node.entity tipas?
node.entity yra plačiai tipizuotas. Norėdami pasiekti tinklo (mesh) specifines savybes, patikrinkite jų buvimą naudodami 'controlPoints' in node.entity arba naudokite Mesh klasę iš @aspose/3d/entities:
import { Mesh } from '@aspose/3d/entities';
if (node.entity instanceof Mesh) {
const mesh = node.entity;
console.log(mesh.controlPoints.length);
}Ar biblioteka veikia naršyklėje?
Biblioteka sukurta Node.js. Naršyklės palaikymas priklauso nuo bundler konfigūracijos ir failų sistemos API, kurie pakeičiami atminties alternatyvomis.
Ar biblioteka yra gijų saugi?
Kiekvienas Scene objektas yra nepriklausomas. Naudojant atskirus Scene egzempliorius iš atskirų Node.js darbo gijų, tai yra saugu, jei nesidalinate vienos scenos tarp gijų be išorinės sinchronizacijos.
Kokios Node.js versijos palaikomos?
Node.js 18, 20 ir 22 yra oficialiai palaikomi. Rekomenduojama naudoti TypeScript 5.0+.
Ar @aspose/3d palaiko animacijas?
Taip. Animacijos sistema apima AnimationClip, AnimationChannel ir pagrindinių kadrų kreivės tipus, prieinamus iš @aspose/3d/animation.