Pertanyaan yang Sering Diajukan

Pertanyaan yang Sering Diajukan

Pertanyaan yang Sering Diajukan

Bagaimana cara menginstal @aspose/3d?

Instal dari npm. Node.js 18 atau yang lebih baru diperlukan:

npm install @aspose/3d

Verifikasi instalasi:

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

Definisi tipe TypeScript disertakan dalam paket. Tidak diperlukan paket @types/ terpisah.


Format file apa yang didukung?

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

Bagaimana cara memuat file 3D?

Buat sebuah 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 opsi khusus, hapus argumen kedua:

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

Apakah scene.open() asynchronous?

Tidak. scene.open() dan scene.openFromBuffer() adalah panggilan sinkron. Jika Anda memerlukan I/O non‑blocking, jalankan mereka di dalam thread pekerja Node.js atau bungkus dengan setImmediate.


Bagaimana cara saya menyimpan ke glTF/GLB?

Panggil scene.save() dengan jalur file. Format dideteksi secara otomatis dari ekstensi:

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

Bagaimana cara memuat 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());

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

Ini memerlukan resolusi ekspor paket Node.js 12.7+. Pastikan Anda berada pada Node.js 18+. Untuk TypeScript, atur "moduleResolution": "node16" atau "bundler" di tsconfig.json:

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

Apa tipe dari node.entity?

node.entity diketik secara umum. Untuk mengakses properti khusus mesh, periksa keberadaannya 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);
}

Apakah library berjalan di browser?

Perpustakaan ini dirancang untuk Node.js. Dukungan browser tergantung pada konfigurasi bundler dan file system APIs yang diganti dengan alternatif dalam memori.


Apakah perpustakaan ini thread-safe?

Setiap objek Scene bersifat independen. Menggunakan instance Scene terpisah dari thread pekerja Node.js yang terpisah aman selama Anda tidak membagikan satu scene tunggal di antara thread tanpa sinkronisasi eksternal.


Versi Node.js apa yang didukung?

Node.js 18, 20, dan 22 secara resmi didukung. TypeScript 5.0+ direkomendasikan.


Apakah @aspose/3d mendukung animasi?

Ya. Sistem animasi mencakup AnimationClip, AnimationChannel, dan tipe kurva keyframe yang dapat diakses dari @aspose/3d/animation.


Lihat Juga

 Bahasa Indonesia