Najczęściej zadawane pytania

Najczęściej zadawane pytania

Najczęściej zadawane pytania

Jak zainstalować @aspose/3d?

Zainstaluj z npm. Wymagany Node.js w wersji 18 lub nowszej:

npm install @aspose/3d

Sprawdź instalację:

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

Definicje typów TypeScript są dołączone do pakietu. Nie jest potrzebny osobny pakiet @types/.


Jakie formaty plików są obsługiwane?

FormatImportEksport
OBJ (Wavefront)TakTak
glTF 2.0 / GLBTakTak
FBX (Autodesk)Nie*Nie*
STL (Stereo Lithography)TakTak
3MF (3D Manufacturing)TakTak
COLLADA (.dae)TakTak

Jak załadować plik 3D?

Utwórz Scene i wywołaj scene.open():

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

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

Dla formatów, które nie wymagają specjalnych opcji, pomiń drugi argument:

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

Czy scene.open() jest asynchroniczne?

Nie. scene.open() i scene.openFromBuffer() to wywołania synchroniczne. Jeśli potrzebujesz nieblokującego I/O, uruchom je w wątku roboczym Node.js lub opakuj przy użyciu setImmediate.


Jak zapisać do glTF/GLB?

Wywołaj scene.save() z ścieżką do pliku. Format jest wykrywany automatycznie na podstawie rozszerzenia:

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

Jak załadować z bufora (w pamięci)?

Użyj 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());

Błąd: Nie można znaleźć modułu ‘@aspose/3d/formats/obj’

To wymaga rozwiązywania eksportów pakietu Node.js 12.7+. Upewnij się, że używasz Node.js 18+. Dla TypeScript ustaw "moduleResolution": "node16" lub "bundler" w tsconfig.json:

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

Jaki jest typ node.entity?

node.entity jest typowany ogólnie. Aby uzyskać dostęp do właściwości specyficznych dla siatki, sprawdź ich obecność za pomocą 'controlPoints' in node.entity lub użyj klasy Mesh z @aspose/3d/entities:

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

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

Czy biblioteka działa w przeglądarce?

Biblioteka jest przeznaczona dla Node.js. Obsługa przeglądarki zależy od konfiguracji bundlera oraz od zastąpienia interfejsów API systemu plików alternatywami w pamięci.


Czy biblioteka jest bezpieczna wątkowo?

Każdy obiekt Scene jest niezależny. Używanie oddzielnych instancji Scene z oddzielnych wątków pracowników Node.js jest bezpieczne, o ile nie udostępniasz jednej sceny pomiędzy wątkami bez zewnętrznej synchronizacji.


Jakie wersje Node.js są obsługiwane?

Node.js 18, 20 i 22 są oficjalnie wspierane. TypeScript 5.0+ jest zalecany.


Czy @aspose/3d obsługuje animacje?

Tak. System animacji zawiera AnimationClip, AnimationChannel i typy krzywych klatek kluczowych dostępne z @aspose/3d/animation.


Zobacz także

 Polski