Ominaisuudet ja toiminnot

Ominaisuudet ja toiminnot

Ominaisuudet ja toiminnot

Tämä sivu kattaa jokaisen tärkeimmän ominaisuusalueen Aspose.3D 26.1.0 toimivilla C#-esimerkeillä.


Scenejen lataaminen ja tallentaminen

Scene.Open() lataa tiedoston; Scene.Save() vie sen. Tiedostomuoto tunnistetaan tiedostopäätteestä:

using Aspose.ThreeD;

var scene = new Scene();
scene.Open("input.obj");
scene.Save("output.glb");

Käytä staattista tehdasta Scene.FromFile() vaihtoehtona:

var scene = Scene.FromFile("input.fbx");
scene.Save("output.stl");

Formaattiin perustuvat asetukset

Anna LoadOptions tai SaveOptions aliluokkia tarkempaa hallintaa varten:

using Aspose.ThreeD;
using Aspose.ThreeD.Formats;

var scene = new Scene();
scene.Open("model.obj", new ObjLoadOptions { FlipCoordinateSystem = true });
scene.Save("model.fbx");

Käytettävissä olevat asetusluokat:

LuokkaSuuntaKeskeiset ominaisuudet
ObjLoadOptionsTuoFlipCoordinateSystem, EnableMaterials, Scale
ObjSaveOptionsVieFlipCoordinateSystem, EnableMaterials, PointCloud
FbxLoadOptionsTuo(oletusasetukset)
GltfLoadOptionsTuo(oletusasetukset)
GltfSaveOptionsVie(oletusasetukset)
StlLoadOptionsTuo(oletusasetukset)
StlSaveOptionsVie(oletusasetukset)
ColladaLoadOptionsTuoFlipCoordinateSystem
ColladaSaveOptionsVieIndented, TransformStyle
PlyLoadOptionsTuo(oletusasetukset)

Scene‑graafin rakentaminen

Luo solmuja ja liitä entiteettejä rakentaaksesi hierarkian:

var scene = new Scene();
var root = scene.RootNode;

var boxNode = root.CreateChildNode("box", new Box(5, 5, 5));
var sphereNode = root.CreateChildNode("sphere", new Sphere(3));

Pääsy lapsiin kautta node.ChildNodes ja liitettyyn entiteettiin kautta node.Entity.


Mesh ja alkeismuodot

Luo Mesh ohjelmallisesti ohjauspisteiden ja monikulmioiden avulla:

// Mesh.ControlPoints uses Aspose.ThreeD.Utilities.Vector4
// (double-precision, lowercase fields: x, y, z, w)
using Aspose.ThreeD.Utilities;

var mesh = new Mesh("custom");
mesh.ControlPoints.Add(new Vector4(0.0, 0.0, 0.0));   // w defaults to 1.0
mesh.ControlPoints.Add(new Vector4(10.0, 0.0, 0.0));
mesh.ControlPoints.Add(new Vector4(10.0, 10.0, 0.0));
mesh.ControlPoints.Add(new Vector4(0.0, 10.0, 0.0));
mesh.CreatePolygon(0, 1, 2, 3);

Sisäänrakennetut primitiivit (Box, Sphere, Cylinder) voidaan muuntaa Mesh:

var box = new Box(10, 10, 10);
Mesh boxMesh = box.ToMesh();

Vertex-elementit

Liitä normaalit, UV:t ja vertex-värit geometriaan:

var normals = new VertexElementNormal(MappingMode.ControlPoint, ReferenceMode.Direct);
mesh.AddElement(normals);

Käytettävissä olevat kärjen elementtityypit: VertexElementNormal, VertexElementUV, VertexElementVertexColor, VertexElementBinormal, VertexElementTangent.


Muunnokset

Jokainen Node kantaa Transform kanssa Translation, Rotation, ja Scale:

var node = scene.RootNode.CreateChildNode("moved", new Box());
node.Transform.Translation = new FVector3(10, 0, 5);
node.Transform.Scale = new FVector3(2, 2, 2);

Lue maailmanavaruuden sijainti käyttäen node.GlobalTransform.Matrix tai node.EvaluateGlobalTransform().


Materiaalit

Määritä materiaaleja solmuihin varjostustietoja varten:

var mat = new PhongMaterial("shiny");
mat.Diffuse = new Vector4(0.8, 0.2, 0.2, 1.0);
mat.Specular = new Vector4(1, 1, 1, 1);
mat.Shininess = 32;

scene.RootNode.CreateChildNode("red_box", new Box(), mat);

Materiaalityypit: LambertMaterial, PhongMaterial, PbrMaterial.


Vinkkejä ja parhaita käytäntöjä

  • Käytä Scene.FromFile() yksiriviseen lataukseen, kun et tarvitse mukautettua LoadOptions
  • Muunna primitiivit Mesh kanssa ToMesh() ennen vertex-elementtien lisäämistä
  • Käytä GltfSaveOptions kanssa .glb laajennus kompaktia binääritulostetta varten
  • Tarkista node.Entity kohteelle null ennen muuntamista — kaikki solmut eivät sisällä geometriaa
  • Käytä PolygonModifier.Triangulate() muuntaa nelikulmaisverkot ennen vientiä pelkästään kolmioformaatteihin, kuten STL

Yleisiä ongelmia

OngelmaSyyKorjaus
ImportException ladattaessaEi-tuettu tai vioittunut tiedostoVarmista, että tiedosto avautuu 3D‑katsojassa; tarkista, että formaatti on tuettujen luettelossa
Materiaalit puuttuvat OBJ‑latauksen jälkeen.mtl tiedostoa ei löydySijoita .mtl tiedosto viereen .obj tai aseta ObjLoadOptions.EnableMaterials = true
Mittakaavan epäsopivuus FBX‑tuonnin jälkeenEri mittayksiköjärjestelmätKäytä ObjLoadOptions.Scale tai käytä Transform ladattaessa

FAQ

Kuinka tunnistan tuntemattoman tiedoston formaatin?

Käytä FileFormat.Detect():

var format = FileFormat.Detect("unknown_file.bin");
Console.WriteLine(format.Extension);

Voinko ladata suorasta virrasta tiedostopolun sijaan?

Kyllä. Scene.Open() hyväksyy Stream:

using var stream = File.OpenRead("model.glb");
scene.Open(stream);

Mitkä formaatit tukevat sekä tuontia että vientiä?

OBJ, STL, glTF/GLB, FBX, COLLADA ja 3MF tukevat molempia suuntia. PLY tukee vain tuontia (PLY-vientitoimintoa ei ole toteutettu).


API-viitteiden yhteenveto

Luokka / MetodiKuvaus
SceneYlätason 3D‑kohtauksen säiliö
Scene.Open()Lataa 3D‑tiedosto polun tai streamin avulla
Scene.Save()Vie kohtaus tiedostoon tai streamiin
Scene.FromFile()Staattinen tehdas lataamaan ja palauttamaan a Scene
NodeSkenan hierarkiasolmu, joka sisältää entiteettejä ja muunnoksia
Node.CreateChildNode()Luo ja liitä lapsisolmu
MeshPolygoniverkko, jossa on ohjauspisteet ja kasvojen listat
Mesh.CreatePolygon()Määritä polygonin pinta kärkinumeroiden perusteella
Box / Sphere / CylinderSisäänrakennetut parametriset primitiivit
TransformPaikallinen siirto, kierto ja skaalaus
FileFormatRekisteri ja tunnistin tuetuille formaateille
LambertMaterial / PhongMaterial / PbrMaterialMateriaalityypit varjostukseen
 Suomi