Tạo Cảnh 3D bằng C#

Cảnh 3D đơn giản là một biểu diễn đồ họa ba chiều của dữ liệu hình học. Trong bài này, chúng ta sẽ học cách tạo cảnh 3D bằng C# từ đầu mà không cần cài đặt bất kỳ phần mềm dựng hình hoặc mô hình 3D nào. Chúng tôi sẽ lưu cảnh 3D ở định dạng tệp FBX, một định dạng tệp 3D phổ biến được sử dụng để trao đổi các định dạng 3D. FBX có thể được lưu trên đĩa dưới dạng tệp dữ liệu nhị phân hoặc ASCII.

Các chủ đề sau sẽ được đề cập trong bài viết này:

  1. C# API để tạo cảnh 3D - Tải xuống miễn phí
  2. Tạo Cảnh 3D Đơn giản trong C#
  3. Đọc Cảnh 3D bằng C#

API C# để tạo cảnh 3D - Tải xuống miễn phí

Để tạo và đọc cảnh 3D, chúng tôi sẽ sử dụng API Aspose.3D for .NET. Nó cho phép tạo và lưu cảnh 3D ở các định dạng được hỗ trợ. Nó cũng cho phép làm việc với hệ thống phân cấp hình học và cảnh, tạo hoạt ảnh cho các đối tượng trong Cảnh và chuyển đổi Định dạng tệp 3D.

API cung cấp lớp Scene là đối tượng cấp cao nhất chứa các nút, hình học, vật liệu, kết cấu, hoạt ảnh, tư thế, cảnh phụ, v.v. Phương thức CreateChildNode (Entity) tạo một nút con mới có đính kèm một thực thể nhất định. API cung cấp mô hình tô bóng cho LambertMaterial, PhongMaterialShaderMaterial. Ánh sáng chiếu sáng cảnh, lớp Light của API cho phép bổ sung một số ánh sáng vào cảnh.

Vui lòng tải xuống DLL của API hoặc cài đặt nó bằng NuGet.

PM> Install-Package Aspose.3D

Tạo một cảnh 3D đơn giản trong C#

Chúng ta có thể tạo một cảnh 3D đơn giản bằng cách làm theo các bước dưới đây:

  1. Tạo một thể hiện của lớp Scene.
  2. Gọi phương thức CreateChildNode() để thêm một số hình học, hình khối để hiển thị trên màn hình, ví dụ như Cylinder.
  3. Đặt thuộc tính nút con chẳng hạn như Vật liệu.
  4. Khởi tạo một đối tượng lớp Light.
  5. Gọi phương thức CreateChildNode() để thêm thực thể Light.
  6. Cuối cùng, lưu cảnh dưới dạng FBX bằng phương thức Save(). Nó lấy đường dẫn tệp đầu ra và FileFormat.FBX7500ASCII làm đối số.

Mẫu mã sau đây cho thấy cách tạo cảnh 3D đơn giản bằng C#.

// Ví dụ mã này trình bày cách tạo một cảnh 3D đơn giản trong tệp FBX.
// Khởi tạo cảnh 3D
var scene = new Scene();

// Khởi tạo đối tượng Cylinder
var cylinder = new Cylinder();
cylinder.Name = "Cylinder";

// Tạo một nút con và thêm đối tượng Cylinder
var node = scene.RootNode.CreateChildNode(cylinder);

// Đặt properites nút con
var material = new LambertMaterial() { DiffuseColor = new Vector3(Color.LightBlue) };
material.Name = "Lambert";
node.Material = material;

// Thêm thực thể Light
var light = new Light() { LightType = LightType.Point };
light.Name = "Light";
scene.RootNode.CreateChildNode(light).Transform.Translation = new Vector3(10, 0, 10);

// Đường dẫn tệp đầu ra
var output = @"C:\Files\3D\document.fbx";

// Lưu tài liệu cảnh 3D
scene.Save(output, FileFormat.FBX7500ASCII);

Đọc Cảnh 3D bằng C#

Chúng ta có thể đọc một cảnh 3D từ tài liệu FBX bằng cách làm theo các bước dưới đây:

  1. Tạo một thể hiện của lớp Scene.
  2. Tải tài liệu 3D hiện có bằng phương thức Open().
  3. Lặp qua các thuộc tính ChildNodes
  4. Cuối cùng, hiển thị các giá trị thuộc tính.

Mẫu mã sau đây cho thấy cách tải và đọc cảnh 3D bằng C#.

// Ví dụ mã này trình bày cách đọc cảnh 3D từ tệp FBX
// Khởi tạo một đối tượng lớp Scene
Scene scene = new Scene();

// Tải tài liệu 3D hiện có
scene.Open(@"C:\Files\3D\document.fbx");

foreach(var node in scene.RootNode.ChildNodes)
{
    var entity = node.Entity;
    Console.WriteLine("{0}", entity.Name); 

    if (node.Material != null)
    {
        Material material = node.Material;
        Console.WriteLine("{0}", material.Name);

        PropertyCollection props = material.Properties;
        //Liệt kê tất cả các thuộc tính bằng foreach
        foreach (var prop in props)
        {
            Console.WriteLine("{0} = {1}", prop.Name, prop.Value);
        }
        //hoặc sử dụng vòng lặp for theo thứ tự
       for (int i = 0; i < props.Count; i++)
        {
            var prop = props[i];
            Console.WriteLine("{0} = {1}", prop.Name, prop.Value);
        }
    }
}

Nhận Giấy phép Tạm thời Miễn phí

Bạn có thể nhận giấy phép tạm thời miễn phí để dùng thử Aspose.3D for .NET mà không có giới hạn đánh giá.

Sự kết luận

Trong bài viết này, chúng tôi đã học cách:

  • tạo cảnh 3D theo chương trình;
  • thêm các đối tượng / thực thể vào cảnh 3D như Xylanh, vật liệu, ánh sáng, v.v.;
  • đọc các ghi chú và thuộc tính của cảnh 3D trong C#.

Bên cạnh đó, bạn có thể tìm hiểu thêm về Aspose.3D for .NET API bằng cách sử dụng tài liệu. Trong trường hợp có bất kỳ sự mơ hồ nào, vui lòng liên hệ với chúng tôi trên diễn đàn của chúng tôi.

Xem thêm