النماذج 3D مع Aspose.3D

نظرة عامة

Aspose.3D FOSS for Python يسمح بتصوير وتلاعب النماذج 3D. Scene, Node, Mesh, Geometry, Camera,و ، و Light إنشاء وتعديل المحتوى 3D.

يساعد API على بناء الرسومات المشهدية عبر Node و Entity الهرم، وتحديد الهندسة الجغرافية من خلال Mesh و Geometry, و كاميرا / ضوء إعداد للرسوم المتحركة. AnimationClip, AnimationNode, AnimationChannel,و ، و KeyframeSequence للتحرك القائم على مفتاح (الوصول القصير فقط؛ لا يتم تنفيذ تصدير الرسوم المتحركة بعد). AssetInfo,في حين أن المسرحية هي الأثر من A3DObject و INamedObject - الإدارة الاسمية والإدارة الممتلكات.

الميزات الرئيسية

يوفر Aspose.3D FOSS for Python API للعمل مع نماذج 3D ، ودعم العمليات الأساسية من خلال فصول مثل: Scene, Mesh, Node, Geometry,و ، و AnimationClip.

  • دعم تنسيقات الملفات 3D متعددة بما في ذلك GLTF2 و WAVEFRONT_OBJ من خلال FileFormat فئة تسمح لاستيراد وتصدير بلا قاعدة.دعم FBX هو التجريبي (تكون التوكينيز فقط؛ كاملة الشرائح في مرحلة الطريق).
  • التلاعب المباشر بالميثاق عبر Mesh و Geometry تتيح الفصول التحكم الدقيق في الأركان والمتعدد، وتقديم الخصائص مثل الظلال والرؤية.
  • الهياكل التحفيزية من خلال AnimationClip, AnimationNode,و ، و KeyframeSequence يمكن فحص الفصول وتصنيعها؛ يرجى ملاحظة أن تصدير الرسوم المتحركة لا يتم تنفيذها بعد في هذا الإصدار.
  • إدارة المسرحية الهرمية باستخدام Node, Entity,و ، و A3DObject يوفر تنظيمًا منظمًّا للأشياء 3D والكاميرات والأضواء.
  • الممتلكات ومعالجة البيانات عبر PropertyCollection, AssetInfo,و ، و INamedObject يدعم خصائص مخصصة ومتى بيانات المستوى الوثيقي مثل العنوان والكاتب والكلمات الرئيسية.

المعايير

لاستخدام Aspose.3D FOSS لـ Python، تأكد من تثبيت Python 3.7 أو أحدث.

asposefoss/3d is not yet published — build from source until it ships. See the project README for build instructions.
import aspose.threed
print('Installation successful')

نموذج الرمز

في Aspose.3D لـ Python ، يعني “تسليم” مشهد 3D تصديره إلى تنسيق إخراج مدعوم مثل OBJ أو GLTF2 أو STL. لا يتم دعم الترابط القائم على بكسل ؛ استخدام scene.save() لإنتاج ملفات النتيجة 3D.

from aspose.threed import Scene, FileFormat, Mesh, Node

# Load a scene from file
scene = Scene.from_file("model.obj")

# Inspect the root node
root = scene.root_node
for child in root.child_nodes:
    if isinstance(child.entity, Mesh):
        print(f"Mesh: {child.name}, control points: {len(child.entity.control_points)}")

# Export to GLTF 2.0 binary — use extension-based detection or FileFormat.GLTF2() factory
# Note: FileFormat.GLTF2_BINARY is None (stub constant, not implemented).
# Use the .glb extension for auto-detection, or FileFormat.GLTF2() for explicit format.
scene.save("output.glb")
print("Scene exported to output.glb")

أفضل الممارسات

أولوية كفاءة الذاكرة عن طريق إعادة الاستخدام Scene و Mesh تجنب إنشاء كائنات متقلبة في ألواح ضيقة، وخاصة عند معالجة العديد من الملفات في مجموعة.

  • إعادة استخدام Scene الكائنات عبر دورات التصدير بدلاً من تثبيت الكيانات الجديدة لكل ملف.
  • تفضيلات Mesh إعادة استخدام مع نقاط التحكم المشتركة للجيومترية الثابتة لخفض التوزيع.
  • استخدم خيارات حفظ محددة للتنسيق (على سبيل المثال،., GltfSaveOptions, StlSaveOptions- التحكم في وضع الإنتاج والتنسيق في المعالجة.
  • استخدم تدفقات BytesIO لتدفقاته العملية في ذاكرة التصدير لتجنب إزالة الأقراص I/O من القرص.

حل المشاكل

وتغطي هذه القسم المشاكل الشائعة التي تواجهها عند استخدام Aspose.3D FOSS for Python التي تشمل Scene, Node, Mesh,و ، و AnimationClip طبقات .

العمليات غير المدعومة تثير الخطأ غير المعمول به

العمليات مثل التصدير من خلال بعض المصدرين وطرق العرض المرتبطة بما في ذلك get_entity_renderer_key() لا يتم تنفيذها وتحسين الخطأ غير المطبق. هذا يحدث لأن الوظائف الأساسية في الإصدار الحالي من Aspose.3D FOSS لـ Python غير كاملة. لتجنب فشل وقت التشغيل، تحقق من توافر الطريقة ضد سطح API قبل استدعاء الأساليب غير المدعومة. Scene.from_file() و scene.save() - تدفقات العمل المساعدة والتصدير.

طريقة التفكير التي تثير الخطأ غير المطبق

التالي Mesh يتم الإعلان عن الأساليب في سطح API ولكن يرفع NotImplementedError في هذا الإصدار لا تدعهم على أي تحميل أو بناء Mesh الحالة :

طريقةملاحظات
mesh.optimize()التكيف مع الملفات - لم يتم تنفيذها بعد
mesh.do_boolean(...)عملية البولين الجيني - استخدم الأساليب المحددة أدناه
mesh.union(other)الاتحاد السوفياتي - لم يتم تنفيذها بعد
mesh.difference(other)تمييز CSG - لم يتم تنفيذها بعد
mesh.intersect(other)تداول الخيارات الثنائية - لم يتم تنفيذها بعد
mesh.is_manifold()اختبار مانيفورد - لم يتم تنفيذها بعد
Mesh(height_map, ...)خريطة الارتفاع - غير متوفرة حتى الآن

إذا كانت تدفق العمل الخاص بك يتطلب هذه العمليات، معالجة الهندسة في مكتبة مثل: trimesh أو open3d إعادة استيراد النتيجة باستخدام Scene.from_file() أو من خلال بناء جديد Mesh من المواد الخام control_points و polygons.

الخصائص المتحركة هي قراءة فقط

فصول التخطيط مثل AnimationClip, AnimationNode, AnimationChannel,و ، و KeyframeSequence يمكن فحصها ولكن تصدير الرسوم المتحركة غير وظيفية.معالجة بيانات الرسالة كما قراءة فقط حتى يتم إصدار الدعم الكامل للتصدير.

لا يتم دعم تحميل الصورة النصية

لا يتم تنفيذ صور النسيج المحمولة للمواد في Aspose.3D FOSS لـ Python. Mesh أو Geometry,لن يتم إجراء الخرائط النصية بشكل صحيح.لصادرات النموذج الثابت، يعتمد على الألوان الصلبة أو الظلال القائمة على الصورة بدلا من النسيج القائم على الصور.

Camera و Geometry التقديم غير مدعوم

وَالْمُتَّقِينَ Camera و Geometry فصول رفع غير تنفيذ الخطأ للطرق ذات الصلة بالترتيب مثل: get_entity_renderer_key().في حين يمكن تثبيت هذه الفصول وتكوينها ، لا يمكن استخدامها في أنابيب التخطيط بكسل. Node و Mesh لتركيب المشهد وتدفقات العمل التصديرية.

FAQ

هل يدعم Aspose.3D لـ Python إخراج الصور المتسلسلة (PNG، JPEG)؟?

لا Aspose.3D FOSS for Python لا يقوم بتصميم على أساس بكسل. “Rendering” في هذه المكتبة يعني تصدير مشهد إلى تنسيق إخراج 3D مثل OBJ أو GLTF2 أو STL أو 3MF باستخدام scene.save().لإنتاج الصورة، والدمج مع محرك التصوير منفصل.

ما هي تنسيقات التصدير التي يتم دعمها؟?

وتشمل تنسيقات التصدير المدعومة OBJ، glTF 2.0 / GLB، STL (البيناريو و ASCII)، COLLADA (DAE) و 3MF. scene.save() للكشف عن النموذج التلقائي.للتحكم في النمط المباشر، استخدم أساليب المصنع FileFormat.WAVEFRONT_OBJ(), FileFormat.GLTF2(),و ، و FileFormat.MICROSOFT_3MF_FORMAT().ملاحظة: اتجاهات النمط مثل FileFormat.GLTF2_BINARY, FileFormat.GLTF, FileFormat.STLASCII, FileFormat.STL_BINARY,و ، و FileFormat.MICROSOFT_3MF هم None لا ينبغي استخدامها. FBX الصادرات ترتفع NotImplementedError في النسخة الحالية.

هل يمكنني قراءة بيانات الرسوم المتحركة من ملف 3D مدمج؟?

يمكن الوصول إلى الهياكل المتحركة في الملفات المحمولة من خلال AnimationClip, AnimationNode,ودرجات ذات صلة، ولكن تعديل أو إعادة تصدير بيانات الرسوم المتحركة لا يدعم بعد وسوف يرفع غير تنفيذ الخطأ.

إشارة API

Aspose.3D FOSS لـ Python يوفر فصول أساسية للتلاعب بالمشاهد 3D ، بما في ذلك Scene, Node, Mesh,و ، و Geometry.- من Scene يُستخدم كالشريط في الحوض، بينما Node وتشكل الكائنات هييرقيا الرسم البياني، و Mesh وتحدد الأقسام الجيومترية مع Geometry البيانات .

يعتمد دعم التحفيز على AnimationClip, AnimationNode, AnimationChannel,و ، و KeyframeSequence على الرغم من أن تصدير الرسوم المتحركة لم يتم تنفيذها بعد ، إلا أن المطورين لا يزالون قادرين على فحص الهياكل الرسالية باستخدام هذه الفصول. Extrapolation فئة و ExtrapolationType يتيح enum السيطرة على السلوك خارج نطاقات مفتاح الإطار.

Entity-تعرض خصائص المستوى مثل المرآة والظل من خلال Geometry.visible, Geometry.cast_shadows,و ، و Geometry.receive_shadows.يتم إدارة العلاقات الرسمية من خلال Entity.parent_node و Entity.parent_nodes,بينما Node الكائنات المعرضة GlobalTransform للترجمة والدورات والمساحة. Camera و Light وراثة من كيانات Entity - دعم الاستبعاد من خلال excluded.

انظر أيضا

الموارد ذات الصلة للعمل مع Aspose.3D FOSS لـ Python.

 العربية