┐─ تحليل الملف ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── ┌
│ المطور : Wavefront Technologies
│ الفئة : ثلاثي الأبعاد
│ نوع MIME : model/obj
┘ ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── └
ما هو ملف OBJ؟
OBJ (Wavefront Object) هو صيغة نموذج ثلاثي الأبعاد مفتوحة بصيغة نص عادي طورتها شركة Wavefront Technologies للاستخدام مع برنامج الرسوم المتحركة Advanced Visualizer في الثمانينيات. أصبحت OBJ معيار التبادل الأكثر توافقاً بين تطبيقات 3D المختلفة — من محركات الألعاب إلى برامج الطباعة ثلاثية الأبعاد.
كل سطر في ملف OBJ يبدأ بكلمة مفتاحية: v للرأس (Vertex)، vt لإحداثية النسيج (Texture UV)، vn للعمودي (Normal)، f للوجه (Face). ملفات المواد .mtl المرتبطة تحدد الألوان والملمس. كون الصيغة نصية يجعلها قابلة للقراءة البشرية والتعديل اليدوي، لكنها أكبر حجماً من الصيغ الثنائية.
كيفية فتح ملفات OBJ
- Blender (ويندوز، ماك، لينكس) — محرر 3D مجاني ومفتوح المصدر، تصدير واستيراد ممتاز
- MeshLab (ويندوز، ماك، لينكس) — عارض وإصلاح شبكات 3D مجاناً
- Autodesk 3ds Max (ويندوز) — احترافي للتصور المعماري والألعاب
- Autodesk Maya (ويندوز، ماك، لينكس) — احترافي للرسوم المتحركة والأفلام
- Cinema 4D (ويندوز، ماك) — شائع في التصور الإعلاني والحركي
- Ultimaker Cura (ويندوز، ماك، لينكس) — يستورد OBJ للطباعة ثلاثية الأبعاد
- Three.js (ويب) — يعرض OBJ مباشرة في المتصفح بـ WebGL
المواصفات التقنية
| الخاصية | القيمة |
|---|---|
| نوع MIME | model/obj |
| الصيغة | نص عادي ASCII |
| الهندسة | رؤوس (v)، عموديات (vn)، إحداثيات UV (vt)، أوجه (f) |
| المواد | ملف .mtl مرجعي خارجي |
| الألوان | عبر المواد فقط (لا ألوان رأسية في المعيار) |
| المجموعات | كائنات (o) ومجموعات (g) مسماة |
| الحجم | نصي — أكبر بكثير من STL الثنائي |
بنية ملف OBJ
# نموذج مكعب بسيط
mtllib cube.mtl
# الرؤوس (Vertices)
v 0.0 0.0 0.0
v 1.0 0.0 0.0
v 1.0 1.0 0.0
v 0.0 1.0 0.0
# إحداثيات النسيج (UV)
vt 0.0 0.0
vt 1.0 0.0
vt 1.0 1.0
# الوجوه (Faces) — مؤشرات الرأس/UV/Normal
usemtl Material1
f 1/1 2/2 3/3 4/3
الاستخدامات الشائعة
- تبادل النماذج بين التطبيقات: الصيغة الأكثر توافقاً لنقل 3D بين Blender وMaya و3ds Max
- أصول الألعاب: نماذج الشخصيات والبيئات في Unity وUnreal Engine
- الطباعة ثلاثية الأبعاد: بديل STL مع دعم المواد والألوان
- التصور المعماري: نماذج المباني والداخلية بمواد وملمس مفصّل
- رسومات الويب (WebGL): Three.js يعرض OBJ مباشرة في المتصفح
OBJ مقابل STL مقابل FBX مقابل GLTF
| الميزة | OBJ | STL | FBX | GLTF |
|---|---|---|---|---|
| الألوان والمواد | ✅ (mtl) | ❌ | ✅ | ✅ |
| الرسوم المتحركة | ❌ | ❌ | ✅ | ✅ |
| صيغة الملف | نصي | ثنائي/نصي | ثنائي | JSON+bin |
| الويب | محدود | ❌ | ❌ | ✅ مثالي |
| التوافق | ✅ أعلى | ✅ للطباعة | Autodesk | الألعاب/الويب |
# تحويل OBJ إلى GLTF باستخدام obj2gltf
npx obj2gltf -i model.obj -o model.gltf
# استيراد OBJ في Blender من سطر الأوامر
blender --background --python-expr "import bpy; bpy.ops.import_scene.obj(filepath='model.obj')"
# فحص OBJ وإصلاح المشاكل باستخدام MeshLab Script