aspose.info
FA

GLB

به‌روزرسانی

فایل GLB چیست؟

GLB نمایش فرمت فایل باینری مدل های سه بعدی است که در قالب انتقال GL (glTF) ذخیره شده است. اطلاعاتی در مورد مدل های سه بعدی مانند سلسله مراتب گره ها، دوربین ها، مواد، انیمیشن ها و مش ها در فرمت باینری. این فرمت باینری دارایی glTF (JSON، .bin و تصاویر) را در یک حباب باینری ذخیره می کند. همچنین از افزایش اندازه فایل که در مورد glTF اتفاق می افتد جلوگیری می کند. فرمت فایل GLB منجر به اندازه فایل فشرده، بارگذاری سریع، نمایش کامل صحنه سه بعدی و توسعه پذیری برای توسعه بیشتر می شود. این قالب از مدل/gltf-binary به عنوان نوع MIME استفاده می کند.

فرمت فایل GLB - اطلاعات بیشتر

روش‌های تحویل محتوا که توسط glTF استفاده می‌شود منجر به پردازش اضافی برای رمزگشایی داده‌های باینری کدگذاری شده پایه ۶۴ می‌شود و همچنین اندازه فایل را تا ۳۳ درصد افزایش می‌دهد. این روش های تحویل، که به شکل گیری فرمت فایل GLB کمک کردند، عبارتند از:

  • glTF JSON به داده های باینری خارجی (هندسه، فریم های کلیدی، پوسته ها) و تصاویر اشاره می کند.

  • glTF JSON داده های باینری کدگذاری شده با base64 و تصاویر را با استفاده از URI های داده به صورت درون خطی جاسازی می کند.

GLB به عنوان یک فرمت کانتینری به عنوان فرمت فایل باینری برای نمایش دارایی glTF در یک حباب باینری معرفی شد تا از مشکلات ناشی از glTF جلوگیری شود. فرمت فایل GLB specifications باید برای اجرای هر خواننده/نویسنده مشابه برای توسعه برنامه‌ها ارجاع داده شود.

ساختار فایل GLB

فرمت فایل GLB مبتنی بر اندیان کوچک است و ساختار آن نشان می دهد که شامل موارد زیر است:

  • یک مقدمه 12 بایتی با عنوان سرصفحه.

  • یک یا چند قطعه که حاوی محتوای JSON و داده‌های باینری است.

سربرگ GLB

هدر فرمت فایل GLB از سه ورودی 4 بایتی تشکیل شده است:

  • uint32 magic - magic برابر با 0x46546C67 است. این رشته ASCII glTF است و می تواند برای شناسایی داده ها به عنوان glTF باینری استفاده شود

  • نسخه uint32 - نسخه فرمت ظرف باینری glTF را نشان می دهد

  • طول uin32 - طول کل GlTF باینری، از جمله سرصفحه و همه تکه ها در بایت

تکه ها

هر تکه در یک فایل GLB ساختار زیر را دارد:

uint32uint32ابایت[]
chunkLengthchunkTypechunkData
  • chunkLength - طول chunkData بر حسب بایت

  • chunkType - نشان می دهد که نوع قطعه را نشان می دهد

  • «chunkData» - بار دودویی تکه

که در آن انواع تکه عبارتند از:

#نوع تکهASCIIتوضیحاترویدادها
1.0x4E4F534AJSONمحتوای JSON ساختاریافته1
2.0x004E4942BINبافر باینری0 یا 1

ابتدا و انتهای هر قطعه باید با مرز 4 بایت تراز باشد و برای این منظور باید از padding استفاده شود.

محتوای JSON ساختاریافته

این باید اولین تکه دارایی باینری glTF باشد و پیاده سازی را قادر می سازد تا به تدریج منابع را از تکه های بعدی بازیابی کند. این همچنین قابلیت خواندن تنها یک زیرمجموعه منتخب از منابع از یک دارایی GlTF باینری مانند درشت ترین LOD یک مش را فراهم می کند. برای برآورده کردن الزامات تراز، این تکه باید با کاراکترهای Space دنباله دار (0x20) پر شود.

بافر باینری

این قطعه حاوی بار باینری برای هندسه، فریم های کلیدی انیمیشن، پوسته ها و تصاویر است. باید دومین تکه از دارایی باینری glTF باشد و باید با صفرهای انتهایی (0x00) پر شود تا الزامات تراز را برآورده کند.

منابع

همچنین ببینید