স্থানিক ক্ষমতা ডিভাইসভেদে পরিবর্তিত হতে পারে এবং ব্যবহারকারীরা আপনার অ্যাপ বা সিস্টেমের সাথে ইন্টারঅ্যাক্ট করার সাথে সাথে পরিবর্তিত হতে পারে। এমনকি আপনার অ্যাপ নিজেই এগুলি পরিবর্তন করতে পারে—উদাহরণস্বরূপ, হোম স্পেস বা ফুল স্পেসে স্থানান্তর করা। সমস্যা এড়াতে, বর্তমান পরিবেশে কোন API গুলি সমর্থিত তা নির্ধারণ করার জন্য আপনার অ্যাপটিকে স্থানিক ক্ষমতা পরীক্ষা করতে হবে।
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 capabilities বর্তমানে উপলব্ধ তা জিজ্ঞাসা করুন।
-
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) ) { // ... }
ডিভাইসের ডিসপ্লে ক্ষমতা পরীক্ষা করতে ব্লেন্ড মোড ব্যবহার করুন
অ্যান্ড্রয়েড এক্সআর-এ, এক্সআর হেডসেট এবং তারযুক্ত এক্সআর চশমাগুলির বিভিন্ন হার্ডওয়্যার ক্ষমতা রয়েছে, বিশেষ করে তাদের ডিসপ্লের ধরণের ক্ষেত্রে। দৃশ্যমানতা সর্বাধিক করার জন্য আপনাকে আপনার অ্যাপের ইউআই এবং রেন্ডার করা বস্তুর রঙগুলি অভিযোজিত করতে হতে পারে, যা ডিসপ্লের ধরণ এবং ডিভাইস দ্বারা ব্যবহৃত পছন্দের ব্লেন্ড মোড দ্বারা প্রভাবিত হতে পারে। DisplayBlendMode এপিআই রেন্ডারিংয়ের জন্য ডিভাইসের ব্লেন্ড মোড ক্ষমতা প্রদান করে। বাস্তব জগতে ভার্চুয়াল সামগ্রী কীভাবে যুক্ত করা হয় তা নির্ধারণ করতে এই এপিআই ব্যবহার করুন।
এখানে কিছু ব্লেন্ড মোডের ধরণ সম্পর্কে সচেতন থাকা প্রয়োজন:
-
ADDITIVE: লাল, সবুজ এবং নীল প্রতিটি উপাদানের জন্য পিক্সেল মান যোগ করে ভার্চুয়াল সামগ্রী বাস্তব জগতে যোগ করা হয়। আলফা উপেক্ষা করা হয় এবং কালো পিক্সেলগুলি স্বচ্ছ দেখায়। -
ALPHA_BLEND: আলফা কম্পোনেন্টের উপর ভিত্তি করে পিক্সেল মানগুলিকে আলফা মিশ্রিত করে বাস্তব জগতে ভার্চুয়াল কন্টেন্ট যোগ করা হয়। -
NO_DISPLAY: ডিভাইসে ব্লেন্ডিং সমর্থিত নয়।
Jetpack XR Runtime লাইব্রেরি থেকে XrDevice.getCurrentDevice(session).getPreferredDisplayBlendMode() ব্যবহার করে কোন ধরণের ব্লেন্ড মোড ব্যবহার করা হচ্ছে তা পরীক্ষা করুন এবং প্রয়োজনে সমন্বয় করুন।
আরো দেখুন
- একটি সেশন তৈরি করুন
- এইচএসএম এবং এফএসএম এর মধ্যে রূপান্তর
- আপনার অ্যাপে স্থানিক পরিবেশ যোগ করুন
- আপনার অ্যাপে 3D মডেল যোগ করুন