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.FOSSTö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átum | A Bizottság | Olvasd! | Írj! |
|---|---|---|---|
| Collada | .- Szia! | Igen, igen. - Az is jó. | Igen, igen. - Az is jó. |
| FBX | .fbx | Igen, igen. - Az is jó. | Igen, igen. - Az is jó. |
| A következők: | .gltf / .GLB | Igen, igen. - Az is jó. | Igen, igen. - Az is jó. |
| 3MF | .3mf | Igen, igen. - Az is jó. | Nem, nem. |
| Hullámfront OBJ | .obj. | Igen, igen. - Az is jó. | Igen, igen. - Az is jó. |
| PLY | .plata | Igen, igen. - Az is jó. | Nem, nem. |
| STL | .stl | Igen, igen. - Az is jó. | Igen, igen. - Az is jó. |
| TMF | .tmf | Nem, 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.