Jetpack XR के लिए ARCore

परसेप्शन की सुविधाओं की मदद से, डिजिटल कॉन्टेंट को असल दुनिया में लाएं.
नया अपडेट रिलीज़ किया गया जांचा और परखा हुआ वर्शन रिलीज़ कैंडिडेट बीटा रिलीज़ ऐल्फ़ा रिलीज़
12 दिसंबर, 2024 - - - 1.0.0-alpha01

डिपेंडेंसी का एलान करना

Jetpack XR के लिए ARCore पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की मेवन रिपॉज़िटरी पढ़ें.

अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:

ग्रूवी

dependencies {
    implementation "androidx.xr.arcore:arcore:1.0.0-alpha01"
}

Kotlin

dependencies {
    implementation("androidx.xr.arcore:arcore:1.0.0-alpha01")
}

डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.

सुझाव

आपके सुझाव, शिकायत या राय से हमें Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या इस लाइब्रेरी को बेहतर बनाने के लिए आपके पास कोई सुझाव है, तो हमें बताएं. नई लाइब्रेरी बनाने से पहले, कृपया इस लाइब्रेरी में मौजूद मौजूदा समस्याओं पर एक नज़र डालें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या पर अपना वोट जोड़ा जा सकता है.

नई समस्या बनाना

ज़्यादा जानकारी के लिए, समस्या ट्रैकर का दस्तावेज़ देखें.

संस्करण 1.0

वर्शन 1.0.0-alpha01

12 दिसंबर, 2024

androidx.xr.arcore:arcore-* 1.0.0-alpha01 रिलीज़ हो गया है.

शुरुआती रिलीज़ की सुविधाएं

मौजूदा ARCore लाइब्रेरी से प्रेरित, ARCore for Jetpack XR लाइब्रेरी, डिजिटल कॉन्टेंट को असल दुनिया के साथ ब्लेंड करने की सुविधाएं देती है. इस लाइब्रेरी में, मोशन ट्रैकिंग, लगातार काम करने वाले ऐंकर, हिट टेस्टिंग, और सेमेटिक लेबल (उदाहरण के लिए, फ़्लोर, दीवारें, और टेबलटॉप) की मदद से प्लैन की पहचान करने की सुविधा शामिल है. Jetpack XR के लिए ARCore के साथ काम करने के बारे में ज़्यादा जानने के लिए, डेवलपर गाइड देखें.

  • Session: Jetpack XR के लिए ARCore, अपनी सुविधाओं को बेहतर बनाने के लिए, Jetpack XR Runtime का इस्तेमाल करता है. Jetpack XR के लिए ARCore के ज़्यादातर एपीआई के साथ इंटरैक्ट करने के लिए, आपको सेशन का इस्तेमाल करना होगा. इसलिए, कृपया इसके दस्तावेज़ देखें.

  • Plane: अपने आस-पास की दुनिया को समझने के लिए, प्लेन का इस्तेमाल करें. हर प्लेन का एक Label होता है, जो उसके बारे में सेमेटिक तरीके से बताता है. subscribe का इस्तेमाल करके, हाल ही में ट्रैक किए गए विमानों के बारे में सूचनाएं पाएं. इसके अलावा, state का इस्तेमाल करके, किसी खास विमान में हुए बदलावों के बारे में सूचनाएं पाएं.

  • Anchor: वर्चुअल ऑब्जेक्ट और असल जगह के बीच का लिंक. ऐंकर को स्पेस में किसी खास जगह (create का इस्तेमाल करके) या Trackable (createAnchor का इस्तेमाल करके) से अटैच किया जा सकता है.

    • सभी सेशन में ऐंकर का फिर से इस्तेमाल किया जा सकता है. इन्हें सेव करने के लिए persist, गिनती करने के लिए getPersistedAnchorUuids, और वापस पाने के लिए load का इस्तेमाल किया जा सकता है. इस्तेमाल न होने पर, उन्हें unpersist करना न भूलें.

    • ऐंकर, Jetpack XR के लिए ARCore और Jetpack SceneCore के बीच इंटरऑपरेबल होते हैं. किसी ऐंकर का इस्तेमाल करके AnchorEntity बनाया जा सकता है. इसके अलावा, अगर आपके पास कोई मौजूदा AnchorEntity है, तो उसके बैकिंग ऐंकर को वापस पाने के लिए getAnchor का इस्तेमाल किया जा सकता है.

    • hitTest का इस्तेमाल करके, उपयोगकर्ता के साथ स्वाभाविक तरीके से इंटरैक्ट करें. हिट टेस्ट, Ray का इस्तेमाल करके यह पता लगाता है कि वह किस कॉन्टेंट से इंटरसेक्शन करता है. साथ ही, उस जगह से Anchor बनाता है. InputEvent से hitTest करें.

ऐसी समस्याएं जिनकी जानकारी पहले से है

  • unpersist को कॉल करने और getPersistedAnchorUuids से मिले नतीजों से उसके यूयूआईडी को हटाने में कुछ समय लग सकता है.

  • create इस बात की पुष्टि नहीं करेगा कि सिस्टम में नए ऐंकर दिखाने के लिए ज़रूरी संसाधन हैं या नहीं. बहुत ज़्यादा ऐंकर बनाने पर, ऐप्लिकेशन क्रैश हो सकता है.

  • फ़िलहाल, ऐसे ऐंकर को सेव नहीं किया जा सकता जिसे पहले सेव किया गया था और फिर सेव नहीं किया गया था.

  • एम्युलेटर में इसका इस्तेमाल किया जा सकता है. हालांकि, हो सकता है कि इसका व्यवहार किसी असल डिवाइस पर चलने के मुकाबले उतना बेहतर न हो. खास तौर पर, create को कॉल करने पर, नेटिव कोड की गड़बड़ी की वजह से कॉल पूरा नहीं हो सकता और गतिविधि तुरंत बंद हो सकती है.

  • कुछ मामलों में, persist को कॉल करते समय, गड़बड़ी से RuntimeException दिख सकता है. साथ ही, “एंकर सेव नहीं किया गया” मैसेज दिख सकता है. ऐसे में, फ़ंक्शन काम करेगा और ऐंकर सेव हो जाएगा. हमारा सुझाव है कि इस समस्या को हल करने के लिए, persist को कॉल करने के लिए, try ब्लॉक का इस्तेमाल करें.