คำถามที่พบบ่อย

คำถามที่พบบ่อย

คำถามที่พบบ่อย

ฉันจะติดตั้ง @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.


ดูเพิ่มเติม

 ภาษาไทย