Soalan Lazim

Soalan Lazim

Bagaimana saya memasang @aspose/3d?

Pasang dari npm. Node.js 18 atau versi lebih baru diperlukan:

npm install @aspose/3d

Sahkan pemasangan:

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

Definisi jenis TypeScript disertakan bersama pakej. Tiada pakej @types/ berasingan diperlukan.


Format fail apa yang disokong?

FormatImportEksport
OBJ (Wavefront)YaYa
glTF 2.0 / GLBYaYa
FBX (Autodesk)Tidak*Tidak*
STL (Stereo Lithography)YaYa
3MF (3D Manufacturing)YaYa
COLLADA (.dae)YaYa

Bagaimana saya memuatkan fail 3D?

Buat Scene dan panggil scene.open():

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

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

Untuk format yang tidak memerlukan pilihan khas, abaikan argumen kedua:

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

Adakah scene.open() asynchronous?

Tidak. scene.open() dan scene.openFromBuffer() adalah panggilan segerak. Jika anda memerlukan I/O tanpa penyekatan, jalankan mereka di dalam thread pekerja Node.js atau balut dengan setImmediate.


Bagaimana saya menyimpan ke glTF/GLB?

Panggil scene.save() dengan laluan fail. Format dikesan secara automatik daripada sambungan:

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

Bagaimana saya memuatkan dari Buffer (dalam memori)?

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

Ralat: Tidak dapat menemukan modul ‘@aspose/3d/formats/obj’

Ini memerlukan resolusi eksport pakej Node.js 12.7+. Pastikan anda berada pada Node.js 18+. Untuk TypeScript, tetapkan "moduleResolution": "node16" atau "bundler" dalam tsconfig.json:

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

Apakah jenis node.entity?

node.entity diketik secara umum. Untuk mengakses sifat khusus mesh, periksa kehadirannya dengan 'controlPoints' in node.entity atau gunakan kelas Mesh dari @aspose/3d/entities:

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

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

Adakah perpustakaan berjalan dalam pelayar?

Perpustakaan ini direka untuk Node.js. Sokongan pelayar bergantung pada konfigurasi bundler dan API sistem fail yang digantikan dengan alternatif dalam memori.


Adakah perpustakaan thread-safe?

Setiap objek Scene adalah bebas. Menggunakan instance Scene yang berasingan daripada thread pekerja Node.js yang berasingan selamat selagi anda tidak berkongsi satu scene merentasi thread tanpa penyelarasan luaran.


Versi Node.js apa yang disokong?

Node.js 18, 20, dan 22 disokong secara rasmi. TypeScript 5.0+ disyorkan.


Adakah @aspose/3d menyokong animasi?

Ya. Sistem animasi termasuk AnimationClip, AnimationChannel, dan jenis lengkung keyframe yang boleh diakses dari @aspose/3d/animation.


Lihat Juga

 Bahasa Melayu