জেটপ্যাক এক্সআর লাইব্রেরির আলফা০৪ রিলিজের শুরু থেকে, সর্বোত্তম কর্মক্ষমতা এবং ভিজ্যুয়াল মানের জন্য স্থানিক পরিবেশ সম্পদ কীভাবে সরবরাহ করা উচিত সে সম্পর্কে গুরুত্বপূর্ণ আপডেট রয়েছে। এই পরিবর্তনগুলি একটি সামঞ্জস্যের প্রভাব এবং স্থানিক পরিবেশ সেট করে এমন বিদ্যমান অ্যাপগুলি আপডেট করার প্রয়োজন।
স্থানিক পরিবেশ প্রদানের জন্য, আপনার দুটি প্রধান উপাদানের প্রয়োজন:
- পরিবেশের জ্যামিতি (যেমন, স্থল সমতল, কাছাকাছি বস্তু) এবং ব্যবহারকারীরা যে প্রাথমিক ভিজ্যুয়াল স্কাইবক্স টেক্সচার দেখেন তার জন্য একটি .glb বা .gltf ফাইল।
- cmgen টুল ব্যবহার করে উচ্চ গতিশীল পরিসরের EXR চিত্র থেকে তৈরি চিত্র ভিত্তিক আলো (IBL) তথ্য ধারণকারী একটি পৃথক ZIP ফাইল। ZIP ফাইলটি আলো গণনার জন্য ব্যবহৃত হয়, যেমন বস্তুর প্রতিফলনের জন্য, এবং ভিজ্যুয়াল স্কাইবক্স টেক্সচারের জন্য নয়।
কেন এই পদ্ধতি?
এই আপডেট করা সম্পদ কাঠামো নিম্নলিখিত সুবিধাগুলি প্রদান করে:
- ছোট ফাইলের আকার: পূর্ববর্তী পদ্ধতিগুলির তুলনায়, যেমন ভিজ্যুয়াল ডিসপ্লে এবং আলোর তথ্য উভয়ের জন্য একটি একক উচ্চ-রেজোলিউশন HDR স্কাইবক্স ফাইল ব্যবহার করা, এই পদ্ধতিটি ফাইলের আকার হ্রাস করে।
- উন্নত কর্মক্ষমতা: IBL ডেটা (ZIP ফাইলে) থেকে ভিজ্যুয়াল স্কাইবক্স টেক্সচার (glb-তে অন্তর্নির্মিত) আলাদা করার মাধ্যমে আপনি প্রতিটি উপাদানকে স্বাধীনভাবে অপ্টিমাইজ করতে পারবেন। এর ফলে টেক্সচার মেমরি রিড ব্যান্ডউইথ কম হবে এবং পাওয়ার খরচ কম হবে।
- অপ্টিমাইজড লাইটিং: আলোক মানচিত্রের জন্য বিশেষভাবে কম রেজোলিউশনের স্কাইবক্স রিসোর্স ব্যবহার করা কার্যক্ষমতার জন্য উপকারী, বস্তুর উপর আলোকসজ্জার দৃশ্যমান ফলাফলকে উল্লেখযোগ্যভাবে প্রভাবিত না করে।
আপনার অ্যাপে একটি স্থানিক পরিবেশ যোগ করার বিষয়ে আরও জানতে, আপনার অ্যাপে পরিবেশ যোগ করার বিষয়ে আমাদের নির্দেশিকাটি দেখুন।
আপনার জিএলবি অপ্টিমাইজ করুন

তোমার glb ব্যবহারকারীর চারপাশের জ্যামিতি উপস্থাপন করে, এবং তুমি তোমার স্কাইবক্সের ভিজ্যুয়াল টেক্সচার অন্তর্ভুক্ত করো। তোমার জ্যামিতির জন্য, তোমার ফাইলের আকার 80MB বা তার কম রাখার চেষ্টা করা উচিত।
এটি করার জন্য, উচ্চমানের মান বজায় রেখে আপনার পরিবেশকে আরও দক্ষ করে তোলার অনেক সুযোগ রয়েছে। উদাহরণস্বরূপ, আপনার জালের ঘনত্ব ব্যবহারকারীর কাছে সবচেয়ে ঘন হওয়া উচিত এবং আপনি ব্যবহারকারী থেকে দূরে থাকা জালের ঘনত্ব কমাতে পারেন।
- দেখার দূরত্ব: অ্যান্ড্রয়েড এক্সআর-এ পরিবেশের জন্য দেখার দূরত্ব ব্যবহারকারীর বিন্দু থেকে ২০০ মিটার দূরে, এবং আপনার স্কাইবক্স টেক্সচারটি এই সীমাবদ্ধতা মেনে চলা উচিত। এটি একটি সর্বোত্তম অভিজ্ঞতা প্রদান করে কারণ সেই দূরত্বে প্যারালাক্স অদৃশ্য হয়ে যায়।
ব্যবহারকারীর উচ্চতা: ভৌগোলিক অবস্থান ভিন্ন হতে পারে, তবে অ্যাপগুলিতে বৃহত্তর UI উপাদান ব্যবহার করে ক্লিপিং এড়াতে ব্যবহারকারীকে প্রায় 1.5 মিটার উচ্চতার একটি ঢিবির উপর রাখুন।
পলিকাউন্ট: আপনার জিএলবি ফাইলের পলিকাউন্টের প্রতি সংবেদনশীল থাকুন, কারণ উচ্চ পলিকাউন্টের ফলে অপ্রয়োজনীয় বিদ্যুৎ খরচ হতে পারে। জ্যামিতির প্রতিটি প্যাচ ১০,০০০ শীর্ষবিন্দুর বেশি হওয়া উচিত নয়।
KTX কম্প্রেশন: আপনার glb ফাইলের GPU কর্মক্ষমতা অপ্টিমাইজ করুন, নিশ্চিত করুন যে আপনার glb mipmaps এবং ktx2 টেক্সচার ব্যবহার করে।
আপনার IBL অপ্টিমাইজ করার জন্য আপনার যা যা প্রয়োজন হবে
cmgen কমান্ড লাইন ইউটিলিটি ডাউনলোড করুন:
- আপনি ফিলামেন্ট রিপোজিটরিতে সর্বশেষ রিলিজটি খুঁজে পেতে পারেন।
- আপনার প্ল্যাটফর্মের জন্য cmgen এর পূর্বনির্মিত সংস্করণ ধারণকারী .tgz ফাইলটি খুঁজুন এবং এটি বের করুন।
- প্রি-বিল্ট টুলটি এক্সট্রাক্ট করা .tgz ফাইলের /bin ডিরেক্টরির অধীনে থাকে।
IBL এর জন্য .zip ফাইল তৈরি করার জন্য যেসব সম্পদ প্রস্তুত করতে হবে:
- আপনার স্কাইবক্স টেক্সচারের সাথে মেলে এমন একটি কম-রেজোলিউশনের EXR
- আপনার স্কাইবক্স টেক্সচার ইনপুটটি একটি EXR ফাইল হওয়া উচিত। যদিও cmgen অন্যান্য ফর্ম্যাট সমর্থন করে, EXR গুলি সুপারিশ করা হয় কারণ তারা উচ্চ গতিশীল পরিসরের তথ্য প্রদান করে যা উচ্চ মানের IBL প্রদানের জন্য গুরুত্বপূর্ণ। PNG এর মতো অন্যান্য ফর্ম্যাট ব্যবহার করলে কম সুনির্দিষ্ট আলো পাওয়া যায়।
- সোর্স ইমেজের (EXR) অনুপাত ২:১ এবং মাত্রা ২ এর হতে হবে। ১০২৪ x ৫১২ পিক্সেলের EXR ব্যবহার করুন। দ্রষ্টব্য: মনে হতে পারে ১০২৪ x ৫১২ রেজোলিউশন খুব কম, কিন্তু এটি পারফরম্যান্সের জন্য উপকারী। IBL-এর ক্ষেত্রে, ব্যবহারকারীর জন্য ভিজ্যুয়াল ফলাফল অনেক বেশি IBL রেজোলিউশন সম্পদের অনুরূপ।
- একটি ঘন কালো png
- এই সম্পদটি অবশ্যই ২:১ অনুপাতের হতে হবে। ১০০ x ৫০ পিক্সেল আকার ব্যবহার করুন।
- এটি IBL-এর সাথে একটি অপ্টিমাইজড টেক্সচার হিসেবে কাজ করে। ব্যবহারকারীরা এটি দেখবেন না, তাই আমরা কর্মক্ষমতার জন্য অপ্টিমাইজেশনের উপর সম্পদকে ফোকাস করি।

IBL এর জন্য .zip ফাইল তৈরি করতে cmgen ব্যবহারের একটি উদাহরণ নিচে দেওয়া হল। এই উদাহরণে আমরা my_360_skybox_1024_x_512.exr এবং black_skybox.png নামের ইনপুট ফাইল ব্যবহার করি এবং my_ibl.zip নামে একটি .zip ফাইল তৈরি করি।
# Produce black cubemaps for the texture of the IBL asset.
./cmgen --format=rgb32f --size=128 --extract=./skybox_ibl ./black_skybox.png
# Produce lighting cubemaps and a Spherical Harmonics from EXR
./cmgen --format=rgb32f --size=128 --deploy=./skybox_ibl --ibl-ld=. --ibl-samples=1024 --extract-blur=0.0 --sh-irradiance --sh-shader --sh-output=./skybox_ibl/sh.txt ./my_360_skybox_1024_x_512.exr
# Copy all of the black cubemaps into the other folder.
cp -rf ./skybox_ibl/black_skybox/* ./skybox_ibl/my_360_skybox_1024_x_512
# Rename the directory to reflect that these are old assets.
mv ./skybox_ibl/black_skybox ./skybox_ibl/black_skybox_old
# Rename the directory to reflect that these are your cubemap assets.
mv ./skybox_ibl/my_360_skybox_1024_x_512 ./skybox_ibl/black_skybox
# Change into the child directory.
cd ./skybox_ibl
# Zip all of the cubemap and the Spherical Harmonics assets together.
zip -q my_ibl.zip black_skybox/*
# Return to the directory you started in.
cd ..