Jetpack SceneCore
| नया अपडेट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा रिलीज़ |
|---|---|---|---|---|
| 25 मार्च, 2026 | - | - | - | 1.0.0-alpha13 |
डिपेंडेंसी का एलान करना
XR SceneCore पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.
अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:
Groovy
dependencies { implementation "androidx.xr.scenecore:scenecore:1.0.0-alpha13" // Optional dependencies for asynchronous conversions implementation "androidx.xr.scenecore:scenecore-guava:1.0.0-alpha13" // Use to write unit tests testImplementation "androidx.xr.scenecore:scenecore-testing:1.0.0-alpha13" }
Kotlin
dependencies { implementation("androidx.xr.scenecore:scenecore:1.0.0-alpha13") // Optional dependencies for asynchronous conversions implementation("androidx.xr.scenecore:scenecore-guava:1.0.0-alpha13") // Use to write unit tests testImplementation("androidx.xr.scenecore:scenecore-testing:1.0.0-alpha13") }
डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.
सुझाव/राय दें या शिकायत करें
आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या आपके पास इस लाइब्रेरी को बेहतर बनाने के लिए सुझाव हैं, तो हमें बताएं. कृपया नई समस्या सबमिट करने से पहले, इस लाइब्रेरी में शामिल मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.
ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.
वर्शन 1.0
वर्शन 1.0.0-alpha13
25 मार्च, 2026
androidx.xr.scenecore:scenecore-*:1.0.0-alpha13 रिलीज़ हो गया है. वर्शन 1.0.0-alpha13 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
Session.createसेunscaledGravityAlignedActivitySpaceफ़्लैग हटाया गया.ActivitySpaceअब हमेशा बिना स्केल किए हुए और ग्रेविटी के हिसाब से अलाइन किए जाते हैं. (If6f11, b/458173423)GltfModelEntityसे बंद किए गएsetMaterialOverrideऔरclearMaterialOverrideफ़ंक्शन हटा दिए गए हैं. अब इन्हें अलग-अलगGltfModelNodeपर कॉल किया जाता है. (I2e5d2)PanelEntityमेंtransformPixelCoordinatesToLocalPositionऔरtransformNormalizedCoordinatesToLocalPositionको जोड़ा गया है. साथ ही, एक्सपेरिमेंट के तौर पर इस्तेमाल किए जाने वाले उन तरीकों को हटा दिया गया है जोVector3की पोज़िशन के बजाय पोज़ की जानकारी देते थे. (Ib6960, b/460123106, b/458333591)GltfAnimationमें glTF ऐनिमेशन को कंट्रोल करने के लिए,GltfAnimationएपीआई जोड़े गए.SceneCore(I2c172, b/466065486, b/465819070, b/465818617)ScenePose.activitySpacePoseका नाम बदलकरScenePose.poseInActivitySpaceकिया गया (I8f175, b/427822261)- Scenecore Projected Runtime Implementation जोड़ा गया (I9c4ab, b/476440158)
- मुख्य पैनल की इकाई का साइज़ बदलते समय, हो सकता है कि वह
ActivitySpaceऑरिजिन पर अपनी जगह बदल ले. पैनल को उसकी मूल जगह पर वापस लाने के लिए, मैन्युअल तरीके से या प्रोग्राम के हिसाब से पैनल की जगह बदलने के अलावा कोई और तरीका नहीं है. इस गड़बड़ी को आने वाले वर्शन में ठीक कर दिया जाएगा. (b/489427007). - कुछ मामलों में,
SurfaceEntityऔर पैनल के अलावा अन्य तरह की इकाइयों के लिए,MovableComponentका विकल्प नहीं दिखता है.MovableComponent.sizeको साफ़ तौर पर सेट करने पर, अफ़ोर्डेंस दिखेगा. इस बग को आने वाले वर्शन (b/490983469) में ठीक कर दिया जाएगा.
वर्शन 1.0.0-alpha12
25 फ़रवरी, 2026
androidx.xr.scenecore:scenecore-*:1.0.0-alpha12 रिलीज़ हो गया है. वर्शन 1.0.0-alpha12 में ये बदलाव शामिल हैं.
मौजूदा समस्याएं
- एंकर की गई इकाइयां, कुछ सेकंड के बाद अपनी एंकर की गई जगह से गतिविधि वाली जगह पर स्नैप हो सकती हैं.
एपीआई में हुए बदलाव
ActivitySpace.addOnSpaceUpdatedListenerऔरActivitySpace.removeOnSpaceUpdatedListenerका नाम बदलकरaddOnOriginChangedListenerऔरremoveOnOriginChangedListenerकर दिया गया है.AnchorEntity.setOnSpaceUpdatedListenerका नाम बदलकरsetOnOriginChangedListenerकर दिया गया है. (I5d8fb)FakeEntityमें सार्वजनिक नाम वाली प्रॉपर्टी जोड़ी गई औरFakePanelEntityपर व्यू को सार्वजनिक किया गया. (Ifa1f9)
गड़बड़ियां ठीक की गईं
- नई सिस्टम इमेज (I57d04) पर पिक्सल डेंसिटी के कैलकुलेशन से जुड़ी समस्या ठीक की गई
वर्शन 1.0.0-alpha11
28 जनवरी, 2026
androidx.xr.scenecore:scenecore-*:1.0.0-alpha11 रिलीज़ हो गया है. वर्शन 1.0.0-alpha11 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
PerceivedResolutionResult.InvalidCameraViewका नाम बदलकरPerceivedResolutionResult.InvalidRenderViewpointकर दिया गया है, क्योंकिgetPerceivedResolutionएपीआई अबCameraViewScenePoseके बजाय ARCore केRenderViewpointएपीआई पर काम करते हैं. यह नाम, नए तरीके को बेहतर तरीके से दिखाता है. (I8c967, b/446989745, b/419311998)PanelEntity/SurfaceEntity.getPerceivedResolutionतरीके अब डेवलपर की ओर से दिए गएRenderViewpointको आर्ग्युमेंट के तौर पर लेते हैं. इससे पहले, रनटाइम मनमाने तरीके सेRenderViewpointचुनता था, जिसका इस्तेमाल रिज़ॉल्यूशन के हिसाब से परफ़ॉर्मेंस का अनुमान लगाने के लिए किया जाता था. (I8c967, b/446989745, b/419311998)SpatialUser,ScenePose.Head, औरScenePose.CameraViewको हटा दिया गया है. इन एपीआई की सुविधाओं को ARCore for Jetpack XR में मौजूदArDeviceऔरRenderViewpointएपीआई के ज़रिए ऐक्सेस किया जा सकता है. उपयोगकर्ता के सिर या बाईं या दाईं आंख से जुड़ेScenePoseको पाने के लिए, डेवलपर ARCore API का इस्तेमाल करके सही पोज़ के साथPerceptionSpace.getScenePoseFromPerceptionPoseका इस्तेमाल कर सकते हैं. (I2f69c, b/446989745)
वर्शन 1.0.0-alpha10
03 दिसंबर, 2025
androidx.xr.scenecore:scenecore-*:1.0.0-alpha10 रिलीज़ हो गया है. वर्शन 1.0.0-alpha10 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
transformPixelCoordinatesToPoseऔरtransformNormalizedCoordinatesToPoseकोPanelEntity(I462b3) में जोड़ा गयाSceneCore(I570b9) में मौजूद लॉजिक के आधार पर,SceneCoreRuntime में Utils नाम की हेल्पर क्लास जोड़ी गई
गड़बड़ियां ठीक की गईं
- सेशन बंद होने पर
SpatialModeChangeEventमिलने पर क्रैश होने की समस्या को ठीक किया गया है (If44e8) - उस गड़बड़ी को ठीक कर दिया गया है जिसकी वजह से, किसी गतिविधि को छोड़ने या उसमें फिर से शामिल होने पर
IllegalStateExceptionदिख सकता था. (Ibff1c)
वर्शन 1.0.0-alpha09
19 नवंबर, 2025
androidx.xr.scenecore:scenecore-*:1.0.0-alpha09 रिलीज़ हो गया है. वर्शन 1.0.0-alpha09 में ये बदलाव शामिल हैं.
नई सुविधाएं
- यह एक एपीआई जोड़ता है. इसकी मदद से,
ScenePoseको वापस पाया जा सकता है. यह परसेप्शन स्पेस के ऑरिजिन पोज़ और परसेप्शन स्पेस के ऑरिजिन के हिसाब से पोज़ को दिखाता है. (I5b50a) getGravityAlignedPoseफ़ंक्शन जोड़ा गया. ग्रैविटी के हिसाब से अलाइन की गई पोज़ में, रोटेशन के पिच और रोल को अनदेखा किया जाता है. (I5ae21)AnchorEntity.Stateकॉन्स्टेंट टाइप को Ints से बदलकर State subtypes कर दिया गया है. (Ib0c49)getChildren()को Entity इंटरफ़ेस में जोड़ा गया.MainPanelEntityलाइफ़साइकल को अपडेट किया गया. (Ia69d6)
एपीआई में हुए बदलाव
PointerCaptureComponent.PointerCaptureStateकॉन्स्टेंट टाइप को Ints से बदलकरPointerCaptureStateसबटाइप कर दिया गया है. (Ic888a)Scene.spatialCapabilitiesअब इंट फ़ील्ड के बजायSet<SpatialCapability>टाइप का है.SpatialCapabilityकॉन्स्टेंट के नाम बदल दिए गए हैं. (I9c109)SurfaceEntityकॉन्स्टेंट टाइप के नाम बदल दिए गए हैं. साथ ही, इन्हें Ints से बदलकरSurfaceEntityसबटाइप कर दिया गया है. (I419ed)SpatializerConstantकॉन्स्टेंट टाइप के नाम बदल दिए गए हैं. साथ ही, इन्हें Ints से बदलकरSpatializerConstantसबटाइप कर दिया गया है. (Ia0e18)TextureSamplerकॉन्स्टेंट टाइप के नाम बदल दिए गए हैं. साथ ही, इन्हें Ints से बदलकरTextureSamplerसबटाइप कर दिया गया है. (I44078)SpatialVisibilityकॉन्स्टेंट टाइप को Ints से बदलकरSpatialVisibilityसबटाइप कर दिया गया है. (I70739)ResizeEvent.ResizeStateकॉन्स्टेंट टाइप के नाम बदल दिए गए हैं. साथ ही, इन्हें Ints से बदलकरResizeStateसबटाइप कर दिया गया है. (I384d5)InputEventकॉन्स्टेंट टाइप के नाम बदल दिए गए हैं. साथ ही, इन्हें Ints से बदलकर, इनके संबंधित एनक्लोज़िंग टाइप से इनहेरिट करने के लिए बदल दिया गया है. (I82817)GltfModelEntity.AnimationStateकॉन्स्टेंट टाइप को Ints से बदलकरAnimationStateसबटाइप कर दिया गया है. (I24f4e)AlphaModeकॉन्स्टेंट टाइप के नाम बदल दिए गए हैं. साथ ही, इन्हें Ints से बदलकरAlphaModeसबटाइप कर दिया गया है. (I27b56)Spaceकॉन्स्टेंट टाइप को Ints से बदलकर Space के सबटाइप कर दिया गया है. (I9255b)ScenePose.hitTestऔर इससे जुड़े तरीके, अब कोई इंटरसेक्शन न मिलने परnullदिखाते हैं. इसके बजाय, वे शून्यhitPositionके साथHitTestResultदिखाते थे.HitTestResult.hitPositionअब नल नहीं हो सकता. (I1400a)ActivityPoseके रेफ़रंस कोScenePoseमें बदला गया. (I7fe43)
वर्शन 1.0.0-alpha08
22 अक्टूबर, 2025
androidx.xr.scenecore:scenecore-*:1.0.0-alpha08 रिलीज़ हो गया है. वर्शन 1.0.0-alpha08 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
ActivityPanelEntity.moveActivityका नाम बदलकरtransferActivityकर दिया गया (I273c5, b/430332856)
गड़बड़ियां ठीक की गईं
:xr:scenecore:scenecore-spatial-renderingऔर:xr:scenecore:scenecore-spatial-coreको:xr:scenecore:scenecore(I6ab65, b/447000520) के लिए, लागू करने से जुड़ी डिपेंडेंसी के तौर पर जोड़ा गया- अगर सेशन खत्म होने के बाद
session.sceneको ऐक्सेस किया जाता है, तो अपवाद दिखता है. (I77e6f)
वर्शन 1.0.0-alpha07
24 सितंबर, 2025
androidx.xr.scenecore:scenecore:1.0.0-alpha07, androidx.xr.scenecore:scenecore-guava:1.0.0-alpha07, और androidx.xr.scenecore:scenecore-testing:1.0.0-alpha07 रिलीज़ किए जाते हैं. वर्शन 1.0.0-alpha07 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
fixedAspectRatioका नाम बदलकरisFixedAspectRatioEnabledकर दिया गया है. साथ ही, इसे बूलियन प्रॉपर्टी बना दिया गया है (I5c4e8, b/440588971)Scenecoreनकली प्रॉडक्ट की पहचान करने की सुविधा अबxr:scenecore:scenecore-testingमॉड्यूल में उपलब्ध है. (Idd951)shouldAutoHideContentका नाम बदलकरisAutoHideContentWhileResizingEnabledऔरshouldAlwaysShowOverlayका नाम बदलकरisAlwaysShowOverlayEnabledकर दिया गया (I97c36, b/432335421)- पढ़ने में आसानी के लिए,
SceneCoreTextureSamplerकॉन्स्टेंट अपडेट किए गए हैं. उदाहरण के लिए,TextureSampler.MinFilter.LINEARअबTextureSampler.MIN_FILTER_LINEARहै (Ib159c) - सीन के
setKeyEntityसेटर कोkeyEntityवैरिएबल में मर्ज कर दिया गया है.AnchorEntityकोAnchorEntityजैसी ऐसी इकाई पर सेट करने से, बूलियन फ़ॉल्स वैल्यू के बजायIllegalArgumentExceptionदिखेगा.keyEntity(I62080, b/428721695, b/422215745) - सीन के
SpatialModeChangeListenerवैरिएबल कोsetSpatialModeChangedListenerसे बदल दिया गया है. यहSpatialModeChangedListenerके बजायConsumer<SpatialModeChangeEvent>लेता है.setSpatialModeChangedListenerअब वैकल्पिक तौर पर, एक्ज़ीक्यूटर को इनपुट के तौर पर ले सकता है. (I62080, b/428721695, b/422215745) ActivityPanelEntity.startActivityसेbundleपैरामीटर हटाया गया (I64344, b/430332856, b/430333040)SpatializerConstants.SOURCE_TYPE_BYPASSका नाम बदलकरSpatializerConstants.SOURCE_TYPE_DEFAULTकर दिया गया. (Ifc7fe, b/422215565)SpatialSoundPool.PLAY_FAILEDकॉन्स्टेंट जोड़ा गया. (Ifc7fe, b/422215565)SpatialSoundPool.playतरीकों में डिफ़ॉल्ट तर्क जोड़े गए. (Ifc7fe, b/422215565)SpatialAudioTrackBuilderमें सेटर की रिटर्न वैल्यू हटाई गई. (Ifc7fe, b/422215565)- SurfaceEntity में हुए बदलाव
SurfaceEntity.CanvasShapeका नाम बदलकरShapeकर दिया गयाSurfaceEntity.CanvasShape.Vr180Hemisphereका नाम बदलकरHemisphereकर दिया गयाSurfaceEntity.CanvasShape.Vr360Sphereका नाम बदलकरSphereकर दिया गयाSurfaceEntity.EdgeFeatheringParams.SmoothFeatherका नाम बदलकरRectangleFeatherकर दिया गयाSurfaceEntity.EdgeFeathingParams.SolidEdgeका नाम बदलकरNoFeatheringकर दिया गयाSurfaceEntity.ContentSecurityLevelका नाम बदलकरSurfaceProtectionकर दिया गयाSurfaceEntity.ContentSecurityLevel.{values}नेSURFACE_PROTECTION_प्रीफ़िक्स जोड़ा.SurfaceEntity.SuperSampling.{$values}नेSUPER_SAMPLING_प्रीफ़िक्स जोड़ाSurfaceEntity.StereoMode.{values}नेSTEREO_MODE_प्रीफ़िक्स जोड़ाSurfaceEntity.ContentColorMetadata.maxCLLका नाम बदलकरmaxContentLightLevelकर दिया गया (I7eb5f, b/422216050, b/427529950)
launchActivityका नाम बदलकरstartActivityकर दिया गया (I7db90, b/430332856)Scene.activitySpaceRootको हटा दिया गया है. इसके बजाय,Scene.activitySpaceका इस्तेमाल करें. (I05ee8, b/378706624, b/422215745)configureBundleForFullSpaceModeLaunchऔरconfigureBundleForFullSpaceModeLaunchWithEnvironmentInheritedका नाम बदलकर, क्रमशःcreateBundleForFullSpaceModeLaunchऔरcreateBundleForFullSpaceModeLaunchWithEnvironmentInheritedकर दिया गया है. साथ ही, इन्हें LaunchUtils.kt फ़ाइल में टॉप-लेवल के तरीकों के तौर पर ले जाया गया है. ये सेशन को पहले पैरामीटर के तौर पर लेते हैं (I64a2c, b/437186050)GroupEntityफ़ैक्ट्री अब Entity के बजायGroupEntityटाइप दिखाता है. (I66042)
गड़बड़ियां ठीक की गईं
- जब डिस्पोज़ करने के बाद किसी एंटिटी इंस्टेंस का इस्तेमाल किया जाता है, तब
IllegalStateExceptionको थ्रो करें. (I90990, b/427314036, b/432063442)
वर्शन 1.0.0-alpha06
13 अगस्त, 2025
androidx.xr.scenecore:scenecore:1.0.0-alpha06, androidx.xr.scenecore:scenecore-guava:1.0.0-alpha06, और androidx.xr.scenecore:scenecore-testing:1.0.0-alpha06 रिलीज़ किए जाते हैं. वर्शन 1.0.0-alpha06 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
SceneCore,BaseEntity, औरBaseScenePoseएपीआई पर लगी पाबंदी हटाना (88c0ff6)
वर्शन 1.0.0-alpha05
30 जुलाई, 2025
androidx.xr.scenecore:scenecore-guava:1.0.0-alpha05, androidx.xr.scenecore:scenecore-testing:1.0.0-alpha05, और androidx.xr.scenecore:scenecore:1.0.0-alpha05 रिलीज़ किए जाते हैं. वर्शन 1.0.0-alpha05 में ये बदलाव शामिल हैं.
नई सुविधाएं
- पैनल की इकाइयों और
SurfaceEntitiesमें, परसीव्ड रिज़ॉल्यूशन एपीआई जोड़ा गया. (I118f6) PerceivedResolutionHSM में गतिविधि के मुख्य पैनल के रिज़ॉल्यूशन पर नज़र रखने के लिए, Scene.kt में कॉलबैक के तरीके जोड़े गए. (I58084)SurfaceEntity- वीडियो बनाते समय सुपर सैंपलिंग का अनुरोध करने के लिए, ऐप्लिकेशन में सहायता जोड़ी गई. इससे ऐप्लिकेशन, एंटी-एलियासिंग के लिए सुपर सैंपलिंग फ़िल्टर का इस्तेमाल कर पाते हैं. (I06913)ActivitySpaceमेंrecommendedContentBoxInFullSpaceप्रॉपर्टी जोड़ी गई. यह फ़ुल स्पेस मोड में, कॉन्टेंट को रखने के लिए सुझाया गया बॉक्स दिखाता है. (I4cd6f)- मूवेबल मॉडिफ़ायर के लिए ओवरलोड किया गया कंस्ट्रक्टर उपलब्ध कराया गया है. इससे ऐंकरिंग की जा सकती है. (Ic0c70)
एपीआई में हुए बदलाव
इस रिलीज़ के लिए, SceneCore में एपीआई से जुड़े कई बदलाव किए गए हैं. कई क्लास के नाम बदल दिए गए हैं और/या उन्हें अलग-अलग मॉड्यूल में ले जाया गया है. साथ ही, ज़्यादातर getter/setter तरीकों को Kotlin प्रॉपर्टी से बदल दिया गया है. हमें उम्मीद है कि पहली बीटा रिलीज़ तक, एपीआई में कुछ ऐसे बदलाव होंगे जिनसे मौजूदा एपीआई काम करना बंद कर सकते हैं. हालांकि, ये बदलाव ज़्यादा नहीं होंगे और इनसे ज़्यादा समस्याएं भी नहीं आएंगी.
- इन क्लास और इंटरफ़ेस के नाम बदले गए हैं और/या इन्हें दूसरी जगह ले जाया गया है:
androidx.xr.scenecore.PixelDimensionsसेandroidx.xr.runtime.math.IntSize2d;androidx.xr.scenecore.Dimensionsसेandroidx.xr.runtime.math.FloatSize3d;androidx.xr.scenecore.ActivityPoseसेScenePose,androidx.xr.scenecore.ContentlessEntityसेGroupEntity,androidx.xr.scenecore.PlaneTypeसेPlaneOrientation;androidx.xr.scenecore.PlaneSemanticसेPlaneSemanticType. (Ifd405)(I3b622) (If534d) Sceneकी कई प्रॉपर्टी के लिए, सेटर को निजी बना दिया गया है. इनका इस्तेमालSceneCoreक्लाइंट को नहीं करना चाहिए:activitySpace,activitySpaceRoot,mainPanelEntity,perceptionSpace,spatialCapabilities,spatialEnvironment, औरspatialUser. (I2f506)- इकाई में: इन प्रॉपर्टी को बदल दिया गया है:
get/setParent(),setContentDescription;Entity.is/setHidden()का इस्तेमाल अब नहीं किया जा सकता, इसकी जगहEntity.is/setEnabledका इस्तेमाल करें. (Ibc4c6) androidx.xr.scenecore.BasePanelEntityक्लास को हटा दिया गया है. इसके बजाय, सीधेPanelEntityका इस्तेमाल करें.PanelEntityके लिए, गेटर और सेटर को प्रॉपर्टी से बदल दिया गया है.PanelEntity.sizeप्रॉपर्टी कोFloat3dSizeसे बदलकरFloat2dSizeकर दिया गया है. इस्तेमाल न किए जा रहेandroidx.xr.scenecore.PanelEntity.getPixelDimensionsतरीके को हटा दिया गया है. इसके बजाय,getSizeInPixelsका इस्तेमाल करें. (Icc174)androidx.xr.scenecore.OnSpaceUpdatedListenerकोRunnableसे बदला गया. (I19308)SpatialUser.getCameraViews()को प्रॉपर्टी से बदला गया. (Ib0cc5)ExrImageऔरGltfModel:के लिए,createतरीकों को निलंबित किए जा सकने वाले फ़ंक्शन में बदल दिया गया है;Stringके बजायUriयाPathको स्वीकार करने के लिए, क्रिएट पैरामीटर में बदलाव किया गया है. (Id8883) (I0d247), (I25706)SpatialEnvironment.requestFullSpaceModeऔरSpatialEnvironment.requestHomeSpaceModeको सीन में ले जाया गया. उदाहरण के लिए,session.scene.spatialEnvironment.requestFullSpaceMode()के बजायsession.scene.requestFullSpaceMode()का इस्तेमाल करें.addOnPassthroughOpacityChangedListenerऔरaddOnSpatialEnvironmentChangedListenerमें अब ऐसे ओवरराइड हैं जो वैकल्पिक एक्ज़ीक्यूटर स्वीकार करते हैं. (I12fe0) (I6b21e)- इन बंद किए गए
SpatialEnvironmentतरीकों को हटाया गया:togglePassthrough,setPassthrough,setPassthroughOpacity,getPassthroughMode,getPassthroughOpacity,setSkybox, औरsetGeometry. इसके अलावा, बंद की गई क्लासSpatialEnvironment.PassthroughModeको भी हटा दिया गया है (I927bd) (I927bd) (I927bd) - हमने
SpatialEnvironmentके इन गेटर और सेटर को Kotlin प्रॉपर्टी से बदल दिया है:getCurrentPassthroughOpacity(),get/setPassthroughOpacityPreference(),get/setSpatialEnvironmentPreference(),isSpatialEnvironmentPreferenceActive()(I33a7b) (Ie06e2) (Ie06e2) SpatialEnvironmentPreference.preferredPassthroughOpacityका टाइपFloat?से बदलकरFloatकर दिया गया है. अब यह शून्य वैल्यू स्वीकार नहीं करता. इसके बजाय,SpatialEnvironment.NO_PASSTHROUGH_OPACITY_PREFERENCEका इस्तेमाल यह बताने के लिए किया जाता है कि ओपैसिटी की कोई प्राथमिकता नहीं है. (I40107)- क्रिएट मेथड में,
windowBoundsPxपैरामीटर कोpixelDimensionsऔर उसके टाइप को Rect सेIntSize2dमें अपडेट किया गया. (I1926e) SpatialEnvironmentकंस्ट्रक्टर अब इंटरनल है (I75a51)- क्लास
SpatialPointerIconNoneऔरSpatialPointerIconCircleको कंपैनियन ऑब्जेक्टSpatialPointerIcon.NONEऔरSpatialPointerIcon.CIRCLEसे बदला गया (I416d2) SpatialPointerComponentमेंSpatialPointerIconअब नल नहीं है. सिस्टम के डिफ़ॉल्ट पॉइंटर आइकॉन का इस्तेमाल करने के लिए, शून्य के बजायSpatialPointerIcon.DEFAULTका इस्तेमाल करें. (I416d2)androidx.xr.scenecore.AnchorEntity.getState()को सिर्फ़ देखने की अनुमति वाली प्रॉपर्टी से बदल दिया गया है.AnchorEntity.create()तरीके के पैरामीटर के नाम बदले गए हैं, ताकि उन्हें आसानी से समझा जा सके.AnchorEntityके लिसनर सेट करने और जोड़ने के तरीकों में, लिसनर को आखिरी आर्ग्युमेंट में ले जाया गया है, ताकि ट्रेलिंग लैम्डा चालू किए जा सकें.AnchorEntityके लिएandroidx.xr.scenecore.OnStateChangedListenerकोConsumer<AnchorEntity.State>से बदला गया. (I472e0)GltfModelEntity.getAnimationState()अब एक प्रॉपर्टी है. (I10b29)ActivitySpace.getBounds()को प्रॉपर्टी से बदला गया.ActivitySpace.addBoundsChangedListenerका नाम बदलकरActivitySpace.addOnBoundsChangedListenerकर दिया गया.ActivitySpace.setOnSpaceUpdatedListenerको जोड़ने/हटाने के तरीकों से बदल दिया गया है. (I4c956)AnchorPlacement: planeTypeFilterका नाम बदलकरanchorablePlaneOrientationsकर दिया गया है. साथ ही,planeSemanticFilterका नाम बदलकरanchorablePlaneSemanticTypesकर दिया गया है.AnchorEntityयाActivitySpaceमेंMovableComponentजोड़ने पर, गलत वैल्यू मिलेगी.MoveListenerका नाम बदलकरEntityMoveListener shouldDisposeParentAnchorकर दिया गया है.EntityMoveListener shouldDisposeParentAnchorका नाम बदलकरdisposeParentOnReAnchor systemMovableकर दिया गया है.createफ़ंक्शन सेdisposeParentOnReAnchor systemMovableको हटा दिया गया है. अब इसकी जगहcreeateCustomMovable,createSystemMovable, औरcreateAnchorableका इस्तेमाल किया जाता है (If11c4)SurfaceEntity.featherRadiusX/Yको हटा दिया गया है औरEdgeFeatheringParamsक्लास कॉन्सेप्ट को जोड़ दिया गया है. (Ic78fc)PanelEntity.enablePanelDepthTest()तरीके कोpanelClippingConfigप्रॉपर्टी से बदल दिया गया है. डेप्थ-टेस्टिंग की सुविधा चालू करने के लिए,Scene.panelClippingConfig = PanelClippingConfig(isDepthTestEnabled = true)पर सेट करें या इसे बंद करने के लिए,PanelClippingConfig(isDepthTestEnabled = false)पर सेट करें. (I0cbe0)Scene.mainPanelEntityअबPanelEntityके बजायMainPanelEntityटाइप का है (I7125a)- Scene के
setFullSpaceModeतरीके का नाम बदलकरconfigureBundleForFullSpaceModeLaunchऔरsetFullSpaceModeWithEnvironmentInheritedतरीके का नाम बदलकरconfigureBundleForFullSpaceModeLaunchWithEnvironmentInheritedकर दिया गया है. (I0cbe0) (I0cbe0) SpatialVisibilityके UNKNOWN, OUTSIDE_FOV, PARTIALLY_WITHIN_FOV, और WITHIN_FOV वैल्यू के नाम बदलकर, SPATIAL_VISIBILITY_UNKNOWN, SPATIAL_VISIBILITY_OUTSIDE_FIELD_OF_VIEW, SPATIAL_VISIBILITY_PARTIALLY_WITHIN_FIELD_OF_VIEW, और SPATIAL_VISIBILITY_WITHIN_FIELD_OF_VIEW कर दिए गए हैं (Ie7e8c)SpatialVisibilityक्लास को, const Int वैल्यू वाले सार्वजनिक ऑब्जेक्ट से बदल दिया गया है.setSpatialVisibilityChangedListenerअबConsumer<SpatialVisibility>के बजायConsumer<Int>स्वीकार करता है (Ie7e8c)PointerCaptureComponentकॉन्स्टेंट का नाम बदला गया है और उन्हेंPointerCaptureComponent.PointerCaptureStateऑब्जेक्ट (I9c7ac) में ले जाया गया हैPointerCaptureComponents' StateListenerकोConsumer<Int>से बदला गया. (I9c7ac)InputEventListenerकोConsumer<InputEvent>से बदला गया (I9c7ac)setPreferredAspectRatioको Scene क्लास सेSpatialWindowऑब्जेक्ट में ले जाया गया है. साथ ही, यह Session को पहले पैरामीटर के तौर पर लेता है. (I7b717)Entity.setHidden()की जगहEntity.setEnabled()औरEntity.isHidden()की जगहEntity.isEnabled()ने ले ली है.setHidden(false),setEnabled(true)औरisHidden() == !isEnabled()के बराबर है. (Icf0de)Entity.contentDescriptionटाइप को String से बदलकरCharSequenceकर दिया गया है. (Ie59be)Session.createऔरSession.configureअब ज़रूरी अनुमतियां न मिलने पर,SessionCreatePermissionsNotGrantedयाSessionConfigurePermissionsNotGrantedके बजायSecurityExceptionदिखाता है. (I7c488)ResizableComponent.createअबConsumer<ResizeEvent> ResizeEventListenerकी ज़रूरत हैConsumer<ResizeEvent> ResizableComponent.sizeकोResizableComponent.affordanceSize ResizableComponent.minimumSizeसे बदल दिया गयाResizableComponent.minimumEntitySize ResizableComponent.maximumSizeका नाम बदलकरResizableComponent.maximumEntitySizeकर दिया गया,ResizableComponent.autoHideContentका नाम बदलकरResizableComponent.shouldAutoHideContentकर दिया गयाResizableComponent.forceShowResizeOverlayका नाम बदलकरResizableComponent.shouldAlwaysShowOverlayकर दिया गया (I97a2d)androidx.xr.scenecoreऔरandroidx.xr.composeके लिए,minSDKको घटाकर 24 कर दिया गया है. एक्सआर पैकेज के लिए, रनटाइम के दौरान अब भी API 34 की ज़रूरत होती है. (I17224)- Jetpack XR के सभी पैकेज पर लगी
RequiresApi(34)पाबंदी हटा दी गई है. यह पाबंदी ज़रूरी नहीं थी, क्योंकि फ़िलहाल Jetpack XR सिर्फ़ उन डिवाइसों पर उपलब्ध है जिनमें एपीआई लेवल 34 या उसके बाद का वर्शन है. (Iae0f8) - मुख्य
SceneCoreआर्टफ़ैक्ट (xr:scenecore:scenecore) में सिर्फ़ Kotlin-स्टाइल वाले एसिंक एपीआई शामिल होंगे. Java डेवलपर,xr:scenecore:scenecore-guavaलाइब्रेरी पर भरोसा कर सकते हैं, ताकि वे इसके साथ काम करने वाले एपीआई को ऐक्सेस कर सकें. (If221b) - Kotlin 2.0 के साथ रिलीज़ किए गए प्रोजेक्ट के लिए, KGP 2.0.0 या इसके बाद के वर्शन का इस्तेमाल करना ज़रूरी है (Idb6b5)
- यह लाइब्रेरी अब JSpecify के nullness एनोटेशन का इस्तेमाल करती है. ये एनोटेशन, टाइप-यूज़ होते हैं. Kotlin डेवलपर को सही तरीके से इस्तेमाल करने के लिए, कंपाइलर के इस तर्क का इस्तेमाल करना चाहिए:
-Xjspecify-annotations=strict(यह Kotlin कंपाइलर के 2.1.0 वर्शन से डिफ़ॉल्ट रूप से शुरू होता है) (Ia8420) ListenableFutureवैल्यू देने वाले सभी एसिंक मैथड को, Kotlin के सस्पेंड फ़ंक्शन से बदल दिया गया है. Java डेवलपर जो Kotlin के सस्पेंड फ़ंक्शन के बजाय,ListenableFutureपर आधारित एसिंक तरीकों का इस्तेमाल करना चाहते हैं उन्हें अब:xr:scenecore-scenecore-guavaमें एक्सटेंशन फ़ंक्शन का इस्तेमाल करना होगा. उदाहरण के लिए,GuavaExrImageमें Guava के बराबर ExrImage एसिंक फ़ंक्शन,GuavaScenePoseमें Guava के बराबरScenePoseएसिंक फ़ंक्शन,GuavaGltfModelमेंGuava-equivalent GltfModelएसिंक फ़ंक्शन वगैरह शामिल हैं. (If7283) (I0af60) (If7283) (Ia8515) (I4efdf) (I54bbf) (I3467a) (I82a33)
गड़बड़ियां ठीक की गईं
- Jetpack XR Scenecore
ProGuardके लिए अपडेट किया गया नियम, ताकि छोटे किए गए क्लाइंट के लिएAbstractMethodErrorको रोका जा सके. (I91a01) - Jetpack XR
SceneCoreके लिए Proguard minification की सुविधा को बेहतर बनाने के लिए, कुछ और सुधार किए गए हैं (I4f47e) - उस गड़बड़ी को ठीक किया गया है जिसमें
InteractableComponentकी वजह से क्रैश हो सकता है. ऐसा तब होता है, जबInputEventके HitInfo पर मौजूदhitPosition, सिस्टम से मिलेhitPositionके शून्य होने पर क्रैश हो जाता है (I7a695) - कॉन्फ़िगरेशन *मोड वैल्यू के नाम बदल दिए गए हैं, ताकि उनके काम करने के तरीके के बारे में पता चल सके. (I6d247)
SceneCoreTestApp में FOV औरHitTestसे जुड़ी समस्याएं ठीक की गईं. (I2c51e)SpatialCapabilities.hasCapability()फ़ंक्शन में मौजूद गड़बड़ी को ठीक किया गया है. पहले, बिटवाइज़ OR के साथ पास की गई किसी भी क्षमता के सही होने पर, यह फ़ंक्शन 'सही' वैल्यू दिखाता था. अब यह फ़ंक्शन सिर्फ़ तब 'सही' वैल्यू दिखाएगा, जब सभी क्षमताएं सही होंगी. (I2cd40)SurfaceEntity.StereoMode.TOP_BOTTOMको अपडेट किया गया है. इसमें ऊपर वाला मैप बाईं आंख के लिए और नीचे वाला मैप दाईं आंख के लिए है. (I4ae68)
वर्शन 1.0.0-alpha04
7 मई, 2025
androidx.xr.scenecore:scenecore:1.0.0-alpha04 और androidx.xr.scenecore:scenecore-testing:1.0.0-alpha04 रिलीज़ हो गए हैं. वर्शन 1.0.0-alpha04 में ये बदलाव शामिल हैं.
नई सुविधाएं
- अब बैकहैंडलिंग की सुविधा, पैनल की उन इकाइयों पर भी काम करेगी जिनमें एम्बेड की गई गतिविधियां नहीं हैं. बैकहैंडलिंग की सुविधा काम करे, इसके लिए आपको Android मेनिफ़ेस्ट में
android:enableOnBackInvokedCallback= "true"तय करना होगा. StereoSurfaceEntityअब दो नईStereoModeवैल्यू: MULTIVIEW_LEFT_PRIMARY और MULTIVIEW_RIGHT_PRIMARY के ज़रिए, MV-HEVC फ़ॉर्मैट में वीडियो चलाने की सुविधा देता है.PanelEntity.setSizeऔरPanelEntity.getSizeअब पैरंट स्पेस में साइज़ दिखाते हैं.Entity.setPose,Entity.getPose,Entity.setScale,Entity.getScale,Entity.setAlpha, औरEntity.getAlphaअब नया पैरामीटरrelativeToलेते हैं. इससे अलग-अलग स्पेस के हिसाब से वैल्यू को सेट/पाया जा सकता है. इसके लिए, Parent, Activity, और Real World spaces वैल्यू का इस्तेमाल किया जा सकता है. इस पैरामीटर की डिफ़ॉल्ट वैल्यू Parent होती है.SessionExt.ktमें Spatial Visibility Callback एक्सटेंशन के तरीके जोड़े गए हैं. इनसे यह मॉनिटर किया जा सकेगा कि सीन का कॉन्टेंट, उपयोगकर्ता के फ़ील्ड ऑफ़ व्यू में कब आता है या कब बाहर जाता है.setPointSourceParamsकोSpatialAudioTrackमें जोड़ दिया गया है. इससे ट्रैक बनने के बाद भी पैरामीटर अपडेट किए जा सकते हैं.Scenecoreएपीआई के रेफ़रंस के साथ एक नई क्लास, सीन जोड़ी गई है. सीन को सेशन की एक्सटेंशन प्रॉपर्टी के तौर पर ऐक्सेस किया जा सकेगा.SessionExtके अंदर मौजूद फ़ंक्शन को सीन में ले जाया गया है. इसलिए, इंपोर्ट को अडजस्ट करना होगा. उदाहरण के लिए,SessionExt.getScene(session).addSpatialCapababilitiesChangedListenerबनामSessionExt.addSpatialCapabilitiesChangedListener.ActivityPose.hitTestAsyncको जोड़ा गया है. इससे वर्चुअल कॉन्टेंट के ख़िलाफ़hitTestको चालू किया जा सकेगा.- नया कॉम्पोनेंट टाइप
SpatialPointerComponentजोड़ा गया है. इससे क्लाइंट, पॉइंटर के लिए रेंडर किया गया आइकॉन तय कर सकते हैं या आइकॉन को बंद कर सकते हैं. फ़िलहाल, इस कॉम्पोनेंट को सिर्फ़PanelEntityइंस्टेंस से जोड़ा जा सकता है. - पेश है नया
PanelEntityफ़ैक्ट्री, जो पैनल के डाइमेंशन को मीटर या पिक्सल में लेता है. पैनल के लिए, डाइमेंशन टाइप के दो पैरामीटर लेने वाली पुरानीPanelEntityफ़ैक्ट्री को हटाया गया.
एपीआई में हुए बदलाव
- Jetpack XR के सभी पैकेज पर लगी
RequiresApi(34)पाबंदी हटा दी गई है. यह पाबंदी ज़रूरी नहीं थी, क्योंकि फ़िलहाल Jetpack XR सिर्फ़ उन डिवाइसों पर उपलब्ध है जिनमें एपीआई लेवल 34 या उसके बाद का वर्शन है. (Iae0f8) - Kotlin 2.0 के साथ रिलीज़ किए गए प्रोजेक्ट के लिए, KGP 2.0.0 या इसके बाद के वर्शन का इस्तेमाल करना ज़रूरी है (Idb6b5)
PermissionHelperक्लास को हटा दिया गया है.PanelEntity.getPixelDensityका अब इस्तेमाल नहीं किया जा सकता.PanelEntity.setPixelDimensionsऔरPanelEntity.getPixelDimensionको हटा दिया गया है. इनकी जगहsetSizeInPixelsऔरgetSizeInPixelsको जोड़ दिया गया है.Entity.getActivitySpaceAlphaके भाषा पैक को हटाया गया. इसेEntity.getAlpha(Space.Activity)से बदला जा सकता है.Entity.getWorldSpaceScaleके भाषा पैक को हटाया गया. इसेEntity.getScale(Space.REAL\_WORLD)से बदला जा सकता है.SceneCoreमें मौजूद Session क्लास को XR Runtime में मौजूद Session क्लास के पक्ष में मिटा दिया गया है.StereoSurfaceEntityका नाम बदलकरSurfaceEntityकर दिया गया है.Entity.setSizeऔरEntity.getSizeको हटा दिया गया है. साथ ही, इन तरीकों कोPanelEntityमें जोड़ दिया गया है.PointSourceAttributesका नाम बदलकरPointSourceParamsकर दिया गया है.SpatializerConstants.SOURCE\_TYPE\_BYPASSका नाम बदलकरSpatializerConstants.SOURCE\_TYPE\_DEFAULTकर दिया गया है.PointSourceParamsइकाई के ऐक्सेस लेवल को सार्वजनिक से बदलकर, संगठन के अंदर के लोगों के लिए कर दिया गया है.AnchorEntity.createके लिए, अबSession.configure()मेंPlaneTrackingModeको कॉन्फ़िगर करना ज़रूरी है.SpatialUserएपीआई के लिए, अबSession.configure()मेंHeadTrackingModeको कॉन्फ़िगर करना ज़रूरी है.ResizableComponentअटैच न होने पर, यह गड़बड़ी के लेवल के लॉग के बजाय सूचना के लेवल का लॉग देगा.- Fov क्लास अब एक सामान्य Kotlin क्लास है.
- हर कॉन्क्रीट इकाई के टाइप को उसकी अपनी फ़ाइल में रखने के लिए,
Entity.ktको अलग-अलग करें. - नया
PanelEntityबनाते समय, ज़्यादातर व्यू कोFrameLayoutके तौर पर फिर से पैरंट किया जाएगा. इससे, Spatial Panels के साथLayoutInspectorका इस्तेमाल करना आसान हो जाता है. - फ़िलहाल इस्तेमाल किए जा रहे
XrExtensionsइंस्टेंस को अब प्लैटफ़ॉर्म पर रजिस्टर कर दिया गया है. इससे ऐप्लिकेशन को डीबग करने में मदद मिलेगी.
गड़बड़ियां ठीक की गईं
- ऐसी समस्या को ठीक किया गया है जिसकी वजह से,
MovableComponentऔरAnchorPlacementवालेPanelEntityको दूसरी जगह ले जाने पर वह क्रैश हो जाता था - उस समस्या को ठीक किया गया है जिसकी वजह से
ResizableComponent,onResizeStartकॉलबैक में पुराने साइज़ दिखा रहा था. JxrPlatformAdapterAxrकेdispose()को कई बार कॉल करने पर होने वाली क्रैश की समस्या को ठीक किया गया.
वर्शन 1.0.0-alpha03
26 फ़रवरी, 2025
androidx.xr.scenecore:scenecore:1.0.0-alpha03 और androidx.xr.scenecore:scenecore-testing:1.0.0-alpha03 रिलीज़ हो गए हैं. वर्शन 1.0.0-alpha03 में ये बदलाव शामिल हैं.
नई सुविधाएं
- Jetpack XR कोड के लिए, Proguard minification की सुविधा अब उपलब्ध है
गड़बड़ियां ठीक की गईं
- Jetpack XR SceneCore के लिए Proguard minification की सुविधा को बेहतर बनाने के लिए, कुछ और गड़बड़ियां ठीक की गई हैं (I4f47e)
- Jetpack XR Scenecore
ProGuardके नियम को अपडेट किया गया है, ताकि छोटे किए गए क्लाइंट के लिएAbstractMethodErrorको रोका जा सके. (I91a01)
वर्शन 1.0.0-alpha02
12 फ़रवरी, 2025
androidx.xr.scenecore:scenecore:1.0.0-alpha02 और androidx.xr.scenecore:scenecore-testing:1.0.0-alpha02 रिलीज़ हो गए हैं. वर्शन 1.0.0-alpha02 में ये बदलाव शामिल हैं.
1.0.0-alpha02 से पहले बनाए गए ऐप्लिकेशन पर असर डालने वाला, जल्द होने वाला बड़ा बदलाव
- फ़ैक्ट्री के तरीकों को
Sessionक्लास से हटाकर, हर टाइप के कंपैनियन तरीके में ले जाया गया है:Session.createActivityPanelEntity(Dimensions, String, Activity, Pose)को मिटा दिया गया है और उसकी जगहActivityPanelEntity.create(Session, Dimensions, String, Pose)को जोड़ दिया गया हैSession.createAnchorEntity(Anchor)को मिटा दिया गया है और उसकी जगहAnchorEntity.create(Session, Anchor)को जोड़ दिया गया हैSession.createAnchorEntity(Dimensions, Int, Int, Duration)को मिटा दिया गया है और उसकी जगहAnchorEntity.create(Session, Dimensions, Int, Int, Duration)को जोड़ दिया गया हैSession.createEntity(String, Pose)को मिटा दिया गया है और उसकी जगहContentlessEntity.create(Session, String, Pose)को जोड़ दिया गया हैSession.createExrImageResource(String)को मिटा दिया गया है और उसकी जगहExrImage.create(Session, String)को जोड़ दिया गया हैSession.createGltfEntity(GltfModel, Pose)को मिटा दिया गया है और उसकी जगहGltfModelEntity.create(Session, GltfModel, Pose)को जोड़ दिया गया हैSession.createGltfModelResource(String)को मिटा दिया गया है और उसकी जगहGltfModel.create(Session, String)को जोड़ दिया गया हैSession.createInteractableComponent(Executor, InputEventListener)को मिटा दिया गया है और उसकी जगहInteractableComponent.create(Session, Executor, InputEventListener)को जोड़ दिया गया हैSession.createMovableComponent(Boolean, Boolean, Set<AnchorPlacement>, Boolean)को मिटा दिया गया है और उसकी जगहMovableComponent.create(Session, Boolean, Boolean, Set<AnchorPlacement>, Boolean)को जोड़ दिया गया हैSession.createPanelEntity(View, Dimensions, Dimensions, String, Pose)को मिटा दिया गया है और उसकी जगहPanelEntity.create(Session, View, Dimensions, Dimensions, String, Pose)को जोड़ दिया गया हैSession.createResizableComponent(Dimensions, Dimensions)को मिटा दिया गया है और उसकी जगहResizableComponent.create(Session, Dimensions, Dimensions)को जोड़ दिया गया हैSession.createStereoSurfaceEntity(Int, Dimensions, Pose)को मिटा दिया गया है और उसकी जगहStereoSurface.create(Session, Int, Dimensions, Pose)को जोड़ दिया गया है
- बंद किए गए इन तरीकों को हटा दिया गया है:
Session.canEmbedActivityPanel(Activity)को मिटा दिया गया है. इसके बजाय,getSpatialCapabilities.hasCapabilility(SPATIAL_CAPABILITY_EMBED_ACTIVITY)का इस्तेमाल करें.Session.hasSpatialCapability(Int)को मिटा दिया गया है. इसे बदल दिया गया है. अबgetSpatialCapabilities().hasCapability()का इस्तेमाल किया जाता है, ताकि यह पता लगाया जा सके कि डिवाइस में स्पेशल क्षमताएं मौजूद हैं या नहीं. ऐसा इसलिए, क्योंकिgetSpatialCapabilities(),SpatialCapabilitiesऑब्जेक्ट दिखाता है.Session.requestFullSpaceMode()को मिटा दिया गया है और उसकी जगहSpatialEnvironment.requestFullSpaceMode()को जोड़ दिया गया हैSession.requestHomeSpaceMode()को मिटा दिया गया है और उसकी जगहSpatialEnvironment.requestHomeSpaceMode()को जोड़ दिया गया है
Session.setFullSpaceMode(Bundle)औरSession.setFullSpaceModeWithEnvironmentInherited(Bundle)को एक्सटेंशन फ़ंक्शन में ले जाया गया है. ऐक्सेस करने के लिए, डेवलपर फ़ाइलों को नए इंपोर्ट जोड़ने होंगे:import androidx.xr.scenecore.setFullSpaceModeimport androidx.xr.scenecore.setFullSpaceModeWithEnvironmentInherited
Session.setPreferredAspectRatio(Activity, Float)को एक्सटेंशन फ़ंक्शन में ले जाया गया है. ऐक्सेस करने के लिए, डेवलपर फ़ाइलों को नया इंपोर्ट जोड़ना होगा:import androidx.xr.scenecore.setPreferredAspectRatio
Session.getEntitiesOfType(Class<out T>)औरSession.getEntityForRtEntity(RtEntity)को एक्सटेंशन फ़ंक्शन में ले जाया गया है. ऐक्सेस करने के लिए, डेवलपर फ़ाइलों को नए इंपोर्ट जोड़ने होंगे:import androidx.xr.scenecore.getEntitiesOfTypeimport androidx.xr.scenecore.getEntityForRtEntity
Session.unpersistAnchor(Anchor)को मिटा दिया गया हैSession.createPersistedAnchorEntity(UUID)को मिटा दिया गया है
मौजूदा समस्याएं
PanelEntity.setCornerRadius()औरActivityPanelEntity.setCornerRadius()तब तक लागू नहीं हो सकते, जब तक पैनल को अगली बार मूव नहीं किया जाता. पैनल को उसकी मौजूदा जगह पर ले जाकर, इस समस्या को ठीक किया जा सकता हैActivitySpaceपरBoundsChangedको कॉल करने पर, हो सकता है कि कुछActivityPoses को सही तरीके से अपडेट न किया गया हो. इसेActivitySpaceको होने वालीOnSpaceUpdatedकॉल में अपडेट किया जाएगा
नियमों का उल्लंघन और व्यवहार में बदलाव
- अगर पैनल की चौड़ाई या ऊंचाई 32dp से कम है, तो
PanelEntityऔरActivityPanelEntityका डिफ़ॉल्ट कॉर्नर रेडियस 32dp या इससे कम होगा
नए एपीआई और सुविधाएँ
StereoSurface.CanvasShapeपेश किया गया है. इससे इमर्सिव मीडिया रेंडर करने के लिए,SphericalऔरHemisphericalकैनवस बनाए जा सकते हैं.StereoSurfaceEntity.create()अबCanvasShapeपैरामीटर स्वीकार करता है. (फ़िलहाल, इस पैरामीटर को अनदेखा किया जाता है. हालांकि, आने वाली रिलीज़ में इसका इस्तेमाल किया जाएगा)StereoSurfaceEntity.create()अबDimensionsपैरामीटर नहीं लेता है. ऐप्लिकेशन कोCanvasShapeसेट करके, कैनवस के साइज़ को कंट्रोल करना चाहिएStereoSurfaceEntityमेंCanvasShapeसदस्य होता है, जिसे डाइनैमिक रूप से सेट किया जा सकता है.StereoSurfaceEntity.dimensionsअब सिर्फ़ पढ़ने के लिए उपलब्ध प्रॉपर्टी है. डाइमेंशन बदलने के लिए, ऐप्लिकेशन कोCanvasShapeसेट करना चाहिए.StereoSurfaceEntityकी मदद से, कंस्ट्रक्शन के बादStereoModeको फिर से सेट किया जा सकता है.
दूसरे बदलाव
- कंपाइल-टाइम minSDK को घटाकर 24 कर दिया गया है. Jetpack XR के सभी एपीआई के लिए, रनटाइम के दौरान एपीआई 34 की ज़रूरत होती है.
SceneCoreका सेशन फ़ैक्ट्री (Session.create), अबSCENE_UNDERSTANDINGकी अनुमति पाने के लिए इंटेंट लॉन्च नहीं करता. इसके बजाय, ऐंकर बनाने की कोशिश करने से पहले, क्लाइंट ऐप्लिकेशन को उपयोगकर्ता से साफ़ तौर पर अनुमतियों का अनुरोध करना होगा. अगर उपयोगकर्ता ने अनुमति नहीं दी है, तो ऐंकर नहीं बनाया जा सकेगा.
गड़बड़ियां ठीक की गईं
getActivitySpacePose()को ठीक कर दिया गया है, ताकिActivitySpaceस्केल का हिसाब लगाया जा सके. इसके लिए, अनुवाद की वैल्यू को हमेशा बिना स्केल किए गए मीटर के बजाय, स्केल किए गए मीटर में दिखाया जाता है.transformPoseToअब सोर्स या डेस्टिनेशन मेंActivitySpaceशामिल होने पर, कोऑर्डिनेट में हुए बदलावों का हिसाब लगाने के लिए सही यूनिट का इस्तेमाल करता है.setSpatialEnvironmentPreference(new SpatialEnvironmentPreference(null, geom))का इस्तेमाल करके, स्काईबॉक्स की प्राथमिकता को शून्य पर सेट करने पर, स्काईबॉक्स को पूरी तरह से काले रंग के स्काईबॉक्स पर सेट कर दिया जाएगा. सिस्टम के डिफ़ॉल्ट स्काईबॉक्स और ज्यामिति पर वापस जाने के लिए,setSpatialEnvironmentPreference(null).का इस्तेमाल करें
वर्शन 1.0.0-alpha01
12 दिसंबर, 2024
androidx.xr.scenecore:scenecore-* 1.0.0-alpha01 रिलीज़ हो गया है.
शुरुआती रिलीज़ की सुविधाएं Jetpack SceneCore की शुरुआती डेवलपर रिलीज़. यह 3D सीन ग्राफ़ लाइब्रेरी है. इसका इस्तेमाल, इमर्सिव सीन और एनवायरमेंट बनाने और उनमें बदलाव करने के लिए किया जाता है. इस लाइब्रेरी की मदद से, 3D मॉडल और कॉन्टेंट पैनल को एक-दूसरे के हिसाब से और वर्चुअल या असल दुनिया के एनवायरमेंट के हिसाब से रखा और व्यवस्थित किया जा सकता है.
- SpatialEnvironment: स्काईबॉक्स इमेज और/या 3D मॉडल की ज्यामिति का इस्तेमाल करके, पूरी तरह से इमर्सिव अनुभव बनाएँ. इनका इस्तेमाल, आपके एनवायरमेंट के एक्सआर सीन के बैकड्रॉप के तौर पर किया जाता है. इसके अलावा, पासथ्रू मोड चालू करें, ताकि आपका वर्चुअल सीन, उपयोगकर्ता के आस-पास की असली दुनिया के साथ इंटिग्रेट हो सके.
- PanelEntity: स्टैंडर्ड Android लेआउट और गतिविधियों को, स्पेस के हिसाब से बनाए गए पैनल में एम्बेड करके, अपने 3D सीन में 2D कॉन्टेंट जोड़ें. ये पैनल, तैर सकते हैं या इन्हें असल दुनिया की सतहों पर ऐंकर किया जा सकता है.
- GltfModelEntity: इसकी मदद से, अपने सीन में 3D मॉडल को रखा जा सकता है, उन्हें ऐनिमेट किया जा सकता है, और उनके साथ इंटरैक्ट किया जा सकता है. SceneCore, glTF फ़ाइल फ़ॉर्मैट के साथ काम करता है, ताकि मौजूदा मॉडल के साथ आसानी से इंटिग्रेट किया जा सके.
- SpatialAudio: पूरी तरह से इमर्सिव और स्पेशल साउंड के लिए, अपने 3D सीन में आस-पास के और पॉइंट ऑडियो सोर्स जोड़ें.
- StereoSurfaceEntity: SceneCore, Android Surface पर रेंडर किए गए कॉन्टेंट को बाईं/दाईं आंख के हिसाब से रूट करने की सुविधा देता है. इसका इस्तेमाल, स्टीरियोस्कोपिक कॉन्टेंट को साइड-बाय-साइड या टॉप-बॉटम फ़ॉर्मैट में रेंडर करने के लिए किया जा सकता है. जैसे, स्टीरियो फ़ोटो, 3D वीडियो या डाइनैमिक तरीके से रेंडर किए गए अन्य यूज़र इंटरफ़ेस (यूआई). ऐप्लिकेशन को वीडियो डिकोड करने के लिए, MediaPlayer या ExoPlayer का इस्तेमाल करना चाहिए.
- कॉम्पोनेंट सिस्टम: SceneCore, XR कॉन्टेंट में सुविधाएं जोड़ने के लिए एक मज़बूत और फ़्लेक्सिबल कॉम्पोनेंट सिस्टम उपलब्ध कराता है. इसमें उपयोगकर्ताओं के लिए, मॉडल और पैनल को मूव करने, उनका साइज़ बदलने, और उनसे इंटरैक्ट करने की सुविधाएं शामिल हैं.
- ऐंकर करना: पासथ्रू की सुविधा चालू होने पर, पैनल और मॉडल को असल दुनिया की चीज़ों से जोड़ा जा सकता है. इससे लोगों को असल दुनिया में वर्चुअल कॉन्टेंट को आसानी से इंटिग्रेट करने में मदद मिलती है.
- उपयोगकर्ता की पोज़िशन: वर्चुअल सीन में उपयोगकर्ता की जगह की जानकारी ऐक्सेस करता है, ताकि आपके कॉन्टेंट को उपयोगकर्ता की पोज़िशन के हिसाब से दिखाया जा सके.
- SpatialCapabilities: पूरी तरह से अडैप्टिव ऐप्लिकेशन बनाएं. ये ऐप्लिकेशन, उपलब्ध होने पर स्पेस से जुड़ी सुविधाओं का फ़ायदा उठाते हैं. जैसे, यूज़र इंटरफ़ेस (यूआई) कॉन्टेंट की 3D पोज़िशनिंग. इतना ही नहीं, आपका ऐप्लिकेशन चालू होने पर, वह सुविधाओं में होने वाले बदलावों पर नज़र रख सकता है. इससे, उपयोगकर्ता के Android XR डिवाइस इस्तेमाल करने के तरीके के आधार पर, ऐप्लिकेशन के अनुभव में बदलाव किया जा सकता है.
मौजूदा समस्याएं
- फ़िलहाल, Jetpack SceneCore का इस्तेमाल करने के लिए, minSDK 30 की ज़रूरत होती है. इस समस्या को हल करने के लिए, मेनिफ़ेस्ट में यह एंट्री
<uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/>जोड़ें, ताकि कम से कम SDK 23 के साथ बनाया और चलाया जा सके. - सेशन कई स्थितियों में अमान्य हो सकता है. इन स्थितियों में, गतिविधि अपने-आप फिर से शुरू हो जाती है. जैसे, मुख्य पैनल का साइज़ बदलना, पेरिफ़ेरल कनेक्ट करना, और लाइट और डार्क मोड के बीच स्विच करना. अगर आपको सेशन अमान्य होने से जुड़ी समस्याएं आ रही हैं, तो इन तरीकों को आज़माएं: मुख्य पैनल का साइज़ बदलने की सुविधा बंद करें, डाइनैमिक पैनल इकाई का इस्तेमाल करें, कॉन्फ़िगरेशन में कुछ बदलावों के लिए गतिविधि फिर से बनाने की सुविधा बंद करें या लाइट/डार्क मोड थीम बदलने की सुविधा बंद करें.
- GltfEntity पर, मूव किए जा सकने वाले और साइज़ बदलने वाले कॉम्पोनेंट काम नहीं करते.
- GltfEntity पर Entity.getSize() काम नहीं करता.
- Jetpack XR ऐप्लिकेशन को AndroidManifest में
android.permission.SCENE_UNDERSTANDINGअनुमति का अनुरोध करना होगा. - सेशन बनाने की सुविधा सिर्फ़ Android XR डिवाइस पर उपलब्ध है. फ़िलहाल, अगर आपने कोई सेशन बनाया है और उसे Android XR डिवाइस के अलावा किसी दूसरे डिवाइस पर इस्तेमाल करने की कोशिश की है, तो आपको RuntimeException मिलेगा.
- `SpatialEnvironment.setSpatialEnvironmentPreference()` के ज़रिए स्काईबॉक्स को null पर सेट करने से, दस्तावेज़ में बताए गए तरीके के मुताबिक स्काईबॉक्स पूरी तरह से काला नहीं होता. इससे सिस्टम के डिफ़ॉल्ट स्काईबॉक्स का इस्तेमाल हो सकता है या मौजूदा स्काईबॉक्स में कोई बदलाव नहीं होगा.
- SceneCore क्लाइंट को अपने ऐप्लिकेशन की डिपेंडेंसी के लिए, अपने Gradle कॉन्फ़िगरेशन में
implementation(“com.google.guava:listenablefuture-1.0”)जोड़ना चाहिए. आने वाले समय में, scenecore इस लाइब्रेरी कोapiडिपेंडेंसी के तौर पर शामिल करेगा. इसलिए, क्लाइंट को इसे साफ़ तौर पर बताने की ज़रूरत नहीं होगी. - SceneCore,
com.google.guava:guava-31.1-androidऔरcom.google.protobuf:protobuf-javaliteको ट्रांज़िटिव डिपेंडेंसी के तौर पर शामिल करता है. अगर इसकी वजह से आपके बिल्ड में डुप्लीकेट क्लास की गड़बड़ियां होती हैं, तो इन दो डिपेंडेंसी को सुरक्षित तरीके से हटाया जा सकता है. - अगर आपका ऐप्लिकेशन SceneCore का इस्तेमाल करता है और ProGuard को चालू करता है, तो सेशन बनाते समय वह क्रैश हो जाएगा. इस समस्या को हल करने के लिए, ProGuard को बंद करें. ProGuard को चालू करने के तरीके के बारे में ज़्यादा जानने के लिए, यह गाइड देखें.