Foire aux questions

Foire aux questions

Foire aux questions

Comment installer @aspose/3d ?

Installez depuis npm. Node.js 18 ou une version ultérieure est requis :

npm install @aspose/3d

Vérifiez l’installation :

import { Scene } from '@aspose/3d';
const scene = new Scene();
console.log('@aspose/3d ready');

Les définitions de type TypeScript sont incluses dans le package. Aucun package séparé @types/ n’est nécessaire.


Quels formats de fichiers sont pris en charge ?

FormatImportationExportation
OBJ (Wavefront)OuiOui
glTF 2.0 / GLBOuiOui
FBX (Autodesk)Non*Non*
STL (Stereo Lithography)OuiOui
3MF (3D Manufacturing)OuiOui
COLLADA (.dae)OuiOui

Comment charger un fichier 3D ?

Créez un Scene et appelez scene.open():

import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';

const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());

Pour les formats qui n’ont pas besoin d’options spéciales, omettez le deuxième argument :

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

scene.open() est‑il asynchrone ?

Non. scene.open() et scene.openFromBuffer() sont des appels synchrones. Si vous avez besoin d’E/S non bloquantes, exécutez‑les dans un thread de travail Node.js ou encapsulez‑les avec setImmediate.


Comment enregistrer au format glTF/GLB ?

Appelez scene.save() avec un chemin de fichier. Le format est détecté automatiquement à partir de l’extension :

scene.save('output.glb');   // binary glTF
scene.save('output.gltf');  // JSON glTF
scene.save('output.obj');   // OBJ
scene.save('output.stl');   // STL

Comment charger depuis un tampon (en mémoire) ?

Utilisez 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());

Erreur : Impossible de trouver le module ‘@aspose/3d/formats/obj’

Cela nécessite la résolution des exportations de package Node.js 12.7+. Assurez‑vous d’utiliser Node.js 18+. Pour TypeScript, définissez "moduleResolution": "node16" ou "bundler" dans tsconfig.json :

{
  "compilerOptions": {
    "moduleResolution": "node16",
    "target": "ES2020"
  }
}

Quel est le type de node.entity ?

node.entity est typé de manière générale. Pour accéder aux propriétés spécifiques aux maillages, vérifiez leur présence avec 'controlPoints' in node.entity ou utilisez la classe Mesh de @aspose/3d/entities :

import { Mesh } from '@aspose/3d/entities';

if (node.entity instanceof Mesh) {
    const mesh = node.entity;
    console.log(mesh.controlPoints.length);
}

La bibliothèque fonctionne-t-elle dans le navigateur ?

La bibliothèque est conçue pour Node.js. La prise en charge du navigateur dépend de la configuration du bundler et du remplacement des file system APIs par des alternatives en mémoire.


La bibliothèque est‑elle thread‑safe ?

Chaque objet Scene est indépendant. Utiliser des instances séparées de Scene provenant de threads de travail Node.js distincts est sûr tant que vous ne partagez pas une même scène entre les threads sans synchronisation externe.


Quelles versions de Node.js sont prises en charge ?

Node.js 18, 20 et 22 sont officiellement pris en charge. TypeScript 5.0+ est recommandé.


Le @aspose/3d prend‑il en charge les animations ?

Oui. Le système d’animation comprend AnimationClip, AnimationChannel et les types de courbes d’images clés accessibles depuis @aspose/3d/animation.


Voir aussi

 Français