Introduction

Aspose.3D FOSS, 3D dosya formatlarıyla çalışmak için ücretsiz, açık kaynaklı bir .NET kütüphanesidir. Basit dosya dönüşümünün ötesine geçen kapsamlı bir yardımcı sınıf seti sunar; geliştiricilerin mesh’leri manipüle etmesini, dönüşümler oluşturmasını ve temel geometriyi programlı olarak üretmesini sağlar. Kütüphane MIT lisansı altında yayınlanmıştır, bu da kişisel ve ticari projeler için kısıtlama olmaksızın uygun olmasını sağlar.

Bu gönderi, kütüphane içindeki yardımcı yeteneklere odaklanıyor: bir mesh’i üçgene bölmeniz, adım adım bir dönüşüm matrisi oluşturmanız veya parametrik geometri yaratmanız gerektiğinde başvurduğunuz sınıflar ve yöntemler. Bu yapı taşları, giriş gönderisinde ele alınan temel sahne yükleme ve sahne kaydetme iş akışını tamamlar.

İster bir derleme hattında 3D varlıkları işliyor olun, ister bir oyun motoru için geometri hazırlıyor olun, ya da formatlar arasında dönüştürme yapıyor olun, bu araçlar gerçek dünyadaki 3D iş akışlarında ortaya çıkan yaygın görevleri halleder.


Ne içeriyor

Mesh İşlemleri

O zamanlar Mesh sınıf poligon tabanlı geometri temsil eder. vertex indeksleri, soru poligonu boyutları, üçgen yüzleri ve vertek veri optimizasyonu ile polygon oluşturabilirsiniz. ControlPoints Mülkiyet vertikal pozisyonlara doğrudan erişim sağlar, ancak Polygons Yüzün indeksi aralığına sahiptir.

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();

Dönüşüm Oluşturucu

O zamanlar TransformBuilder Sınıf, dönüşüm matrisleri bir çeviri, dönme ve ölçek işlemlerinin bir seansını aracılığıyla yapılandırmak için akıcı bir arayüz sağlar. kompozisyon sırasını kontrol edersiniz (aşırı veya ön) ve yeni bir zincir başlatmak üzere yapımcıyı yeniden ayarlayabilirsiniz.

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;

Poligon Değiştirici

PolygonModifier sınıfı, mesh işleme için statik yardımcı yöntemler sunar; bunlardan Triangulate yöntemi, n-kenarlı bir poligon meshini yalnızca üçgenlerden oluşan bir geometriye dönüştürmeyi hedefler. Bu FOSS sürümünde Triangulate uygulanmamıştır – her aşırı yükleme çalışma zamanında NotImplementedException fırlatır. Çalışan bir üçgenleştirme için, yukarıdaki Mesh İşlemleri bölümünde gösterilen Mesh.Triangulate() yöntemini kullanın.

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

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

Temel Geometri Oluşturma

Kütüphane parametrik geometri sınıfları içerir, örneğin Box, Sphere,ve Cylinder.Her bir ilkel boyut ve segment sayılar ile yapılandırılabilir, daha sonra bir Mesh yoluyla The ToMesh() Daha fazla işleme veya ihracat için yöntem.

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();

Sınır Kutusu Hesaplaması

Every Entity Subclass A’yı gösterir GetBoundingBox() Geometri’nin as ile yapıştırılmış sınır kutusunu geri getiren yöntem. BoundingBox Stretch sağlar Minimum ve Maximum köşeli vektörler, uzay sorguları ve kamera çerçevesi için yararlıdır.

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

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

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

Hızlı Başlangıç

NuGet’ten paketi yükleyin:

dotnet add package Aspose.3D.FOSS

Bir dosya yükleyin, her ağı üçgenleştirin ve sonucu kaydedin:

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

// 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");

Desteklenen Formatlar

FormatExtensionReadWrite
Collada.GünlükEvetEvet
FBX.fbx içinEvetEvet
GTT / GLB.gltf / .gb içinEvetEvet
3MF.3MFEvetHayır
Wavefront OBJ İndirme.OJEvetEvet
PLY.SohbetEvetHayır
STL.STLEvetEvet
TMF.TMFHayırEvet

Açık Kaynak & Lisans

Aspose.3D FOSS MIT lisansı altında yayınlanmaktadır. kütüphanesini hem açık kaynaklı hem de mülkiyet projelerinde kullanabilir, değiştirebilir ve yeniden dağıtabilirsiniz. tam kaynağı kodu GitHub’da mevcuttur. aspose-3d-foss / Aspos.3D-FOSS-for-.NET için.


Başlamaya başlar

  • Geliştirici Rehberi - sahne yönetimi, format seçenekleri ve gelişmiş özellikleri kapsayan tam belgeler.
  • Bilgi Temeli - Nasıl makaleler ve sıkça sorulan sorular.
  • API Referansları - Sınıf-sınıf referansı, metin imzaları ve mülkiyet ayrıntıları ile.

İlgili Kaynaklar