ডিভাইস অনুযায়ী স্পেশিয়াল ক্ষমতা আলাদা হতে পারে এবং ব্যবহারকারী আপনার অ্যাপ বা সিস্টেমের সাথে ইন্টার্যাক্ট করলে তা পরিবর্তিত হতে পারে। এমনকি আপনার অ্যাপও এগুলি পরিবর্তন করতে পারে—যেমন, হোম স্পেস বা ফুল স্পেসে সরানো। সমস্যা এড়াতে, বর্তমান পরিবেশে কোন API কাজ করে তা নির্ধারণ করার জন্য আপনার অ্যাপকে স্পেশিয়াল ক্ষমতা চেক করতে হবে।
XR-এর জন্য Jetpack Compose ব্যবহার করে স্পেশিয়াল ক্ষমতা চেক করা
XR-এর জন্য Jetpack Compose স্পেশিয়াল ক্ষমতা চেক করার জন্য কম্পোজিশন লোকাল তৈরি করে। স্পেশিয়াল UI, স্পেশিয়াল অডিও, এনভায়রনমেন্ট, পাসথ্রু বা 3D কন্টেন্ট চালু আছে কিনা তা চেক করতে এটি ব্যবহার করুন।
নিম্নলিখিত স্পেশিয়াল ক্ষমতা বর্তমানে উপলভ্য কিনা তা চেক করতে
আপনি LocalSpatialCapabilities.current ব্যবহার করতে পারবেন:
isSpatialUiEnabled: অ্যাপ্লিকেশনটি স্পেশিয়াল UI এলিমেন্ট (যেমন,SpatialPanel) তৈরি করতে পারে কিনা তা নির্দেশ করে।isContent3dEnabled: অ্যাপ্লিকেশনটি 3D অবজেক্ট তৈরি করতে পারে কিনা তা নির্দেশ করে।isAppEnvironmentEnabled: অ্যাপ্লিকেশনটি এনভায়রনমেন্ট সেট করতে পারবে কিনা তা নির্দেশ করে।isPassthroughControlEnabled: অ্যাপ্লিকেশন পাসথ্রু স্ট্যাটাস নিয়ন্ত্রণ করতে পারবে কিনা তা নির্দেশ করে।isSpatialAudioEnabled: অ্যাপ্লিকেশনটি স্পেশিয়াল অডিও ব্যবহার করতে পারবে কিনা তা নির্দেশ করে।
স্পেশিয়াল UI চালু আছে কিনা তা কীভাবে চেক করবেন তা নিম্নলিখিত উদাহরণ থেকে দেখুন:
if (LocalSpatialCapabilities.current.isSpatialUiEnabled) { Subspace { SpatialPanel( modifier = SubspaceModifier .width(1488.dp) .fillMaxHeight() ) { AppContent() } } } else { AppContent() }
SceneCore ব্যবহার করে স্পেশিয়াল ক্ষমতা চেক করুন
SceneCore লাইব্রেরি ব্যবহার করার সময়, আপনাকে একটি সেশন তৈরি করতে হবে। সেশন তৈরি হয়ে গেলে, বর্তমানে কোন কোন স্পেশিয়াল ক্ষমতা উপলভ্য তা কোয়েরি করতে সেশনের
scene থেকে spatialCapabilities ব্যবহার করুন।
SPATIAL_3D_CONTENT: অ্যাক্টিভিটি 3D কন্টেন্ট তৈরি করতে পারে।APP_ENVIRONMENT: অ্যাক্টিভিটি তার নিজস্ব এনভায়রনমেন্ট সেট করতে পারে।EMBED_ACTIVITY: অ্যাক্টিভিটি স্পেশালভাবে অন্য অ্যাক্টিভিটি এম্বেড করতে পারে।PASSTHROUGH_CONTROL: অ্যাক্টিভিটি পাসথ্রু চালু বা বন্ধ করতে পারে।SPATIAL_AUDIO: অ্যাক্টিভিটি স্পেশিয়াল অডিও ব্যবহার করতে পারে।SPATIAL_UI: অ্যাক্টিভিটি নিজেকে স্পেশিয়ালাইজ করতে পারে (যেমন, স্পেশিয়াল প্যানেল যোগ করা)।
এছাড়াও, আপনি কলব্যাক সাবস্ক্রাইব করার বিকল্প বেছে নিতে পারেন,
addSpatialCapabilitiesChangedListener যা স্পেশিয়াল
ক্ষমতা পরিবর্তন হলে আপনাকে বিজ্ঞপ্তি পাঠায়।
// Example 1: check if enabling passthrough mode is allowed if (xrSession.scene.spatialCapabilities.contains( SpatialCapability.PASSTHROUGH_CONTROL ) ) { xrSession.scene.spatialEnvironment.preferredPassthroughOpacity = 1f } // Example 2: multiple capability flags can be checked simultaneously: if (xrSession.scene.spatialCapabilities.contains(SpatialCapability.PASSTHROUGH_CONTROL) && xrSession.scene.spatialCapabilities.contains(SpatialCapability.SPATIAL_3D_CONTENT) ) { // ... }
ডিভাইসের ডিসপ্লে ক্ষমতা চেক করতে ব্লেন্ড মোড ব্যবহার করুন
Android XR-এ, XR হেডসেট এবং তারযুক্ত XR গ্লাসের বিভিন্ন হার্ডওয়্যার
ক্ষমতা রয়েছে, বিশেষ করে তাদের ডিসপ্লে টাইপ সম্পর্কিত। দৃশ্যমানতা সর্বাধিক করতে, আপনাকে হয়ত
আপনার অ্যাপের UI এবং রেন্ডার করা অবজেক্টের রঙ অ্যাডাপ্ট করতে হবে, যা
ডিসপ্লের ধরন এবং ডিভাইসের ব্যবহার করা পছন্দের ব্লেন্ড মোড দ্বারা প্রভাবিত
হতে পারে। DisplayBlendMode API রেন্ডারিংয়ের জন্য ডিভাইসের ব্লেন্ড মোড
ক্ষমতা প্রদান করে। ভার্চুয়াল কন্টেন্ট কীভাবে বাস্তব দুনিয়ায় যোগ করা হয় তা নির্ধারণ করতে এই API ব্যবহার করুন।
এখানে কিছু ব্লেন্ড মোডের ধরন দেওয়া হল যেগুলি সম্পর্কে আপনাকে জানতে হবে:
ADDITIVE: লাল, সবুজ ও নীল রঙের প্রতিটি উপাদানের জন্য পিক্সেল ভ্যালু যোগ করে ভার্চুয়াল কন্টেন্ট বাস্তব দুনিয়ায় যোগ করা হয়। আলফা উপেক্ষা করা হয়, এবং কালো পিক্সেল স্বচ্ছ হিসেবে দেখানো হয়।ALPHA_BLEND: আলফা কম্পোনেন্টের উপর ভিত্তি করে পিক্সেল ভ্যালু আলফা ব্লেন্ডিংয়ের মাধ্যমে বাস্তব জগতে ভার্চুয়াল কন্টেন্ট যোগ করা হয়।NO_DISPLAY: ডিভাইসে ব্লেন্ডিং কাজ করে না।
Jetpack XR রানটাইম লাইব্রেরি থেকে
XrDevice.getCurrentDevice(session).getPreferredDisplayBlendMode() ব্যবহার করে চেক করুন যে কোন ধরনের ব্লেন্ড মোড ব্যবহার করা হচ্ছে
এবং প্রয়োজন অনুযায়ী অ্যাডজাস্ট করুন।
এছাড়াও দেখুন
- সেশন তৈরি করা
- HSM ও FSM-এর মধ্যে ট্রানজিশন
- আপনার অ্যাপে স্পেশিয়াল এনভায়রনমেন্ট যোগ করুন
- আপনার অ্যাপে 3D মডেল যোগ করুন