مبدل فایل glTF JSON به glTF باینری
تبدیل داراییهای glTF JSON به کانتینرهای باینری glTF، مانیفستهای متنی جداگانه، بافرهای باینری و بافتها را برای تحویل سریعتر وب در یک فایل واحد بستهبندی میکند.
مقایسه فرمتها و مشخصات فنی
| مشخصات | GLTF | GLB |
|---|---|---|
| نوع MIME | model/gltf+json | model/gltf-binary |
| نوع | runtime 3D asset transmission | self-contained binary 3D container |
| فشردهسازی | lossless JSON manifest + external binary buffers | binary packaged JSON, buffers, and textures |
| مشخصات استاندارد | Khronos glTF 2.0 Specification | Khronos glTF 2.0 Binary Container |
| هدر بایتهای جادویی | 7B 22 61 73 73 65 74 22 ({"asset" JSON root) | 67 6C 54 46 02 00 00 00 (glTF version 2 binary container) |
نمای کلی فرمت و کاربردها
فرمت glTF JSON صحنههای سهبعدی را با استفاده از ساختار متن ساده ذخیره میکند. این فایل متنی به فایلهای باینری خارجی و بافتهای تصویری اشاره دارد. در حالی که این راهاندازی به توسعهدهندگان کمک میکند تا مواد و گرههای هندسی را مستقیماً در ویرایشگرهای کد ویرایش کنند، جابجایی مدل مستلزم مدیریت چندین فایل به طور همزمان است. اگر یک فایل بافت گم شود یا مسیر فایل خراب شود، مدل سهبعدی در مرورگرها و موتورهای بازی به درستی بارگذاری نمیشود. تبدیل glTF JSON به glTF باینری تمام آن قطعات جداگانه را در یک فایل بستهبندی شده ادغام میکند. هنرمندان سهبعدی و توسعهدهندگان وب از این مرحله تبدیل قبل از انتشار داراییها در سرورهای وب تولیدی یا بارگذاری آنها در نمایشگرهای واقعیت افزوده استفاده میکنند. داشتن یک فایل واحد درخواستهای HTTP را کاهش میدهد، که زمان بارگذاری را برای کاربران بازدیدکننده از صفحات محصول تجارت الکترونیک و برنامههای وب سهبعدی تعاملی تسریع میکند.
مشخصات فنی و تحلیل کدک
فرمت glTF JSON از نوع MIME model/gltf+json استفاده میکند و بر روی یک مانیفست JSON مبتنی بر متن جفت شده با فایلهای bin خارجی و تصاویر متکی است. در مقابل، فرمت GLB از نوع MIME model/gltf-binary استفاده میکند و همه چیز را در یک کانتینر باینری واحد بستهبندی میکند. یک فایل GLB با یک هدر ۱۲ بایتی حاوی یک عدد جادویی ۴ بایتی تنظیم شده روی 0x46546C67، یک شماره نسخه ۴ بایتی و یک طول کل فایل ۴ بایتی شروع میشود. این هدر با قطعاتی دنبال میشود که مانیفست JSON و دادههای بافر باینری را ذخیره میکنند. هیچکدام از فرمتها هندسه مش زیرین یا دادههای پیکسل بافت را در طول تبدیل تغییر نمیدهند، به این معنی که فرآیند کاملاً بدون افت است.
سازگاری با سیستمعامل و مرورگر
هر دو فرمت به صورت بومی در مرورگرهای وب مدرن با استفاده از رندرهای WebGL و WebGPU بدون نیاز به افزونههای شخص ثالث کار میکنند. سیستمعاملهای دسکتاپ مانند ویندوز و مکاواس از مشاهده GLB از طریق ابزارهای پیشنمایش فایل داخلی پشتیبانی میکنند. پلتفرمهای تلفن همراه از جمله iOS و اندروید فایلهای GLB را مستقیماً در برنامههای واقعیت افزوده Quick Look و Scene Viewer رندر میکنند.
💡 اطلاعات مفید
بافتهای اصلی خود را قبل از بستهبندی در یک فایل GLB در فرمت PNG یا JPEG نگه دارید تا وفاداری بصری را بدون بزرگ کردن اندازه کانتینر حفظ کنید.
مقایسه فرمتها و مشخصات فنی
یک دارایی سهبعدی معمولی ۱۵ مگابایتی که بین یک فایل glTF JSON و چندین بافت خارجی تقسیم شده است، در حدود ۳.۰ ثانیه روی یک اتصال 4G استاندارد، 0.8 ثانیه روی 5G و 0.2 ثانیه روی شبکه فیبر دانلود میشود.
پرسشهای متداول
چگونه glTF JSON را بدون افت کیفیت به glTF باینری تبدیل کنیم؟
تبدیل glTF JSON به GLB کاملاً بدون افت است زیرا این فرآیند فقط مانیفست متنی موجود، بافرهای باینری و فایلهای تصویری را در یک کانتینر واحد بدون تغییر دادههای رأس یا فشردهسازی بیشتر پیکسلهای بافت بستهبندی مجدد میکند.
تفاوت بین glTF JSON و glTF باینری چیست؟
glTF JSON از یک فایل متنی قابل خواندن توسط انسان استفاده میکند که به فایلهای bin و تصویر خارجی ارجاع میدهد، در حالی که glTF باینری مانیفست متنی، دادههای هندسی و بافتها را در یک فایل خودکفا با هدر بایت جادویی بستهبندی میکند.