পরিবেশ সম্পদ অপ্টিমাইজ করুন

Jetpack XR লাইব্রেরিগুলির alpha04 রিলিজ থেকে শুরু করে, সর্বোত্তম কর্মক্ষমতা এবং ভিজ্যুয়াল মানের জন্য আপনাকে কীভাবে স্থানিক পরিবেশ সম্পদ প্রদান করা উচিত তার গুরুত্বপূর্ণ আপডেট রয়েছে। এই পরিবর্তনগুলি একটি সামঞ্জস্যপূর্ণ প্রভাব এবং স্থানিক পরিবেশ সেট করে এমন বিদ্যমান অ্যাপগুলিকে আপডেট করতে হবে৷

স্থানিক পরিবেশ প্রদান করতে, আপনার দুটি প্রধান উপাদান প্রয়োজন:

  • পরিবেশের জ্যামিতির জন্য একটি .glb বা .gltf ফাইল (উদাহরণস্বরূপ, স্থল সমতল, কাছাকাছি বস্তু) এবং প্রাথমিক ভিজ্যুয়াল স্কাইবক্স টেক্সচার যা ব্যবহারকারীরা দেখেন।
  • cmgen টুল ব্যবহার করে একটি উচ্চ গতিশীল পরিসরের EXR ইমেজ থেকে তৈরি ইমেজ ভিত্তিক আলো (IBL) তথ্য ধারণকারী একটি পৃথক জিপ ফাইল। জিপ ফাইলটি আলোক গণনার জন্য ব্যবহৃত হয়, যেমন বস্তুর প্রতিফলন, এবং ভিজ্যুয়াল স্কাইবক্স টেক্সচারের জন্য নয়।

কেন এই পদ্ধতি?

এই আপডেট করা সম্পদ কাঠামো এই সুবিধা প্রদান করে:

  • ছোট ফাইলের আকার: পূর্ববর্তী পদ্ধতির তুলনায়, যেমন ভিজ্যুয়াল ডিসপ্লে এবং আলোর তথ্য উভয়ের জন্য একটি একক উচ্চ-রেজোলিউশন HDR স্কাইবক্স ফাইল ব্যবহার করা, এই পদ্ধতিটি ফাইলের আকার হ্রাস করে।
  • উন্নত কর্মক্ষমতা: আইবিএল ডেটা (জিপ ফাইলে) থেকে ভিজ্যুয়াল স্কাইবক্স টেক্সচার (জিএলবি-তে অন্তর্নির্মিত) আলাদা করা আপনাকে প্রতিটি উপাদানকে স্বাধীনভাবে অপ্টিমাইজ করতে দেয়। এর ফলে কম টেক্সচার মেমরি রিড ব্যান্ডউইথ এবং কম পাওয়ার খরচ হয়।
  • অপ্টিমাইজ করা আলো: আলোর মানচিত্রের জন্য বিশেষভাবে কম রেজোলিউশনের স্কাইবক্স রিসোর্স ব্যবহার করা বস্তুর উপর আলোর ভিজ্যুয়াল ফলাফলগুলিকে উল্লেখযোগ্যভাবে প্রভাবিত না করে কর্মক্ষমতার জন্য উপকারী।

আপনার অ্যাপে একটি স্থানিক পরিবেশ যোগ করার বিষয়ে আরও জানতে, আপনার অ্যাপে পরিবেশ যুক্ত করার বিষয়ে আমাদের নির্দেশিকা দেখুন।

আপনার জিএলবি অপ্টিমাইজ করুন

আপনার glb ব্যবহারকারীর চারপাশে জ্যামিতি উপস্থাপন করে এবং আপনি আপনার স্কাইবক্সের ভিজ্যুয়াল টেক্সচার অন্তর্ভুক্ত করেন। আপনার জ্যামিতির জন্য, আপনার ফাইলের আকার 80MB বা তার চেয়ে ছোট বজায় রাখার চেষ্টা করা উচিত।

এটি করার জন্য, উচ্চ গুণমান বজায় রেখে আপনার পরিবেশকে আরও দক্ষ করার জন্য অনেকগুলি সুযোগ রয়েছে। উদাহরণস্বরূপ, আপনার জালের ঘনত্ব ব্যবহারকারীর কাছে সবচেয়ে ঘন হওয়া উচিত এবং আপনি ব্যবহারকারী থেকে দূরে থাকা জালের ঘনত্ব কমাতে পারেন।

  • দূরত্ব দেখুন: Android XR-এ পরিবেশের জন্য দেখার দূরত্ব ব্যবহারকারীর বিন্দু থেকে 200m, এবং আপনার স্কাইবক্স টেক্সচার এই সীমাবদ্ধতা মেনে চলা উচিত। এটি একটি সর্বোত্তম অভিজ্ঞতা প্রদান করে কারণ প্যারালাক্স সেই দূরত্বে অদৃশ্য হয়ে যায়।
  • ব্যবহারকারীর উচ্চতা: ভূগোল পরিবর্তিত হতে পারে, তবে অ্যাপে বৃহত্তর UI উপাদানগুলির সাথে ক্লিপিং এড়াতে ব্যবহারকারীকে প্রায় 1.5 মিটার উচ্চতায় একটি ঢিপিতে অবস্থান করুন।

  • পলিকাউন্ট: আপনার glb ফাইলের পলিকাউন্টের প্রতি সংবেদনশীল হোন, কারণ একটি উচ্চ পলিকাউন্ট অপ্রয়োজনীয় শক্তি খরচ হতে পারে। জ্যামিতির প্রতিটি প্যাচ 10,000 শীর্ষবিন্দুর বেশি হওয়া উচিত নয়৷

  • KTX কম্প্রেশন: আপনার glb mipmaps এবং ktx2 টেক্সচার ব্যবহার করে তা নিশ্চিত করে আপনার glb ফাইলের GPU কর্মক্ষমতা অপ্টিমাইজ করুন।

আপনার IBL অপ্টিমাইজ করার জন্য আপনার যা প্রয়োজন

cmgen কমান্ড লাইন ইউটিলিটি ডাউনলোড করুন:

  • আপনি ফিলামেন্ট সংগ্রহস্থলে সর্বশেষ প্রকাশ পেতে পারেন।
  • আপনার প্ল্যাটফর্মের জন্য cmgen এর পূর্বনির্মাণ সংস্করণ ধারণকারী .tgz খুঁজুন এবং এটি বের করুন।
  • প্রি-বিল্ট টুলটি এক্সট্র্যাক্ট করা .tgz ফাইলের /bin ডিরেক্টরির অধীনে রয়েছে।

IBL-এর জন্য .zip ফাইল তৈরি করার জন্য প্রস্তুত করা সম্পদ:

  • একটি কম-রেজোলিউশন EXR যা আপনার স্কাইবক্স টেক্সচারের সাথে মেলে
    • আপনার স্কাইবক্স টেক্সচার ইনপুট একটি EXR ফাইল হওয়া উচিত। যদিও cmgen অন্যান্য ফর্ম্যাটগুলিকে সমর্থন করে, EXR গুলি সুপারিশ করা হয় কারণ তারা উচ্চ গতিশীল পরিসরের তথ্য প্রদান করে যা উচ্চ মানের IBL প্রদানের জন্য গুরুত্বপূর্ণ। PNG এর মত অন্যান্য ফরম্যাট ব্যবহার করলে কম সুনির্দিষ্ট আলো পাওয়া যায়।
    • সোর্স ইমেজ (EXR) এর একটি 2:1 অনুপাত এবং মাত্রা থাকতে হবে যা 2 এর পাওয়ার। 1024 x 512 পিক্সেলের একটি EXR ব্যবহার করুন। দ্রষ্টব্য: এটা মনে হতে পারে যে 1024 x 512 রেজোলিউশন খুব কম, কিন্তু এটি কর্মক্ষমতার জন্য উপকারী। IBL-এর জন্য, ব্যবহারকারীর জন্য ভিজ্যুয়াল ফলাফলগুলি অনেক বেশি IBL রেজোলিউশন সম্পদের অনুরূপ।
  • একটি কঠিন কালো png
    • এই সম্পদটি অবশ্যই 2:1 অনুপাত হতে হবে। 100 x 50 পিক্সেলের আকার ব্যবহার করুন।
    • এটি আইবিএল-এর সাথে একটি অপ্টিমাইজড টেক্সচার হিসেবে কাজ করে। ব্যবহারকারীরা এটি দেখবেন না, তাই আমরা কার্যক্ষমতার জন্য অপ্টিমাইজ করার উপর সম্পদকে ফোকাস করি।

নিম্নলিখিতটি 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 ..