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