GLB থেকে glTF কনভার্টার
জিএলবি থেকে জিএলটিএফ রূপান্তরের মাধ্যমে একক বাইনারি কন্টেইনারকে আলাদা টেক্সট এবং অ্যাসেট ফাইলে বিভক্ত করা হয়, যাতে ডেভেলপাররা খুব সহজেই টেক্সচার এবং থ্রিডি জিওমেট্রি কোড সম্পাদনা করতে পারেন।
ফরম্যাট তুলনা এবং প্রযুক্তিগত বৈশিষ্ট্য
| বৈশিষ্ট্য | GLB | GLTF |
|---|---|---|
| MIME টাইপ | model/ | model/ |
| ধরন | স্বয়ংসম্পূর্ণ বাইনারি 3D কনটেইনার | রানটাইম 3D অ্যাসেট ট্রান্সমিশন |
| কম্প্রেশন | বাইনারি প্যাকেজড JSON, বাফার এবং টেক্সচার | লসলেস JSON ম্যানিফেস্ট + বাহ্যিক বাইনারি বাফার |
| স্ট্যান্ডার্ড বৈশিষ্ট্য | Khronos glTF 2.0 Binary Container | Khronos glTF 2.0 স্পেসিফিকেশন |
| ম্যাজিক বাইটের হেডার | 67 6C 54 46 02 00 00 00 (glTF version 2 binary container) | 7B 22 61 73 73 65 74 22 ({"asset" JSON root) |
ফরম্যাটের ওভারভিউ এবং ব্যবহার
জিএলবি ফরম্যাটটি থ্রিডি দৃশ্য, অ্যানিমেশন, ম্যাটেরিয়াল এবং টেক্সচারকে একটি গোছানো বাইনারি প্যাকেজে একত্রিত করে। এটি ওয়েব পেজ এবং গেমগুলোতে দ্রুত অবজেক্ট লোড করার জন্য দারুণ হলেও, কাঁচা ডেটা সম্পাদনা করা কঠিন করে তোলে। যখন ডেভেলপারদের দৃশ্য গঠন পরিদর্শন করার, টেক্সট এডিটরে ম্যাটেরিয়াল প্রপার্টি টুইক করার বা এমবেডেড শেডার প্যারামিটার পরিবর্তন করার প্রয়োজন হয়, তখন তাদের প্রায়ই জিএলবি ফাইলকে জিএলটিএফ ফরম্যাটে রূপান্তর করতে হয়। বিভক্ত জিএলটিএফ অ্যাসেট নিয়ে কাজ করার ফলে ইঞ্জিনিয়ারিং টিমগুলো স্ট্যান্ডার্ড গিট ওয়ার্কফ্লো ব্যবহার করে নির্দিষ্ট থ্রিডি মেশ কম্পোনেন্ট ভার্সন কন্ট্রোল করতে পারে। একটি বিশাল বাইনারি ব্লব ট্র্যাক করার পরিবর্তে, ডেভেলপাররা আলাদা বাইনারি বাফার ফাইল ম্যানেজ করার পাশাপাশি JSON ম্যানিফেস্টে ছোট ছোট টেক্সট পরিবর্তন কমিট করতে পারে। এই রূপান্তর প্রক্রিয়াটি অ্যাডভান্সড ওয়েব ডেভেলপমেন্ট পাইপলাইনকে সমর্থন করে যেখানে রানটাইম ডিপ্লয়মেন্টের আগে থ্রিডি অ্যাসেটের জন্য কাস্টম শেডার ইনজেকশন বা ডায়নামিক টেক্সচার সোয়াপিং প্রয়োজন হয়।
প্রযুক্তিগত বৈশিষ্ট্য এবং কোডেক বিভাজন
জিএলবি ফাইলের ক্ষেত্রে model/gltf-binary এমআইএমই টাইপ ব্যবহার করা হয় এবং এটি ১২ বাইটের হেডার দিয়ে শুরু হয়। এতে থাকে ৪ বাইটের ম্যাজিক নম্বর (0x46546C67), ৪ বাইটের ভার্সন পূর্ণসংখ্যা এবং ৪ বাইটের মোট ফাইলের দৈর্ঘ্য। এই হেডারের পরে JSON ম্যানিফেস্ট এবং বাইনারি বাফার ধারণকারী অংশ থাকে। এটিকে জিএলটিএফে রূপান্তর করা হলে (যা model/gltf+json এমআইএমই টাইপ ব্যবহার করে) ম্যানিফেস্টটি .gltf এক্সটেনশনযুক্ত একটি পঠনযোগ্য টেক্সট ফাইলে আলাদা হয়ে যায়। জ্যামিতি ডেটা এবং পিক্সেল ম্যাপগুলো আলাদা এক্সটার্নাল ফাইল যেমন .bin এবং .png হিসেবে সংরক্ষিত হয়। ডিফল্টভাবে কোনো ফরম্যাটই লসি কম্প্রেশন ব্যবহার করে না। উভয় ফরম্যাটই সম্পূর্ণ গণিতভিত্তিক নিখুঁততায় ভার্টেক্স পজিশন, নরমাল এবং ইউভি স্থানাঙ্ক সংরক্ষণ করে।
OS এবং ব্রাউজার সামঞ্জস্য
বিভক্ত জিএলটিএফ ফাইলগুলো ওয়েবজিএল এবং ওয়েবজিপিইউ রেন্ডারার ব্যবহার করে গুগল ক্রোম, মজিলা ফায়ারফক্স, অ্যাপল সাফারি এবং মাইক্রোসফট এজ সহ সমস্ত আধুনিক ওয়েব ব্রাউজারে সুন্দরভাবে কাজ করে। উইন্ডোজ ১০ এবং ১১, ম্যাকওএস এবং লিনাক্সের মতো ডেস্কটপ অপারেটিং সিস্টেমগুলো উইন্ডোজ থ্রিডি ভিউয়ার এবং ব্লেন্ডারের মতো নেটিভ টুলের মাধ্যমে জিএলটিএফ ভিউয়িং সমর্থন করে। আইওএস এবং অ্যান্ড্রয়েডের মোবাইল অপারেটিং সিস্টেমগুলো নেটিভ এআর এনভায়রনমেন্ট এবং ওয়েব অ্যাপ্লিকেশনের ভেতরে জিএলটিএফ অ্যাসেট রেন্ডার করে, তবে ক্রশ-অরিজিন রিসোর্স শেয়ারিং ত্রুটি এড়াতে ডেভেলপারদের অবশ্যই তাদের সার্ভারে আলাদা .bin এবং .gltf ফাইলগুলো সঠিকভাবে হোস্ট করতে হবে।
উপকারী তথ্য
রূপান্তরের পর আপনার টেক্সচার ম্যাপগুলো সবসময় প্রধান .gltf ফাইলের মতো একই ফোল্ডারে রাখুন, যাতে JSON ম্যানিফেস্টটি ভাঙা পাথ ত্রুটি ছাড়াই এর এক্সটার্নাল ডিপেন্ডেন্সিগুলো খুঁজে পেতে পারে।
সচরাচর জিজ্ঞাসিত প্রশ্নাবলী
কোয়ালিটি না কমিয়ে কীভাবে জিএলটিএফ বাইনারি থেকে জিএলটিএফ JSON রূপান্তর করবেন?
জিএলবি থেকে জিএলটিএফে রূপান্তর সম্পূর্ণ লসলেস কারণ উভয় ফরম্যাটই একই আন্ডারলেইং ম্যাথমেটিক্যাল স্ট্রাকচার ব্যবহার করে। এই প্রক্রিয়ায় কেবল একক বাইনারি কন্টেইনার থেকে JSON চাংক এবং বাইনারি বাফারগুলো নিষ্কাশন করা হয় এবং ভার্টেক্স ডেটা বা পিক্সেল কম্প্রেশন পরিবর্তন না করেই ডিস্কে আলাদা ফাইল হিসেবে সংরক্ষণ করা হয়।
জিএলটিএফ বাইনারি এবং জিএলটিএফ JSON-এর মধ্যে পার্থক্য কী?
জিএলবি হলো একটি সেলফ-কনটেইনড বাইনারি ফাইল যা দৃশ্য বর্ণনা, জ্যামিতি এবং টেক্সচারকে একটি একক ডাউনলোডে প্যাক করে। জিএলটিএফ এই উপাদানগুলোকে আলাদা করে রাখে যেখানে দৃশ্য গ্রাফকে একটি পাঠযোগ্য টেক্সট ফাইলে সংরক্ষণ করা হয় এবং জ্যামিতি ও টেক্সচারকে এক্সটার্নাল বাইনারি এবং ইমেজ ফাইলে রাখা হয়।