Introduction

Aspose.3D FOSS là một thư viện .NET miễn phí, mã nguồn mở để làm việc với các định dạng tệp 3D. Nó cung cấp một bộ đầy đủ các lớp tiện ích vượt ra ngoài việc chuyển đổi tệp đơn giản, cho phép các nhà phát triển thao tác lưới, xây dựng biến đổi và tạo hình học nguyên thủy một cách lập trình. Thư viện được phát hành dưới giấy phép MIT, phù hợp cho cả dự án cá nhân và thương mại mà không có hạn chế.

Bài viết này tập trung vào các khả năng tiện ích trong thư viện: các lớp và phương thức bạn sẽ dùng khi cần chia lưới thành tam giác, xây dựng ma trận biến đổi từng bước, hoặc tạo hình học tham số. Những khối xây dựng này bổ trợ cho quy trình tải và lưu cảnh chính được đề cập trong bài viết giới thiệu.

Cho dù bạn đang xử lý tài sản 3D trong quy trình xây dựng, chuẩn bị hình học cho engine trò chơi, hay chuyển đổi giữa các định dạng, những tiện ích này xử lý các nhiệm vụ phổ biến xuất hiện trong quy trình làm việc 3D thực tế.


Những gì được bao gồm

Các thao tác lưới

Các Mesh lớp đại diện cho hình học dựa trên polygan. bạn có thể tạo các polygon từ chỉ số trần, kích thước poligone truy vấn, mặt ba chiều và tối ưu hóa dữ liệu tròn. ControlPoints tài sản cung cấp quyền truy cập trực tiếp đến các vị trí chân trời, trong khi Polygons - Tính năng của Face Index.

using Aspose.ThreeD;
using Aspose.ThreeD.Entities;

var scene = new Scene();
var mesh = new Mesh("CustomMesh");

// Add control points (vertices)
mesh.ControlPoints.Add(new Vector4(0, 0, 0));
mesh.ControlPoints.Add(new Vector4(10, 0, 0));
mesh.ControlPoints.Add(new Vector4(10, 10, 0));
mesh.ControlPoints.Add(new Vector4(0, 10, 0));

// Create a quad polygon from four vertices
mesh.CreatePolygon(0, 1, 2, 3);

// Triangulate all polygons in the mesh
mesh.Triangulate();

Trình tạo biến đổi

Các TransformBuilder lớp cung cấp một giao diện lỏng để xây dựng các matrices chuyển đổi thông qua một chuỗi dịch, xoay và quy mô hoạt động. bạn kiểm soát thứ tự thành phần (tăng hoặc prepend) và có thể đặt lại nhà xây để bắt đầu một dây chuyền mới.

using Aspose.ThreeD;
using Aspose.ThreeD.Utilities;

var builder = new TransformBuilder(ComposeOrder.Append);

// Build a combined transform: translate, then rotate, then scale
builder.Translate(5, 0, 3);
builder.RotateDegree(45, new Vector3(0, 1, 0));
builder.Scale(2, 2, 2);

// Retrieve the composed 4x4 matrix
Matrix4 result = builder.Matrix;

Bộ chỉnh sửa đa giác

Các PolygonModifier lớp cung cấp các phương pháp sử dụng tĩnh cho việc xử lý mảnh. Triangulate phương pháp chuyển đổi bất kỳ n-site polygon mích thành triangle-only geometry, đó là input cần thiết cho hầu hết các động cơ rendering và mô phỏng vật lý.

var scene = new Scene(); var box = new Box(2, 2, 2); Mesh boxMesh = box.ToMesh();

// Convert all polygons to triangles Mesh triangulated = PolygonModifier.Triangulate(boxMesh);


### Tạo hình học nguyên thủy

Thư viện bao gồm các lớp học địa phương thông số như: `Box`, `Sphere`, và `Cylinder`.Mỗi nguyên tử có thể được cấu hình với các kích thước và số phân đoạn, sau đó chuyển đổi thành một `Mesh` qua The `ToMesh()` phương pháp xử lý hoặc xuất khẩu tiếp theo.

```csharp
using Aspose.ThreeD.Entities;

// Create a parameterized sphere
var sphere = new Sphere(5.0, 32, 16);
Mesh sphereMesh = sphere.ToMesh();

// Create a cylinder (cone when one radius is zero)
var cone = new Cylinder(0, 3.0, 6.0);
Mesh coneMesh = cone.ToMesh();

Tính toán hộp bao

Every Entity Subclass trình bày A GetBoundingBox() phương pháp mà trả về hộp biên axis-liên kết của địa chất. BoundingBox Stretch cung cấp MinimumMaximum vectors góc, hữu ích cho các truy vấn không gian và khung máy ảnh.

using Aspose.ThreeD.Entities;
using Aspose.ThreeD.Utilities;

var box = new Box(4, 2, 6);
BoundingBox bounds = box.GetBoundingBox();

FVector3 min = bounds.Minimum;
FVector3 max = bounds.Maximum;

Khởi động nhanh

Cài đặt gói từ NuGet:

dotnet add package Aspose.3D.FOSS

Tải một tệp, tạo tam giác cho mọi lưới, và lưu kết quả:

// Load a scene from an OBJ file var scene = new Scene(); scene.Open(“input.obj”);

// Walk child nodes and triangulate each mesh entity foreach (var node in scene.RootNode.ChildNodes) { foreach (var entity in node.Entities) { if (entity is Mesh mesh) { mesh.Triangulate(); } } }

// Save the triangulated scene as glTF scene.Save(“output.glb”);


---

## Các định dạng hỗ trợ

| Format             | Extension    | Read  | Write |
| ------------------ | ------------ | ----- | ----- |
| Collada            | .Ngày        | Có    | Có    |
| FBX                | .Phim FBX    | Có    | Có    |
| GLTF / GLB         | .gltf / .gb  | Có    | Có    |
| 3MF                | .3mf         | Có    | Không |
| Vòng Wavefront OBJ | .Đồ Obj      | Có    | Có    |
| PLY                | .Lời bài hát | Có    | Không |
| STL                | .ĐTL         | Có    | Có    |
| TMF                | .Tmf         | Không | Có    |

---

## Open Source & Giấy phép

Aspose.3D FOSS được phát hành theo giấy phép MIT. Bạn có thể sử dụng, sửa đổi và phân phối lại thư viện trong cả các dự án nguồn mở và sở hữu. Mã nguồn đầy đủ có sẵn trên GitHub tại: [Aspose-3d-foss / Aspos.3D-FOSS-for-.NET](https://github.com/aspose-3d-foss/Aspose.3D-FOSS-for-.NET.git).

---

## bắt đầu

- [Hướng dẫn Developer](https://docs.aspose.org/3d/net/) - Tài liệu đầy đủ bao gồm quản lý cảnh, tùy chọn định dạng và các tính năng tiên tiến.
- [Cơ sở kiến thức](https://kb.aspose.org/3d/net/) - Làm thế nào để viết bài và thường xuyên hỏi câu hỏi.
- [API tham chiếu](https://reference.aspose.org/3d/net/) - tham chiếu lớp theo lớp với chữ ký phương pháp và chi tiết tài sản.

## Tài nguyên liên quan

- [Aspose.3D — Doanh nghiệp Blog](https://blog.aspose.com/)