Cách Chuyển Đổi Mô Hình 3D trong .NET
Aspose.3D for .NET thực hiện chuyển đổi định dạng thành một thao tác hai bước: tải tệp nguồn bằng Scene.Open(), sau đó lưu sang định dạng đích bằng Scene.Save(). Định dạng đầu ra được suy ra từ phần mở rộng tệp.
Hướng Dẫn Từng Bước
Bước 1: Cài đặt gói
dotnet add package Aspose.3D --version 26.1.0Bước 2: Nhập không gian tên
using Aspose.ThreeD;
using Aspose.ThreeD.Formats;Bước 3: Tải tệp nguồn
var scene = new Scene();
scene.Open("input.fbx");Bước 4: Lưu ở Định dạng Đích
scene.Save("output.glb");Thư viện phát hiện định dạng đích từ phần mở rộng. Các định dạng xuất được hỗ trợ: OBJ, STL, glTF 2.0 / GLB, FBX, COLLADA và 3MF.
Bước 5: Sử dụng các tùy chọn lưu theo định dạng
Để kiểm soát chi tiết, hãy truyền một lớp con SaveOptions:
// FBX output — always produces binary FBX
// FbxSaveOptions exists but has no format-specific properties in this version
scene.Save("output.fbx");
// OBJ with flipped coordinate system
scene.Save("output.obj", new ObjSaveOptions { FlipCoordinateSystem = true });
// COLLADA with indented XML
scene.Save("output.dae", new ColladaSaveOptions { Indented = true });Các công thức chuyển đổi chung
| Source | Target | Code |
|---|---|---|
| OBJ to GLB | scene.Open("input.obj"); scene.Save("output.glb"); | Binary glTF cho các trình xem web |
| FBX to STL | scene.Open("input.fbx"); scene.Save("output.stl"); | Mạng lưới tam giác cho in 3D |
| glTF to COLLADA | scene.Open("input.gltf"); scene.Save("output.dae"); | Định dạng trao đổi DAE |
| STL to OBJ | scene.Open("input.stl"); scene.Save("output.obj"); | Wavefront cho các công cụ mô hình hoá |
Các vấn đề thường gặp và cách khắc phục
Tệp đầu ra trống hoặc quá nhỏ
Đảm bảo tệp nguồn đã được tải thành công. Kiểm tra scene.RootNode.ChildNodes.Count sau Open().
Tài liệu bị mất trong quá trình chuyển đổi
Không phải tất cả các định dạng đều mang cùng các thuộc tính vật liệu. Vật liệu OBJ sử dụng Lambert/Phong; glTF sử dụng PBR. Việc ánh xạ vật liệu là cố gắng hết mức qua các ranh giới định dạng.
Sự chênh lệch tỷ lệ giữa nguồn và đầu ra
Các công cụ khác nhau sử dụng các hệ đơn vị khác nhau. Áp dụng ObjLoadOptions.Scale khi nhập hoặc điều chỉnh node.Transform.Scale trước khi lưu.
Câu hỏi thường gặp (FAQ)
Tôi có thể chuyển đổi PLY sang định dạng khác không?
PLY chỉ hỗ trợ nhập. Tải tệp PLY và lưu sang bất kỳ định dạng xuất nào (OBJ, STL, GLB, FBX, COLLADA).
Việc chuyển đổi có giữ lại các hoạt ảnh không?
Dữ liệu hoạt hình (AnimationClip) được giữ nguyên khi cả hai định dạng đều hỗ trợ nó (ví dụ, FBX sang glTF). STL và OBJ không chứa dữ liệu hoạt hình.
Tôi có thể chuyển đổi hàng loạt nhiều tệp không?
Tạo một Scene mới cho mỗi tệp trong vòng lặp. Mỗi Scene là độc lập và có thể được xử lý song song.