الخصائص والوظائف
الخصائص والوظائف
هذه الصفحة تغطي كل منطقة مميزة من سورة البقرة الآية 3D 26.1 مع نموذج عمل 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.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();العناصر Vertex
يربط الأشعة فوق البنفسجية والألوان العمودية بالجيومتر:
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()قبل إضافة عناصر Vertex - استخدام
GltfSaveOptionsمع A.glbالتمديد للإنتاج الثنائي المدمج - التحقق
node.Entityمن أجلnullقبل التخفيف - ليس كل عقدة تحمل الهندسة الجيولوجية - استخدام
PolygonModifier.Triangulate()تحويل المراحل الربع قبل تصديرها إلى تنسيقات ثلاثية فقط مثل STL
القضايا المشتركة
| مسألة | سبب | تصحيح |
|---|---|---|
ImportException على تحميل | الملفات غير المدعومة أو الفاسدة | تحقق من فتح الملف في مرصد 3D؛ التحقق مما هو تنسيق في القائمة المدعومة. |
| المواد المفقودة بعد تحميل OBJ | .mtl الملف غير موجود | موقع الـ .mtl الملفات بجانب .obj أو إعداد ObjLoadOptions.EnableMaterials = true |
| تساوي المقاييس بعد استيراد FBX | أنظمة الوحدات المختلفة | استخدام ObjLoadOptions.Scale أو تطبيق A Transform بعد تحميل |
FAQ
كيف يمكنني اكتشاف تنسيق ملف غير معروف؟?
استخدام FileFormat.Detect():
var format = FileFormat.Detect("unknown_file.bin");
Console.WriteLine(format.Extension);هل يمكنني تحميلها من تدفق بدلاً من مسار ملف؟?
نعم . Scene.Open() يوافق على A Stream:
using var stream = File.OpenRead("model.glb");
scene.Open(stream);ما هي النماذج التي تدعم كل من الواردات والتصدير؟?
يدعم OBJ و STL و glTF/GLB و FBX و COLLADA و 3MF كلا الاتجاهين. PLY يدعمه فقط (لا يتم توصيل مستورد PLy).
إشارة API
| الفئة / الطريقة | وصف |
|---|---|
Scene | الحاوية 3D العليا |
Scene.Open() | تحميل ملف 3D حسب المسار أو التدفق |
Scene.Save() | تصدير المشهد إلى الملف أو البث |
Scene.FromFile() | المصنع الثابت للشحن وإرجاع A Scene |
Node | مسرحية العقدة التي تحمل الكيانات والتحولات |
Node.CreateChildNode() | إنشاء ورفع عقدة طفل |
Mesh | مادة البوليغون مع نقاط التحكم وقوائم الوجه |
Mesh.CreatePolygon() | تعريف وجه البولينج حسب المؤشرات العمودية |
Box / Sphere / Cylinder | البروتوكولات البارمترية المبنية |
Transform | الترجمة المحلية، والدورات، والمقياس |
FileFormat | تسجيل و الكشف عن النماذج المدعومة |
LambertMaterial / PhongMaterial / PbrMaterial | أنواع المواد للظل |