Charakteristika a funkčnost

Charakteristika a funkčnost

Tato stránka pokrývá všechny hlavní oblasti charakteristik: Aspose.3D 26.1.0 s pracovními příklady C#.


Nahrávání a ukládání scén

Scene.Open() načítá soubor; Scene.Save() Formát je detekován z rozšíření souboru:

using Aspose.ThreeD;

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

Použijte statickou továrnu. Scene.FromFile() alternativně:

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

Možnosti specifické pro formát

Procházející. LoadOptions nebo: SaveOptions podtřídy pro kontrolu jemných zrn:

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

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

Klasifikované možnosti:

TřídaSměr:Klíčové vlastnosti
ObjLoadOptionsDovozFlipCoordinateSystem, EnableMaterials, Scale
ObjSaveOptionsVývozFlipCoordinateSystem, EnableMaterials, PointCloud
FbxLoadOptionsDovoz(Standardní nastavení)
GltfLoadOptionsDovoz(Standardní nastavení)
GltfSaveOptionsVývoz(Standardní nastavení)
StlLoadOptionsDovoz(Standardní nastavení)
StlSaveOptionsVývoz(Standardní nastavení)
ColladaLoadOptionsDovozFlipCoordinateSystem
ColladaSaveOptionsVývozIndented, TransformStyle
PlyLoadOptionsDovoz(Standardní nastavení)

Vytvoření scénového grafu

Vytvořte uzly a připojte entity k vytvoření hierarchie:

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řístup k dětem prostřednictvím: node.ChildNodes a připojenému subjektu prostřednictvím: node.Entity.


Mřížky a primitivní věci

Vytvořit Mesh programově s ovládacími body a polygony:

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

Vestavěné primitivní (Box, Sphere, Cylinder) lze převést na Mesh:

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

Elementy vrcholu

Přidání normálů, UV a barev vrcholu k geometrii:

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

Dostupné typy vrcholu: VertexElementNormal, VertexElementUV, VertexElementVertexColor, VertexElementBinormal, VertexElementTangent.


Transformace

Každý. Node je na něm Transform s: Translation, Rotation,a) 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);

Čtěte světovou polohu prostřednictvím node.GlobalTransform.Matrix nebo: node.EvaluateGlobalTransform().


Materiály

Přidělit materiály uzlům pro stínování dat:

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

Typy materiálů: LambertMaterial, PhongMaterial, PbrMaterial.


Tipy a nejlepší postupy

  • Použití: Scene.FromFile() pro náklad s jedním lano, když nepotřebujete vlastní úpravu LoadOptions
  • Konvertujte primitivní na Mesh s: ToMesh() před přidáním prvků vrcholu
  • Použití: GltfSaveOptions s výjimkou: .glb rozšíření pro kompaktní binární výstupy
  • Ček. node.Entity pro: null před odlitím ne každý uzel nese geometrii
  • Použití: PolygonModifier.Triangulate() pro přeměnu čtyřměrných sítí před exportem na formáty pouze trojúhelníkové, jako je STL

Obvyklé problémy

Výše:Příčina:Opravy
ImportException na nákladuNes podporovaný nebo poškozený souborOvěřte, zda se soubor otevírá v 3D zobrazení; ověříte formát je ve podporovaném seznamu
Chybějící materiály po naložení OBJ.mtl Soubor nenašel.Umístěte: .mtl Soubor vedle .obj nebo nastavení ObjLoadOptions.EnableMaterials = true
Nesoulad měřítka po importu FBXRůzné systémy jednotekPoužití: ObjLoadOptions.Scale nebo použít: Transform po nakládce

FAQ

Jak zjistím formát neznámého souboru?

Použití: FileFormat.Detect():

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

Můžu si nahrát ze streamu místo z cesty souboru?

  • Ano, jsem. Scene.Open() přijímá a Stream:
using var stream = File.OpenRead("model.glb");
scene.Open(stream);

Které formáty podporují jak import, tak export?

OBJ, STL, glTF/GLB, FBX, COLLADA a 3MF podporují obě směry. PLY podporuje pouze dovoz (exportér PL Y není připojen).


Souhrnná referenční informace API

Třída / metodaPopis:
SceneKontejner 3D scény nejvyšší úrovně
Scene.Open()Naložit 3D soubor podle cesty nebo proudu
Scene.Save()Export scény do souboru nebo stream
Scene.FromFile()Statická továrna na naložení a vrácení Scene
NodeVstupní hierarchie uzlu s předměty a transformy
Node.CreateChildNode()Vytvořit a připojit dětský uzel
MeshVětšina nebo část sítě je omezena na jednu stranu.
Mesh.CreatePolygon()Definice polygonu podle indexu vrcholu.
Box / Sphere / CylinderVestavěné parametrické primitivní prvky
TransformMístní překlad, rotace a měřítko
FileFormatRegistrace a detektor pro podporované formáty
LambertMaterial / PhongMaterial / PbrMaterialTypy materiálů pro stínění
 Čeština