فایل باینری glTF (.glb)
ISO/IEC استانداردفرمت glTF باینری (GLB) بستهبندی باینری مستقل و تکفایلی استاندارد glTF 2.0 است که به طور گسترده برای گرافیکهای سهبعدی مبتنی بر وب، واقعیت افزوده (AR) و موتورهای بازیسازی بلادرنگ به عنوان «JPEG سهبعدی» شناخته میشود.
تبدیل GLTF به GLB
مبدل رایگان GLTF به GLB درون مرورگر. فایلها را فورا روی دستگاه خود تبدیل کنید.
بررسی و فراداده
سیستمعاملها و تحلیلگرهای فایل، فایلهای GLB را با بررسی توالی بایتهای دودویی ابتدایی شناسایی میکنند:
امضای هدر در سطح بایت (Magic Bytes)
سیستمعاملها و تحلیلگرهای فایل، فایلهای GLB را با بررسی توالی بایتهای دودویی ابتدایی شناسایی میکنند:
امضای HEX (آفست 0):
67 6C 54 46نمایش ASCII: glTF
استانداردسازی: ISO/IEC 12113:2022 / Khronos Open Standard
مشخصات فنی
| معماری کانتینر | 12-byte binary header ('glTF', version, length) followed by JSON chunk (CHUNK 0) and binary buffer chunk (CHUNK 1) |
| فشردهسازی | DRACO mesh geometry compression, KHR_texture_basisu (KTX2/Basis Universal GPU textures), and ExtMeshopt |
| ترتیب بایتها (Endianness) | Little-Endian (Intel x86 / WebGL standard) |
| فضاهای رنگی | sRGB textures, Linear PBR roughness/metallic channels |
| کانالها و ساختار | PBR materials (Metallic-Roughness), skinned skeletal meshes, morph targets, animations, cameras, and lights |
| حداکثر ابعاد | Unbounded vertex and triangle count (supports multi-gigabyte models) |
| شفافیت مشخصات | Alpha coverage (MASK), alpha blending (BLEND), and volumetric transmission |
| استریمینگ و پیشرونده | Single self-contained file with binary offset tables for direct GPU VBO loading |
ماتریس مقایسه فنی: GLB در برابر رقبا
| ویژگی فنی | GLB (فعلی) | GLTF | USDZ | FBX |
|---|---|---|---|---|
| مدل بستهبندی | فایل باینری تک و مستقل | JSON + فایلهای خارجی .bin و بافت | آرشیو ZIP از اسکیماها و بافتهای USD | باینری/ASCII اختصاصی Autodesk |
| استاندارد وب و AR | استاندارد جهانی WebGL و اندروید AR | استاندارد جهانی WebGL (چندفایلی) | استاندارد AR اپل iOS Quick Look | استاندارد واردات موتور بازی دسکتاپ |
| مدل متریال | استاندارد glTF PBR Metallic-Roughness | استاندارد glTF PBR | اسکیمای متریال یونیورسال پیکسار PBR | شیدرهای اختصاصی Phong/Lambert/PBR |
| عملکرد خواندن GPU | فوری (نقشهبرداری مستقیم حافظه) | سریع (درخواستهای متعدد شبکه) | سریع (ورودیهای فشردهنشده ZIP) | کند (نیازمند تجزیه پیچیده) |
حالتهای رایج خرابی و راهنمای بازیابی هگز
مدل سهبعدی با بافتهای گمشده یا سطوح کاملاً سیاه رندر میشود.
علت ریشهای: چانک بافت جاسازیشده خراب یا مرجع متریال metallic-roughness PBR گمشده.
بازیابی: بررسی و تعمیر آفستهای چانک با استفاده از File2File 3D Converter یا glTF-Transform.
تحلیل امنیتی و بردارهای حمله تجزیهکننده (Parser)
تجزیهکنندههای GLB چانکهای متنی JSON را به همراه بافرهای باینری دلخواه پردازش میکنند که در صورت عدم تطابق طول بافرها میتوانند باعث سرریز بافر شوند.
بردارهای حمله شناختهشده
- سرریز خواندن بافر زمانی که مقدار byteOffset + byteLength در bufferView از طول چانک باینری بیشتر شود.
- خواندن شاخص راس خارج از محدوده (Out-of-bounds) در طول اجرای WebGL drawElements.
- حمله انکار سرویس (DoS) از طریق حلقههای فشردهزدا غیرطبیعی Draco.
بهترین روشهای پدافندی:
تاریخچه و نقاط عطف
مزایا و نقاط قوت کلیدی
- کاملاً مستقل: هندسه سهبعدی، متریالهای PBR، بافتها (PNG/JPEG/KTX2) و انیمیشنهای اسکلتی را در یک فایل بستهبندی میکند.
- بارگذاری مستقیم روی پردازنده گرافیکی (GPU): بافرهای هندسی باینری با طرحبندی حافظه WebGL / Vulkan بدون سربار تجزیه پردازنده مرکزی (CPU) مطابقت دارند.
- استاندارد بیرقیب برای WebGL، WebGPU، پیشنمایشهای محصولات سهبعدی در تجارت الکترونیک و واقعیت افزوده موبایل.
محدودیتها و معایب فنی
- ماهیت باینری، بازرسی یا ویرایش دستی متن را بدون ابزارهای تخصصی سهبعدی دشوار میکند.
- هنگام استفاده از افزونههای فشردهسازی پیشرفته، به کتابخانههای فشردهزدا Draco یا Basis Universal نیاز دارد.
- پلتفرمهای اپل از USDZ برای واقعیت افزوده بومی iOS Quick Look پشتیبانی میکنند که نیاز به تبدیل فرمت از GLB دارد.
نکات فنی جالب
- ۴ بایت اول هر فایل GLB برابر با 0x67 0x6C 0x54 0x46 است که متن ASCII کلمه «glTF» را تشکیل میدهند.
- هنگام مشاهده یک کفش کتانی سهبعدی در مرورگر وب گوشی هوشمند، تقریباً به طور حتم در حال مشاهده یک مدل تعاملی GLB هستید.
- GLB به طور خاص طراحی شده است تا سختافزار گرافیکی بتواند بافرهای راس را مستقیماً از دیسک بدون هیچگونه تبدیلی به VRAM بخواند.
سوالات فنی متداول
تفاوت بین glTF و GLB چیست؟
فرمت glTF یک فایل JSON است که به فایلهای هندسی خارجی .bin و فایلهای بافت تصویر جداگانه اشاره میکند. فرمت GLB کل آن بسته را میگیرد و در یک فایل باینری منفرد و فشرده بستهبندی میکند.
چگونه میتوانم GLB را برای واقعیت افزوده اپل (Apple AR) به USDZ تبدیل کنم؟
شما میتوانید مدلهای GLB را با استفاده از File2File.app مستقیماً در مرورگر وب خود با یک کلیک به فایلهای آماده اپل یعنی USDZ تبدیل کنید.
آیا میتوانم فایلهای GLB را در بلندر (Blender) باز کنم؟
بله. نرمافزار Blender شامل یک واردکننده و صادرکننده بومی و با عملکرد بالای glTF/GLB است که مستقیماً در داخل نرمافزار تعبیه شده است.
جفتهای تبدیل مرتبط با GLB
تبدیل داراییهای glTF JSON به کانتینرهای باینری glTF، مانیفستهای متنی جداگانه، بافرهای باینری و بافتها را برای تحویل سریعتر وب در یک فایل واحد بستهبندی میکند.
تبدیل GLB به GLTF یک کانتینر باینری واحد را به فایلهای متن و دارایی مجزا تجزیه میکند تا برنامهنویسان بتوانند به راحتی بافتها و کد هندسه سه بعدی را ویرایش کنند.