الخصائص والوظائف

الخصائص والوظائف

الخصائص والوظائف

هذه الصفحة تغطي كل منطقة مميزة من سورة البقرة الآية 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أنواع المواد للظل
 العربية