Einführung
3D FOSS ist eine freie Open-Source .NET Bibliothek für die Arbeit mit 3d-Dateiformaten. Es bietet einen umfassenden Satz von Utility-Klassen, die über einfache Dateiumwandlung hinausgehen und es Entwicklern ermöglichen, Maschen zu manipulieren, Transformen aufzubauen und primitive Geometrie programmatisch zu generieren. Die Bibliotheek wird unter der MIT-Lizenz veröffentlicht, was sie sowohl für persönliche als auch für kommerzielle Projekte ohne Einschränkungen geeignet macht.
Dieser Beitrag konzentriert sich auf die Funktionen des Nutzens innerhalb der Bibliothek: Klassen und Methoden, nach denen Sie greifen müssen, wenn Sie ein Netz triangulieren, eine Transformationsmatrix Schritt für Schritte konstruieren oder parametrische Geometrie erstellen möchten. Diese Bausteine ergänzen den Kern-Szeneladung und Szenenrettungsworkflow, der im Einleitungsbeitrag behandelt wurde.
Ob Sie 3D-Assets in einer Build-Pipeline verarbeiten, Geometrie für eine Spiele-Engine vorbereiten oder zwischen Formaten konvertieren, diese Dienstprogramme behandeln die gemeinsamen Aufgaben, die sich in realen 3d-Workflows ergeben.
Was ist darin enthalten?
Maschenbetrieb
Die Mesh Sie können Polygone aus Winkelindizes erstellen, die Größe des Polyglons abfragen, Gesichter dreieckigen und Winkeldaten optimieren. ControlPoints Eigenschaft bietet direkten Zugang zu den Gipfelpositionen, während Polygons Die Gesichtsindex-Arrays werden aufgedeckt.
using Aspose.3D.Converter;
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();
Transform Builder
Die TransformBuilder Die Klasse bietet eine flüssige Schnittstelle für den Aufbau von Transformationsmatrizen durch eine Sequenz von translate, rotate und Scale-Operationen. Sie steuern die Zusammensetzung Reihenfolge (append oder prepend) und können den Builder zurücksetzen, um eine neue Kette zu starten.
using Aspose.3D.Converter;
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;
Polygon-Modifier (Modifizierer für mehrwinkel)
Die PolygonModifier Die Klasse bietet statische Hilfsmethoden für die Maschenverarbeitung. Triangulate Die Methode wandelt jedes n-seitige Polygonmaschengestell in eine nur Dreieckgeometrie um, was für die meisten Rendering-Engines und Physiksimulationen erforderlich ist.
using Aspose.3D.Converter;
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);
Die primitive Geometrie-Generation
Die Bibliothek umfasst parametrische Geometrie-Klassen wie: Box, Sphere,und . Cylinder.Jede Primitive kann mit Abmessungen und Segmentzahlen konfiguriert werden, dann in eine Mesh über die ToMesh() Verfahren zur Weiterverarbeitung oder Ausfuhr.
using Aspose.3D.Converter;
// 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();
Berechnung der Grenzboxen
Jeder Entity Unterklasse zeigt a GetBoundingBox() Die Methode, die das Achsen-ausgerichtete Grenzfeld der Geometrie zurückgibt. BoundingBox Struktur bietet Minimum und . Maximum Eckvektoren, nützlich für räumliche Abfragen und Kamera-Inkarnierungen.
using Aspose.3D.Converter;
var box = new Box(4, 2, 6);
BoundingBox bounds = box.GetBoundingBox();
FVector3 min = bounds.Minimum;
FVector3 max = bounds.Maximum;
Schneller Start
Installieren Sie das Paket von NuGet:
dotnet add package Aspose.3D.FOSSLaden Sie eine Datei, triangulieren Sie jedes Netz und speichern Sie das Ergebnis:
using Aspose.3D.Converter;
// 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");
Unterstützte Formate
| Format der Datenbank | Erweiterung | Lesen Sie . | Schreiben . |
|---|---|---|---|
| Schnupfen | .- Ich bin hier. | - Ja , das ist gut . | - Ja , das ist gut . |
| FBX | .fbx | - Ja , das ist gut . | - Ja , das ist gut . |
| Geltungsbereich der Richtlinie 2009/138/EG | .gltf / .GLB | - Ja , das ist gut . | - Ja , das ist gut . |
| 3MF | .3mf | - Ja , das ist gut . | - Nein . |
| Wellenfront-OJ | .obj ist nicht ersetzt. | - Ja , das ist gut . | - Ja , das ist gut . |
| PLY | .Flütterung | - Ja , das ist gut . | - Nein . |
| STL | .Stl | - Ja , das ist gut . | - Ja , das ist gut . |
| TMF | .tmf | - Nein . | - Ja , das ist gut . |
Open Source und Lizenzierung
3D FOSS ist unter der MIT-Lizenz veröffentlicht. Sie können die Bibliothek sowohl in Open Source als auch in proprietären Projekten verwenden, modifizieren und weitergeben. Der vollständige Quellcode steht auf GitHub zur Verfügung: WEB Aspose-3d-Foss/Aspose.3D- FOSS für .NET.
Wie man anfängt
- Entwickler-Leitfaden – vollständige Dokumentation, die Szenenverwaltung, Formatoptionen und erweiterte Funktionen abdeckt.
- Wissensbasis – wie-zu-Artikel und häufig gestellte Fragen.
- Referenz für die API – Referenz für jede Klasse mit Methodensignaturen und Eigenschaftsdetails.