একটি জিএলবি ফাইল কি?
জিএলবি হল GL ট্রান্সমিশন ফরম্যাটে (glTF) সংরক্ষিত 3D মডেলগুলির বাইনারি ফাইল ফর্ম্যাট উপস্থাপনা৷ বাইনারি বিন্যাসে 3D মডেলের তথ্য যেমন নোড শ্রেণিবিন্যাস, ক্যামেরা, উপকরণ, অ্যানিমেশন এবং মেশ। এই বাইনারি বিন্যাসটি একটি বাইনারি ব্লবে glTF সম্পদ (JSON, .bin এবং চিত্র) সংরক্ষণ করে। এটি ফাইলের আকার বৃদ্ধির সমস্যাকেও এড়িয়ে যায় যা glTF এর ক্ষেত্রে ঘটে। জিএলবি ফাইল ফরম্যাটের ফলে কম্প্যাক্ট ফাইলের আকার, দ্রুত লোডিং, সম্পূর্ণ 3D দৃশ্য উপস্থাপনা এবং আরও উন্নয়নের জন্য এক্সটেনসিবিলিটি পাওয়া যায়। ফর্ম্যাটটি MIME প্রকার হিসাবে মডেল/gltf-বাইনারি ব্যবহার করে।
জিএলবি ফাইল ফরম্যাট - আরও তথ্য
glTF দ্বারা ব্যবহৃত সামগ্রী বিতরণ পদ্ধতির ফলে বেস-64 এনকোড করা বাইনারি ডেটা ডিকোড করার জন্য অতিরিক্ত প্রক্রিয়াকরণের ফলে ফাইলের আকার 33% বৃদ্ধি পায়। এই বিতরণ পদ্ধতিগুলি, যা জিএলবি ফাইল বিন্যাস গঠনে অবদান রাখে, এর মধ্যে রয়েছে:
glTF JSON বাহ্যিক বাইনারি ডেটা (জ্যামিতি, কী ফ্রেম, স্কিন) এবং চিত্রগুলিকে নির্দেশ করে।
glTF JSON বেস64-এনকোড করা বাইনারি ডেটা এবং ডেটা URI ব্যবহার করে ছবিগুলিকে ইনলাইনে এম্বেড করে।
জিএলবি একটি ধারক বিন্যাস হিসাবে glTF দ্বারা সৃষ্ট সমস্যাগুলি এড়াতে একটি বাইনারি ব্লব-এ glTF সম্পদের প্রতিনিধিত্বের জন্য বাইনারি ফাইল বিন্যাস হিসাবে চালু করা হয়েছিল। জিএলবি ফাইল ফরম্যাট specifications অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য যেকোন পাঠক/লেখকের বাস্তবায়নের জন্য উল্লেখ করা উচিত।
জিএলবি ফাইল স্ট্রাকচার
জিএলবি ফাইল ফরম্যাট লিটল এন্ডিয়ানের উপর ভিত্তি করে এবং এর গঠন দেখায় যে এতে রয়েছে:
একটি 12-বাইট প্রস্তাবনা, শিরোনাম শিরোনাম।
এক বা একাধিক খণ্ড যাতে JSON বিষয়বস্তু এবং বাইনারি ডেটা থাকে।
জিএলবি হেডার
জিএলবি ফাইল ফরম্যাট হেডারে তিনটি 4-বাইট এন্ট্রি থাকে:
uint32 ম্যাজিক - ম্যাজিক সমান 0x46546C67। এটি ASCII স্ট্রিং glTF, এবং বাইনারি glTF হিসাবে ডেটা সনাক্ত করতে ব্যবহার করা যেতে পারে
uint32 সংস্করণ - বাইনারি glTF কন্টেইনার বিন্যাসের সংস্করণ নির্দেশ করে
uin32 দৈর্ঘ্য - বাইনারি glTF এর মোট দৈর্ঘ্য, হেডার এবং বাইটে সমস্ত অংশ সহ
খণ্ড
একটি জিএলবি ফাইলের প্রতিটি খণ্ডের নিম্নলিখিত কাঠামো রয়েছে:
uint32 | uint32 | ubyte[] |
---|---|---|
chunkLength | chunkType | chunkData |
chunkLength
- বাইটে খণ্ড ডেটার দৈর্ঘ্যchunkType
- নির্দেশ করে খণ্ডের ধরন নির্দেশ করেchunkData
- খণ্ডের বাইনারি পেলোড
যেখানে খণ্ডের প্রকারগুলি হল:
# | খণ্ডের ধরন | ASCII | বর্ণনা | ঘটনা |
---|---|---|---|---|
1. | 0x4E4F534A | JSON | গঠিত JSON সামগ্রী | 1 |
2. | 0x004E4942 | BIN | বাইনারী বাফার | 0 বা 1 |
প্রতিটি খণ্ডের শুরু এবং শেষ অবশ্যই 4-বাইটের সীমানায় সারিবদ্ধ হতে হবে এবং এই উদ্দেশ্যে প্যাডিং ব্যবহার করা উচিত।
স্ট্রাকচার্ড JSON কন্টেন্ট
এটি বাইনারি glTF সম্পদের প্রথম অংশ হওয়া উচিত এবং পরবর্তী অংশগুলি থেকে ধীরে ধীরে সম্পদ পুনরুদ্ধার করতে বাস্তবায়নকে সক্ষম করে। এটি একটি বাইনারি glTF সম্পদ থেকে রিসোর্সগুলির শুধুমাত্র একটি নির্বাচিত উপসেট পড়ার ক্ষমতা প্রদান করে যেমন একটি জালের সবচেয়ে মোটা LOD। সারিবদ্ধকরণের প্রয়োজনীয়তাগুলি পূরণ করার জন্য, এই খণ্ডটিকে অবশ্যই ট্রেলিং স্পেস অক্ষর (0x20) দিয়ে প্যাড করা উচিত।
বাইনারি বাফার
এই খণ্ডটিতে জ্যামিতি, অ্যানিমেশন কী ফ্রেম, স্কিন এবং চিত্রগুলির জন্য বাইনারি পেলোড রয়েছে। এটি বাইনারি glTF সম্পদের দ্বিতীয় অংশ হওয়া উচিত এবং সারিবদ্ধকরণের প্রয়োজনীয়তাগুলি পূরণ করার জন্য ট্রেলিং শূন্য (0x00) দিয়ে প্যাড করা উচিত।