Introduction

Aspose.3D FOSS est une bibliothèque .NET libre et open source pour travailler avec les formats de fichiers 3D. Il fournit un ensemble complet de classes d’utilité qui vont au-delà de la conversion simple des ficher, permettant aux développeurs de manipuler les meshées, de construire des transformations et de générer la géométrie primitive programmablement. La bibliotheque est publiée sous la licence MIT, ce qui le rend adapté à des projets personnels et commerciaux sans restrictions.

Cet article se concentre sur les capacités utilitaires de la bibliothèque : les classes et méthodes que vous utilisez lorsque vous devez trianguler un maillage, construire une matrice de transformation étape par étape, ou créer une géométrie paramétrique. Ces blocs de construction complètent le flux de travail de chargement et d’enregistrement de scènes présenté dans l’article d’introduction.

Que vous traitiez des actifs 3D dans une chaîne de construction, prépariez de la géométrie pour un moteur de jeu, ou convertissiez entre des formats, ces utilitaires gèrent les tâches courantes qui apparaissent dans les flux de travail 3D du monde réel.


Ce qui est inclus

Opérations de maillage

Le Mesh Vous pouvez créer des polygones à partir d’indices vertéx, de la taille de poligone de recherche, des visages triangulaires et optimiser les données vertex. ControlPoints La propriété fournit un accès direct aux positions vertéx, alors que Polygons Il est exposé à l’index face.

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

Constructeur de transformation

Le TransformBuilder La classe fournit une interface fluide pour construire les matrices de transformation à travers une séquence d’opérations de traduction, de rotation et d’échelle. Vous contrôlez l’ordre de composition (append ou prépend) et vous pouvez réinstaller le constructeur pour démarrer une chaîne fraîche.

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;

Modificateur de polygone

Le PolygonModifier classe offre des méthodes d’utilité statique pour le traitement de la messe. Triangulate La méthode convertit n-site de polygone en triangle seulement géométrie, qui est l’entrée requise pour la plupart des moteurs rendants et les simulations physiques.

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

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

Génération de géométrie primitive

La bibliothèque comprend des classes de géométrie paramétrique telles que : Box, Sphere,et Cylinder.Chaque primitif peut être configuré avec des dimensions et des segments, puis converti en un Mesh par le biais de la ToMesh() méthode de traitement ou d’exportation ultérieure.

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

Calcul de la boîte englobante

Chaque Entity La sous-classe expose une GetBoundingBox() méthode qui retourne la boîte de bord axée de la géométrie. BoundingBox Structure fournit Minimum et Maximum vecteurs de coin, utiles pour les queries spatiales et le cadre de la caméra.

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;

Démarrage rapide

Installez le package depuis NuGet :

dotnet add package Aspose.3D.FOSS

Chargez un fichier, triangulez chaque maillage et enregistrez le résultat :

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

Formats soutenus

FormatsExtensionLireÉcrire
Collade.Le jourOuiOui
FBX.FbxOuiOui
GST / GLB.gltf / .gbOuiOui
3MF.3MFOuiNon pas
Le Wavefront OBJ.Mme OBJOuiOui
PLY.- Le SujetOuiNon pas
STL.StlOuiOui
TMF.TmfNon pasOui

Source ouverte et licence

Aspose.3D FOSS est sorti sous la licence MIT. Vous pouvez utiliser, modifier et redistribuer la bibliothèque dans les projets open source et propriétaires. Le code source complet est disponible sur GitHub à partir de Avis sur le site 3D-FOSS pour .NET.


Pour commencer

  • Guide de développeur - la documentation complète couvrant la gestion de scène, les options de format et les fonctionnalités avancées.
  • Base de connaissances Comment faire des articles et poser souvent des questions.
  • Le référencement API - référence de classe par classe avec signatures méthodiques et détails propriétaires.

Ressources associées