فایل glTF JSON (.gltf)

ISO/IEC استاندارد

فرمت انتقال گرافیکی (glTF) یک مشخصه JSON استاندارد باز و بدون حق امتیاز برای انتقال و بارگذاری کارآمد صحنه‌ها و مدل‌های سه‌بعدی توسط WebGL، WebGPU، موتورهای بازی و برنامه‌های بومی است.

تبدیل GLTF به GLB

مبدل رایگان GLTF به GLB درون مرورگر. فایل‌ها را فورا روی دستگاه خود تبدیل کنید.

بررسی و فراداده

سیستم‌عامل‌ها و تحلیلگرهای فایل، فایل‌های glTF را با بررسی توالی بایت‌های دودویی ابتدایی شناسایی می‌کنند:

انتخاب یا رها کردن فایل‌ها در اینجا

تبدیل ۱۰۰٪ خصوصی در مرورگر - فایل‌ها هرگز دستگاه شما را ترک نمی‌کنند

یا جای‌گذاری کنید Ctrl+V
تضمین حریم خصوصی بدون انتقال شبکه: صفر بایت به سرورهای خارجی آپلود می‌شود. تمام پردازش‌ها به صورت محلی در سندباکس مرورگر شما انجام شد.

امضای هدر در سطح بایت (Magic Bytes)

سیستم‌عامل‌ها و تحلیلگرهای فایل، فایل‌های glTF را با بررسی توالی بایت‌های دودویی ابتدایی شناسایی می‌کنند:

امضای HEX (آفست 0):

7B 0A 20 20 22 61 73 73 65 74 22

نمایش ASCII: {\n "asset"

استانداردسازی: ISO/IEC 12113:2022 / Khronos Open Standard

مشخصات فنی

معماری کانتینرHuman-readable JSON document describing scene graph, nodes, meshes, accessors, materials, and animations, referencing external buffers
فشرده‌سازیExternal textures (PNG, JPEG, WebP) and optional Draco geometry compression
ترتیب بایت‌ها (Endianness)UTF-8 JSON text (referencing Little-Endian .bin buffers)
فضاهای رنگیsRGB base color, Linear roughness/metallic
کانال‌ها و ساختارScene hierarchy, nodes, cameras, PBR materials, skinning skeletons, and morph targets
حداکثر ابعادUnbounded coordinate space and triangle count
شفافیت مشخصاتAlpha mode BLEND, MASK with cutoff threshold, or volumetric transmission
استریمینگ و پیش‌روندهAsynchronous loading: scene JSON loads instantly while heavy binary buffers stream in background

ماتریس مقایسه فنی: glTF در برابر رقبا

ویژگی فنیglTF (فعلی)GLBOBJFBX
معماری فایلمتن صحنه JSON + فایل .bin / بافت‌های همراهفایل باینری تک و مستقلرؤس و وجوه متنی ساده + .mtlکنتینر باینری/ASCII اختصاصی
استانداردهای متریال PBRMetallic-Roughness PBR استانداردسازی شدهMetallic-Roughness PBR استانداردسازی شدهمتریال‌های قدیمی Phong/Lambertمتریال‌های اختصاصی سفارشی
پشتیبانی از انیمیشناسکینینگ اسکلتی و اهداف مورف (Morph targets)اسکینینگ اسکلتی و اهداف مورف (Morph targets)هیچ‌کدام (فقط هندسه استاتیک)انیمیشن و استخوان‌های پیچیده
عملکرد در زمان اجرابهینه‌شده برای WebGL و موتورهای بلادرنگبهینه‌شده برای WebGL و موتورهای بلادرنگنیازمند تجزیه و بازسازی کندنیازمند تجزیه پیچیده SDK دسکتاپ

حالت‌های رایج خرابی و راهنمای بازیابی هگز

خطای موتور سه‌بعدی: «شکست در بارگذاری بافر: URI یافت نشد».

علت ریشه‌ای: فایل باینری همراه .bin یا تصاویر بافت در کنار فایل .gltf آپلود نشده‌اند.

بازیابی: تمام فایل‌های همراه را با هم بسته‌بندی کنید یا مستقیماً با File2File به یک فایل GLB واحد تبدیل کنید.

تحلیل امنیتی و بردارهای حمله تجزیه‌کننده (Parser)

فایل‌های JSON فرمت glTF به URIهای خارجی (URIهای داده یا آدرس‌های اینترنتی ریموت) ارجاع می‌دهند که می‌توانند باعث جعل درخواست سمت سرور (SSRF) یا پیمایش مسیر (Path Traversal) شوند.

بردارهای حمله شناخته‌شده

  • پیمایش مسیر از طریق URIهای نسبی بافر (به عنوان مثال 'uri: ../../../etc/passwd').
  • حمله SSRF از طریق واکشی بافر شبکه ریموت در تولیدکننده‌های تصویر کوچک سه‌بعدی سمت سرور.
  • انکار سرویس از طریق چرخه‌های نامعتبر و بازگشتی در هماهنگی گره‌ها.

بهترین روش‌های پدافندی:

تاریخچه و نقاط عطف

2022glTF 2.0 به تصویب بین‌المللی به عنوان ISO/IEC 12113:2022 دست می‌یابد.
2017گروه Khronos نسخه glTF 2.0 را منتشر می‌کند و رندر مبتنی بر فیزیک (PBR) را به عنوان یک ویژگی اصلی استانداردسازی می‌کند.
2015glTF 1.0 در SIGGRAPH معرفی شد که توسط فابریس رابینِت، نیل ترِوِت و تونی پاریسی طراحی شده بود.

مزایا و نقاط قوت کلیدی

  • ساختار JSON قابل خواندن توسط انسان امکان ویرایش برنامه‌نویسی، اسکریپت‌نویسی پایپ‌لاین و بازرسی بصری را فراهم می‌کند.
  • طراحی ماولار: متادیتای سبک صحنه را از هندسه باینری سنگین (.bin) و بافت‌ها جدا می‌کند.
  • تعریف متریال رندر مبتنی بر فیزیک (PBR) تضمین می‌کند که دارایی‌های سه‌بعدی در تمام موتورهای رندر یکسان به نظر برسند.

محدودیت‌ها و معایب فنی

  • پیچیدگی چندفایلی: اشتراک‌گذاری یک مدل نیازمند زیپ کردن یا بسته‌بندی همزمان فایل‌های .gltf، .bin و بافت‌های تصویری است.
  • به دلیل درخواست‌های متعدد HTTP، راه‌اندازی اولیه شبکه کمی کندتر از فرمت تک‌فایلی GLB است.
  • در صورت تغییر نام یا جابجایی فایل‌های بافت همراه، وابستگی‌های مسیر نسبی ممکن است قطع شوند.

نکات فنی جالب

  • glTF به طور رسمی ملقب به «JPEG سه‌بعدی» است زیرا به جای طراحی، به طور دقیق روی انتقال و نمایش در زمان اجرا تمرکز دارد.
  • این فرمت به طور مشترک توسط تونی پاریسی پایه‌گذاری شد که در سال ۱۹۹۴ VRML (زبان مدل‌سازی واقعیت مجازی) را به طور مشترک ایجاد کرده بود.
  • ناسا مدل‌های سه‌بعدی مریخ‌نوردها، ماهواره‌ها و فضانوردان را برای دانلود عموم با فرمت glTF ارائه می‌کند.

سوالات فنی متداول

چرا فایل glTF من فاقد رنگ یا اشکال است؟

یک فایل .gltf فقط حاوی دستورالعمل‌های صحنه JSON است. این فرمت برای اشکال سه‌بعدی به فایل‌های .bin همراه و برای رنگ‌ها به فایل‌های .png/.jpg وابسته است. مطمئن شوید که تمام فایل‌های همراه در یک پوشه قرار دارند.

چگونه یک فایل glTF را به یک فایل واحد GLB تبدیل کنم؟

فایل .gltf خود به همراه فایل‌های .bin و بافت‌های همراه آن را در File2File.app آپلود کنید تا فوراً در یک فایل .glb واحد و خودکفا ادغام شوند.

چه برنامه‌هایی از glTF پشتیبانی می‌کنند؟

برنامه‌های Blender، Three.js، Babylon.js، Unity، Unreal Engine، Godot و Windows 3D Viewer به طور پیش‌فرض از glTF پشتیبانی می‌کنند.