คำถามที่พบบ่อย
คำถามที่พบบ่อย
ฉันจะติดตั้ง @aspose/3d อย่างไร?
ติดตั้งจาก npm. จำเป็นต้องใช้ Node.js 18 หรือใหม่กว่า:
npm install @aspose/3dตรวจสอบการติดตั้ง:
import { Scene } from '@aspose/3d';
const scene = new Scene();
console.log('@aspose/3d ready');คำนิยามประเภท TypeScript จะถูกรวมอยู่ในแพ็กเกจแล้ว ไม่จำเป็นต้องมีแพ็กเกจแยก @types/.
รูปแบบไฟล์ใดที่รองรับ?
| รูปแบบ | นำเข้า | ส่งออก |
|---|---|---|
| OBJ (Wavefront) | ใช่ | ใช่ |
| glTF 2.0 / GLB | ใช่ | ใช่ |
| FBX (Autodesk) | ไม่* | ไม่* |
| STL (Stereo Lithography) | ใช่ | ใช่ |
| 3MF (3D Manufacturing) | ใช่ | ใช่ |
| COLLADA (.dae) | ใช่ | ใช่ |
ฉันจะโหลดไฟล์ 3D อย่างไร?
สร้าง Scene และเรียก scene.open():
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());สำหรับรูปแบบที่ไม่ต้องการตัวเลือกพิเศษ ให้ละเว้นอาร์กิวเมนต์ที่สอง:
const scene = new Scene();
scene.open('model.glb');scene.open() เป็นแบบอะซิงโครนัสหรือไม่?
ไม่, scene.open() และ scene.openFromBuffer() เป็นการเรียกแบบ synchronous. หากคุณต้องการ I/O แบบไม่บล็อก ให้เรียกใช้ภายใน worker thread ของ Node.js หรือห่อหุ้มด้วย setImmediate.
ฉันจะบันทึกเป็น glTF/GLB อย่างไร?
เรียก scene.save() พร้อมเส้นทางไฟล์ รูปแบบจะถูกตรวจจับโดยอัตโนมัติจากส่วนขยาย:
scene.save('output.glb'); // binary glTF
scene.save('output.gltf'); // JSON glTF
scene.save('output.obj'); // OBJ
scene.save('output.stl'); // STL
ฉันจะโหลดจากบัฟเฟอร์ (ในหน่วยความจำ) อย่างไร?
ใช้ 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());ข้อผิดพลาด: ไม่พบโมดูล ‘@aspose/3d/formats/obj’
นี่ต้องการการแก้ไขการส่งออกแพ็กเกจของ Node.js 12.7+ ตรวจสอบให้แน่ใจว่าคุณใช้ Node.js 18+ สำหรับ TypeScript ให้ตั้งค่า "moduleResolution": "node16" หรือ "bundler" ใน tsconfig.json:
{
"compilerOptions": {
"moduleResolution": "node16",
"target": "ES2020"
}
}ประเภทของ node.entity คืออะไร?
node.entity มีการพิมพ์แบบกว้าง. เพื่อเข้าถึงคุณสมบัติที่เฉพาะเจาะจงของเมช, ตรวจสอบการมีอยู่ของมันด้วย 'controlPoints' in node.entity หรือใช้คลาส Mesh จาก @aspose/3d/entities:
import { Mesh } from '@aspose/3d/entities';
if (node.entity instanceof Mesh) {
const mesh = node.entity;
console.log(mesh.controlPoints.length);
}ไลบรารีทำงานในเบราว์เซอร์ได้หรือไม่?
ไลบรารีนี้ออกแบบมาสำหรับ Node.js. การสนับสนุนเบราว์เซอร์ขึ้นอยู่กับการกำหนดค่าบันเดิลเลอร์และ API ของระบบไฟล์ที่ถูกแทนที่ด้วยทางเลือกในหน่วยความจำ.
ไลบรารีนี้ปลอดภัยต่อการทำงานหลายเธรดหรือไม่?
แต่ละวัตถุ Scene เป็นอิสระ การใช้อินสแตนซ์ Scene แยกจากกันในเธรดงานของ Node.js แยกกันนั้นปลอดภัย ตราบใดที่คุณไม่ได้แชร์ซีนเดียวกันข้ามเธรดโดยไม่มีการซิงโครไนซ์ภายนอก.
เวอร์ชันของ Node.js ที่รองรับคืออะไร?
Node.js 18, 20, และ 22 ได้รับการสนับสนุนอย่างเป็นทางการ. แนะนำให้ใช้ TypeScript 5.0+.
@aspose/3d รองรับแอนิเมชันหรือไม่?
ใช่ ระบบแอนิเมชันรวมถึง AnimationClip, AnimationChannel และประเภทเส้นโค้งคีย์เฟรมที่เข้าถึงได้จาก @aspose/3d/animation.