Bevezetés

A 3D FOSS egy ingyenes, nyílt forráskódú .NET könyvtár a 3d fájlformátumokkal való munkavégzéshez. Egy átfogó használati osztályokat kínál, amelyek túlmutatnak az egyszerű fájlok átalakításán, lehetővé téve a fejlesztők számára a hálózatok manipulálását, a transformációkat és a primitív geometriák programozását. A könyvház MIT licenc alatt kerül kiadásra, így alkalmas mind személyes, mind kereskedelmi projektekhez korlátozások nélkül.

Ez a bejegyzés az alkalmazás képességeire összpontosít: azokra a osztályokra és módszerekre, amelyeket akkor keresel, amikor egy hálózatot kell háromszögbe húzni, lépéstől-lépésre átalakítási mátrixot kell építeni vagy paramétergeometriát kell létrehoznod. Ezek az elemek kiegészítik a bemutató beosztásban felsorolt alapvető jelenet feltöltése és jelenetet mentő munkafolyamatokat.

Akár egy 3D-s csővezetékben dolgoznak, vagy geometria készítését a játékmotorhoz, akár formátumok közötti konvertálást végeznek, ezek az eszközök kezelik azokat a közös feladatokat, amelyek valós 3 D munkafolyamatokban felmerülnek.


Mit tartalmaz?

Hálóüzemeltetés

A Bizottság Mesh A klassz a sokszög alapú geometria. Polygonok létrehozása csúcskódokból, kérdezhet polygon méretekről, triangulálhat arcokat és optimalizálhatja a csúcsadatok adatait. ControlPoints A tulajdonság közvetlen hozzáférést biztosít a csúcspontokhoz, míg az Polygons Kifejti az arc-index arrayokat.

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álj építőt!

A Bizottság TransformBuilder A transzformációs mátrixok létrehozásához a klasszis egy folyékony interfészet biztosít, amely az átfordítás, forgatás és méretezés műveleteinek sorozatát tartalmazza. Ön irányítja a kompozíciós sorrendet (add vagy prepend) és visszaállíthatja a építőt új lánc elindítására.

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;

Sokszög módosító

A Bizottság PolygonModifier A klasszis a hálózati feldolgozás statikus használati módszereit kínálja. Triangulate A módszer bármely n-oldalú sokszögös hálózatot háromszöges geometriavá alakít, ami a legtöbb rendering motor és fizikai szimulációhoz szükséges bemeneti adat.

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

Primitív geometriai generáció

A könyvtár tartalmazza a paramétergeometriás osztályokat, mint például: Box, Sphere,és a következők: Cylinder.Minden primitív konfigurálható méretekkel és szegmensszámmal, majd átalakítható egy-egy elemre. Mesh a következők: ToMesh() az előállítás vagy export módja.

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

A határkeret számítása

Minden egyes Entity Az alosztály a GetBoundingBox() A geometria tengely-egyenlegzett határfelületét visszaadó módszer. BoundingBox a szerkezetet biztosítja. Minimum és a következők: Maximum sarokvektorokat, amelyek hasznosak térbeli lekérdezésekre és kamerák keretekbe vételére.

using Aspose.3D.Converter;

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

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

Gyors kezdés

A csomag telepítése a NuGet-ből:

dotnet add package Aspose.3D.FOSS

Töltse fel a fájlt, háromszögbe húzza az összes hálózatot és mentse meg az eredményt:

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

Támogatott formátumok

FormátumA BizottságOlvasd!Írj!
Collada.- Szia!Igen, igen. - Az is jó.Igen, igen. - Az is jó.
FBX.fbxIgen, igen. - Az is jó.Igen, igen. - Az is jó.
A következők:.gltf / .GLBIgen, igen. - Az is jó.Igen, igen. - Az is jó.
3MF.3mfIgen, igen. - Az is jó.Nem, nem.
Hullámfront OBJ.obj.Igen, igen. - Az is jó.Igen, igen. - Az is jó.
PLY.plataIgen, igen. - Az is jó.Nem, nem.
STL.stlIgen, igen. - Az is jó.Igen, igen. - Az is jó.
TMF.tmfNem, nem.Igen, igen. - Az is jó.

Nyitott forráskódú és licenckészítés

A 3D FOSS a MIT licenc alatt jelent meg. Használhatja, módosíthatja és újraeloszthatja a könyvtárat mind nyílt forráskódú, mind tulajdonosi projektekben. Az teljes forráskód elérhető a GitHub-on az alábbi címen: WEB az ASPOSE-3D-FOSS/ASPOSE.3D FOS S-for-.NET.


Kezdjük!

  • Készítő útmutató – teljes dokumentáció a jelenetkezeléssel, formátumválasztással és fejlett funkciókkal.
  • Tudásbázis – hogyan-hez cikkek és gyakori kérdések.
  • API hivatkozás – osztályonkénti hivatkozás módszer- és tulajdonsági részletekkel.