┐─ تحليل الملف ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── ┌
│ المطور : مجموعة Khronos
│ الفئة : ثلاثي الأبعاد
│ نوع MIME : model/gltf+json
┘ ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── └
ما هو ملف glTF؟
glTF (GL Transmission Format — صيغة نقل GL) هو معيار مفتوح لنقل النماذج ثلاثية الأبعاد والمشاهد، طورته مجموعة Khronos (نفس المجموعة التي طورت OpenGL وVulkan) وأُطلق الإصدار 2.0 عام 2017. لُقِّب بـ “JPEG الـ 3D” لأنه يوازن بين الكفاءة والتوافق كما فعلت JPEG للصور.
يأتي glTF بصيغتين: .gltf (JSON مع ملفات ثنائية وصور منفصلة) و.glb (صيغة ثنائية موحدة تجمع كل شيء في ملف واحد). يدعم glTF نموذج PBR (Physically Based Rendering) للمواد المحاكية فيزيائياً، والرسوم المتحركة الهيكلية (Skeletal Animation)، وأهداف التشكيل (Morph Targets) لتعابير الوجه، والإضاءة والكاميرات.
كيفية فتح ملفات glTF
- Blender (ويندوز، ماك، لينكس) — استيراد/تصدير أصلي مدمج منذ 2.83
- VS Code مع إضافة glTF Tools — عرض تفاعلي مع تحقق JSON
- glTF Viewer (ويب) — العارض الرسمي من Khronos مباشرة في المتصفح
- Three.js (ويب) —
GLTFLoaderلتحميل في تطبيقات WebGL - Babylon.js (ويب) — منصة 3D متكاملة تعتمد glTF كصيغتها الأساسية
- model-viewer (ويب) — عنصر HTML جاهز من Google لعرض 3D
المواصفات التقنية
| الخاصية | القيمة |
|---|---|
| نوع MIME (.gltf) | model/gltf+json |
| نوع MIME (.glb) | model/gltf-binary |
| الصيغة | JSON + ثنائي (.gltf) أو كلاهما مدمج (.glb) |
| نموذج المواد | PBR (Metallic-Roughness) |
| الرسوم المتحركة | هيكلية، أهداف تشكيل، إطارات مفتاحية |
| النسيج | PNG، JPEG، KTX2 (مضغوط للـ GPU) |
| الامتدادات | 50+ امتداد رسمي (KHR_lights، KHR_draco_mesh_compression) |
الاستخدامات الشائعة
- الويب ثلاثي الأبعاد: Three.js وBabylon.js وA-Frame تستخدم glTF كصيغتها الأصلية
- التجارة الإلكترونية: عرض المنتجات ثلاثية الأبعاد قابل للتدوير على Amazon وIKEA وShopify
- الواقع المعزز (AR): Apple Quick Look وGoogle Scene Viewer يستخدمان glTF/GLB للـ AR
- التوائم الرقمية: تصور صناعي ثلاثي الأبعاد في المصانع والبنية التحتية
- الألعاب والميتافيرس: محرك Godot يدعم glTF كصيغة رئيسية
glTF مقابل OBJ مقابل FBX مقابل USDZ
| الميزة | glTF | OBJ | FBX | USDZ |
|---|---|---|---|---|
| الويب | ✅ مثالي | محدود | ❌ | ❌ |
| الرسوم المتحركة | ✅ | ❌ | ✅ | ✅ |
| مواد PBR | ✅ مدمج | ❌ | جزئي | ✅ |
| صيغة مفتوحة | ✅ | ✅ | ❌ (Autodesk) | Apple |
| AR على iOS | ❌ | ❌ | ❌ | ✅ |
| التوافق | ✅ واسع | ✅ واسع | Autodesk | Apple |
مثال تحميل glTF بـ Three.js
import * as THREE from 'three';
import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';
const scene = new THREE.Scene();
const loader = new GLTFLoader();
loader.load(
'model.gltf',
(gltf) => {
scene.add(gltf.scene);
// تشغيل الرسوم المتحركة
const mixer = new THREE.AnimationMixer(gltf.scene);
gltf.animations.forEach((clip) => {
mixer.clipAction(clip).play();
});
},
(progress) => {
const percent = (progress.loaded / progress.total * 100).toFixed(0);
console.log(`تحميل: ${percent}%`);
},
(error) => console.error('خطأ في التحميل:', error)
);
# تحويل FBX إلى glTF باستخدام FBX2glTF
fbx2gltf -i model.fbx -o model.gltf
# ضغط glTF باستخدام Draco
gltf-pipeline -i model.gltf -o model.glb --draco.compressMeshes