Câu hỏi thường gặp
Câu hỏi thường gặp
Làm thế nào để tôi cài đặt @aspose/3d?
Cài đặt từ npm. Yêu cầu Node.js phiên bản 18 trở lên:
npm install @aspose/3dXác minh việc cài đặt:
import { Scene } from '@aspose/3d';
const scene = new Scene();
console.log('@aspose/3d ready');Các định nghĩa kiểu TypeScript được đóng gói cùng với gói. Không cần gói @types/ riêng biệt.
Các định dạng tệp nào được hỗ trợ?
| Định dạng | Nhập | Xuất |
|---|---|---|
| OBJ (Wavefront) | Có | Có |
| glTF 2.0 / GLB | Có | Có |
| FBX (Autodesk) | Không* | Không* |
| STL (Stereo Lithography) | Có | Có |
| 3MF (3D Manufacturing) | Có | Có |
| COLLADA (.dae) | Có | Có |
Làm thế nào để tôi tải tệp 3D?
Tạo một Scene và gọi scene.open():
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());Đối với các định dạng không cần tùy chọn đặc biệt, bỏ qua đối số thứ hai:
const scene = new Scene();
scene.open('model.glb');scene.open() có phải là bất đồng bộ không?
Không. scene.open() và scene.openFromBuffer() là các cuộc gọi đồng bộ. Nếu bạn cần I/O không chặn, hãy chạy chúng trong một luồng công nhân Node.js hoặc bọc chúng bằng setImmediate.
Làm sao tôi có thể lưu thành glTF/GLB?
Gọi scene.save() với một đường dẫn tệp. Định dạng được phát hiện tự động từ phần mở rộng:
scene.save('output.glb'); // binary glTF
scene.save('output.gltf'); // JSON glTF
scene.save('output.obj'); // OBJ
scene.save('output.stl'); // STL
Làm sao tôi tải từ Buffer (trong bộ nhớ)?
Sử dụng 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());Lỗi: Không thể tìm thấy mô-đun ‘@aspose/3d/formats/obj’
Điều này yêu cầu Node.js 12.7+ giải quyết xuất khẩu gói. Đảm bảo bạn đang sử dụng Node.js 18+. Đối với TypeScript, đặt "moduleResolution": "node16" hoặc "bundler" trong tsconfig.json:
{
"compilerOptions": {
"moduleResolution": "node16",
"target": "ES2020"
}
}Kiểu của node.entity là gì?
node.entity được gõ một cách chung chung. Để truy cập các thuộc tính đặc thù của lưới, hãy kiểm tra sự tồn tại của chúng bằng 'controlPoints' in node.entity hoặc sử dụng lớp Mesh từ @aspose/3d/entities:
import { Mesh } from '@aspose/3d/entities';
if (node.entity instanceof Mesh) {
const mesh = node.entity;
console.log(mesh.controlPoints.length);
}Thư viện có chạy trong trình duyệt không?
Thư viện được thiết kế cho Node.js. Hỗ trợ trình duyệt phụ thuộc vào cấu hình bundler và các API hệ thống tệp được thay thế bằng các giải pháp thay thế trong bộ nhớ.
Thư viện có an toàn với đa luồng không?
Mỗi đối tượng Scene là độc lập. Việc sử dụng các thể hiện Scene riêng biệt từ các luồng công nhân Node.js riêng là an toàn miễn là bạn không chia sẻ một cảnh duy nhất giữa các luồng mà không có đồng bộ bên ngoài.
Phiên bản Node.js nào được hỗ trợ?
Node.js 18, 20 và 22 được hỗ trợ chính thức. TypeScript 5.0+ được khuyến nghị.
Liệu @aspose/3d có hỗ trợ hoạt ảnh không?
Có. Hệ thống hoạt hình bao gồm AnimationClip, AnimationChannel và các loại đường cong keyframe có thể truy cập từ @aspose/3d/animation.