תכונות ופונקציונליות

תכונות ופונקציונליות

תכונות ופונקציונליות

דף זה מכסה כל תחום תכונה מרכזי של Aspose.3D 26.1.0 עם דוגמאות C# עובדות.


טעינה ושמירת סצנות

Scene.Open() טוען קובץ; Scene.Save() מייצא אותו. הפורמט מזוהה מהרחבת הקובץ:

using Aspose.ThreeD;

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

השתמש במפעל הסטטי Scene.FromFile() כחלופה:

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

אפשרויות ספציפיות לפורמט

העבר LoadOptions או SaveOptions מחלקות משנה לשליטה מדויקת:

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

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

מחלקות אפשרויות זמינות:

מחלקהכיווןמאפיינים מרכזיים
ObjLoadOptionsייבואFlipCoordinateSystem, EnableMaterials, Scale
ObjSaveOptionsייצואFlipCoordinateSystem, EnableMaterials, PointCloud
FbxLoadOptionsייבוא(הגדרות ברירת מחדל)
GltfLoadOptionsייבוא(הגדרות ברירת מחדל)
GltfSaveOptionsייצוא(הגדרות ברירת מחדל)
StlLoadOptionsייבוא(הגדרות ברירת מחדל)
StlSaveOptionsייצוא(הגדרות ברירת מחדל)
ColladaLoadOptionsייבואFlipCoordinateSystem
ColladaSaveOptionsייצואIndented, TransformStyle
PlyLoadOptionsייבוא(הגדרות ברירת מחדל)

בניית גרף סצנה

צור צמתים והצמד ישויות כדי לבנות היררכיה:

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

גישה לילדים דרך node.ChildNodes והישות המצורפת דרך node.Entity.


Mesh ופרימיטיבים

צור Mesh תכנותית עם נקודות שליטה ופוליגונים:

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

פרימיטיבים מובנים (Box, Sphere, Cylinder) ניתן להמיר ל Mesh:

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

אלמנטים של קודקוד

הצמד נורמליים, UVs וצבעי קודקוד לגאומטריה:

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

סוגי רכיבי קודקוד זמינים: VertexElementNormal, VertexElementUV, VertexElementVertexColor, VertexElementBinormal, VertexElementTangent.


טרנספורמים

כל Node נושא Transform עם Translation, Rotation, ו 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);

קרא מיקום במרחב‑עולם באמצעות node.GlobalTransform.Matrix או node.EvaluateGlobalTransform().


חומרים

הקצה חומרים לצמתים עבור נתוני הצללה:

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

סוגי חומר: LambertMaterial, PhongMaterial, PbrMaterial.


טיפים ושיטות עבודה מומלצות

  • השתמש Scene.FromFile() לטעינה בשורה אחת כאשר אינך זקוק למותאם אישית LoadOptions
  • המר פרימיטיבים ל Mesh עם ToMesh() לפני הוספת רכיבי קודקוד
  • השתמש GltfSaveOptions עם .glb הרחבה לפלט בינארי קומפקטי
  • בדוק node.Entity ל null לפני המרה — לא כל צומת נושא גאומטריה
  • השתמש PolygonModifier.Triangulate() להמרת רשתות קווד לפני יצוא לפורמטים של משולשים בלבד כמו STL

בעיות נפוצות

בעיהסיבהתיקון
ImportException בטעינהקובץ לא נתמך או פגוםודא שהקובץ נפתח בתצוגת 3D; בדוק שהפורמט נמצא ברשימת הנתמכים
חומרים חסרים לאחר טעינת OBJ.mtl קובץ לא נמצאמקם את .mtl קובץ ליד ה .obj או הגדר ObjLoadOptions.EnableMaterials = true
חוסר התאמה בקנה המידה לאחר ייבוא FBXמערכות יחידות שונותהשתמש ObjLoadOptions.Scale או החל Transform לאחר הטעינה

FAQ

איך אני מזהה את הפורמט של קובץ לא ידוע?

השתמש FileFormat.Detect():

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

האם אפשר לטעון מזרם במקום נתיב קובץ?

כן. Scene.Open() מקבל Stream:

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

אילו פורמטים תומכים גם בייבוא וגם ביצוא?

OBJ, STL, glTF/GLB, FBX, COLLADA, ו‑3MF תומכים בשני הכיוונים. PLY תומך רק בייבוא (מייצא ה‑PLY אינו מחובר).


סיכום תיעוד API

מחלקה / שיטהתיאור
Sceneמכולת סצנה תלת‑ממדית ברמה העליונה
Scene.Open()טען קובץ 3D לפי נתיב או זרם
Scene.Save()ייצא סצנה לקובץ או לזרם
Scene.FromFile()מפעל סטטי לטעון ולהחזיר a Scene
Nodeצומת של היררכיית Scene המחזיק ישויות והמרות
Node.CreateChildNode()צור והצמד צומת בן
MeshPolygon mesh עם נקודות בקרה ורשימות פנים
Mesh.CreatePolygon()הגדר משטח פוליגון לפי אינדקסי קודקודים
Box / Sphere / Cylinderפרימיטיבים פרמטריים מובנים
Transformהזזה, סיבוב וקנה מידה מקומיים
FileFormatרישום וגלאי של פורמטים נתמכים
LambertMaterial / PhongMaterial / PbrMaterialסוגי חומרים להצללה
 עברית