Giới thiệu
Chúng tôi rất vui mừng thông báo việc có sẵn Aspose.3D FOSS cho TypeScript như @aspose/3d npm package. Thư viện có giấy phép MIT này mang lại khả năng xử lý cảnh 3D chất lượng sản xuất cho các ứng dụng TypeScript và Node.js mà không cần các binary gốc, bộ công cụ đặc thù nền tảng, hay giấy phép thương mại.
Thư viện được thiết kế dựa trên một cách tiếp cận đơn giản Scene API: tải một tệp 3D bằng scene.open(), kiểm tra hoặc chuyển đổi đồ thị cảnh, và ghi kết quả bằng scene.save(). Định nghĩa kiểu TypeScript đầy đủ được đóng gói; không cần gói riêng @types/ gói là bắt buộc.
Các tính năng chính
I/O đa định dạng. Gói này đọc và ghi sáu định dạng 3D chính trong một lần cài đặt duy nhất. OBJ được hỗ trợ để nhập; glTF 2.0, GLB, STL, 3MF và COLLADA hỗ trợ cả nhập và xuất. Các lớp nhập/xuất FBX tồn tại nhưng việc tự động phát hiện định dạng chưa được kết nối, vì vậy các tệp FBX không thể được tải qua scene.open().
Hỗ trợ TypeScript hạng nhất. Tất cả các lớp công khai, enumeration và kiểu tùy chọn đều được khai báo kiểu đầy đủ. Các IDE hỗ trợ dịch vụ ngôn ngữ TypeScript (VS Code, WebStorm, v.v.) cung cấp tính năng tự động hoàn thành chính xác và tài liệu nội tuyến cho mọi lời gọi API.
Tương thích với Node.js 18–22+. Gói đã được kiểm thử trên các bản phát hành LTS của Node.js 18, 20 và 22. Không có addon gốc nào được biên dịch trong quá trình cài đặt, vì vậy nó hoạt động trên mọi nền tảng mà Node.js hỗ trợ.
Một phụ thuộc thời gian chạy. Phụ thuộc duy nhất là xmldom, được sử dụng riêng cho việc phân tích XML COLLADA. Tất cả các bộ phân tích định dạng khác đều là các triển khai thuần JavaScript.
Giấy phép MIT. Sử dụng @aspose/3d trong các dự án thương mại, mã nguồn mở hoặc nội bộ mà không có hạn chế.
Bắt đầu nhanh
Cài đặt gói:
npm install @aspose/3d
Tải tệp OBJ và chuyển đổi sang GLB nhị phân:
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
import { GltfSaveOptions, GltfFormat } from '@aspose/3d/formats/gltf';
const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());
const saveOpts = new GltfSaveOptions();
saveOpts.binaryMode = true; // produce a single .glb file
scene.save('output.glb', GltfFormat.getInstance(), saveOpts);
console.log('Converted to GLB successfully');
Duyệt qua các nút cảnh để kiểm tra hình học:
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());
for (const node of scene.rootNode.childNodes) {
console.log(`Node: ${node.name}`);
if (node.entity) {
console.log(` Entity type: ${node.entity.constructor.name}`);
}
}
Các định dạng được hỗ trợ
| Định dạng | Phần mở rộng | Nhập | Xuất | Ghi chú |
|---|---|---|---|---|
| Wavefront OBJ | .obj | Có | Không | Chỉ nhập; đọc .mtl tệp vật liệu |
| glTF 2.0 | .gltf | Có | Có | JSON với tệp bên ngoài .bin bộ đệm |
| GLB nhị phân | .glb | Có | Có | Đặt binaryMode: true trong GltfSaveOptions |
| STL | .stl | Có | Có | ASCII và STL nhị phân |
| 3MF | .3mf | Có | Có | tập tin Open Packaging Convention |
| FBX | .fbx | Không* | Không* | Trình nhập/xuất tồn tại nhưng việc tự động phát hiện định dạng chưa được kết nối |
| COLLADA | .dae | Có | Có | Yêu cầu được đóng gói xmldom phụ thuộc |
Ưu điểm của TypeScript
Làm việc với @aspose/3d trong TypeScript bắt lỗi loại ở thời gian biên dịch thay vì thời gian chạy. Khi bạn gọi scene.save(), trình biên dịch xác nhận rằng đối tượng tùy chọn khớp với mong đợi SaveOptions kiểu phụ cho định dạng đã chọn. Các tùy chọn tải và lưu riêng cho từng định dạng chỉ hiển thị các thuộc tính liên quan đến định dạng đó; không có túi tùy chọn không kiểu để đoán.
Ví dụ, GltfSaveOptions.binaryMode là một kiểu đã được xác định boolean, vì vậy trình biên dịch sẽ từ chối saveOpts.binaryMode = 'yes' trước khi bất kỳ mã nào chạy. Thuộc tính hoạt hình trên AnimationClip, các kênh vật liệu trên PbrMaterial, và các loại phần tử đỉnh trên VertexElement đều có kiểu tương tự và có thể khám phá thông qua IntelliSense mà không cần tham khảo tài liệu bên ngoài.
Mã nguồn mở và miễn phí
Gói được phát hành dưới MIT License. Mã nguồn có sẵn trên GitHub. Các đóng góp, báo cáo lỗi và yêu cầu hỗ trợ định dạng đều được chào đón qua trình theo dõi vấn đề của kho.
Thư viện có một phụ thuộc thời gian chạy: xmldom phiên bản 0.9+, chỉ được sử dụng khi đọc hoặc ghi các tệp COLLADA. Tất cả các bộ phân tích và bộ ghi khác đều là các triển khai thuần JavaScript độc lập, không có thành phần nhị phân.
Bắt đầu
- npm:
npm install @aspose/3d - Cơ sở Kiến thức: Cách tải mô hình 3D trong TypeScript
- Cơ sở Kiến thức: Cách xuất cảnh 3D sang glTF/GLB trong TypeScript
- Tham chiếu API: Aspose.3D FOSS cho TypeScript: Tham chiếu Lớp đầy đủ
- GitHub: aspose-3d/aspose-3d-node
Kết luận
@aspose/3d phiên bản 24.12.0 cung cấp một nền tảng ổn định, có kiểu, nhẹ về phụ thuộc cho việc xử lý tệp 3D trong TypeScript và Node.js. Cho dù trường hợp sử dụng là chuyển đổi định dạng, kiểm tra cảnh, trích xuất hình học, hoặc tích hợp pipeline, thư viện bao phủ các định dạng trao đổi 3D phổ biến nhất dưới một giấy phép mã nguồn mở cho phép.
Cài đặt ngay hôm nay và cho chúng tôi biết bạn đã xây dựng gì.