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řída | Směr: | Klíčové vlastnosti |
|---|---|---|
ObjLoadOptions | Dovoz | FlipCoordinateSystem, EnableMaterials, Scale |
ObjSaveOptions | Vývoz | FlipCoordinateSystem, EnableMaterials, PointCloud |
FbxLoadOptions | Dovoz | (Standardní nastavení) |
GltfLoadOptions | Dovoz | (Standardní nastavení) |
GltfSaveOptions | Vývoz | (Standardní nastavení) |
StlLoadOptions | Dovoz | (Standardní nastavení) |
StlSaveOptions | Vývoz | (Standardní nastavení) |
ColladaLoadOptions | Dovoz | FlipCoordinateSystem |
ColladaSaveOptions | Vývoz | Indented, TransformStyle |
PlyLoadOptions | Dovoz | (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í úpravuLoadOptions - Konvertujte primitivní na
Meshs:ToMesh()před přidáním prvků vrcholu - Použití:
GltfSaveOptionss výjimkou:.glbrozšíření pro kompaktní binární výstupy - Ček.
node.Entitypro:nullpř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ákladu | Nes podporovaný nebo poškozený soubor | Ověř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 FBX | Různé systémy jednotek | Použ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á aStream:
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 / metoda | Popis: |
|---|---|
Scene | Kontejner 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 |
Node | Vstupní hierarchie uzlu s předměty a transformy |
Node.CreateChildNode() | Vytvořit a připojit dětský uzel |
Mesh | Většina nebo část sítě je omezena na jednu stranu. |
Mesh.CreatePolygon() | Definice polygonu podle indexu vrcholu. |
Box / Sphere / Cylinder | Vestavěné parametrické primitivní prvky |
Transform | Místní překlad, rotace a měřítko |
FileFormat | Registrace a detektor pro podporované formáty |
LambertMaterial / PhongMaterial / PbrMaterial | Typy materiálů pro stínění |