Jetpack SceneCore
| नया अपडेट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा रिलीज़ |
|---|---|---|---|---|
| 19 नवंबर, 2025 | - | - | - | 1.0.0-alpha09 |
डिपेंडेंसी का एलान करना
XR SceneCore पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.
अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:
Groovy
dependencies { implementation "androidx.xr.scenecore:scenecore:1.0.0-alpha09" // Optional dependencies for asynchronous conversions implementation "androidx.xr.scenecore:scenecore-guava:1.0.0-alpha09" // Use to write unit tests testImplementation "androidx.xr.scenecore:scenecore-testing:1.0.0-alpha09" }
Kotlin
dependencies { implementation("androidx.xr.scenecore:scenecore:1.0.0-alpha09") // Optional dependencies for asynchronous conversions implementation("androidx.xr.scenecore:scenecore-guava:1.0.0-alpha09") // Use to write unit tests testImplementation("androidx.xr.scenecore:scenecore-testing:1.0.0-alpha09") }
डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.
सुझाव/राय दें या शिकायत करें
आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या आपके पास इस लाइब्रेरी को बेहतर बनाने के लिए सुझाव हैं, तो हमें बताएं. कृपया नई समस्या सबमिट करने से पहले, इस लाइब्रेरी में शामिल मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.
ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.
वर्शन 1.0
वर्शन 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 सबटाइप कर दिया गया है. (Ib0c49)getChildren()को Entity इंटरफ़ेस में जोड़ा गया.MainPanelEntityलाइफ़साइकल को अपडेट किया गया. (Ia69d6)
एपीआई में हुए बदलाव
PointerCaptureComponent.PointerCaptureStateकॉन्स्टेंट टाइप को Ints से बदलकरPointerCaptureStateसबटाइप कर दिया गया है. (Ic888a)Scene.spatialCapabilitiesअब Int फ़ील्ड के बजाय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वैरिएबल में मर्ज कर दिया गया है.keyEntityकोAnchorEntityजैसी ऐसी इकाई पर सेट करने से जिसे बदला नहीं जा सकता, बूलियन फ़ॉल्स वैल्यू के बजायIllegalArgumentExceptionदिखेगा. (I62080, b/428721695, b/422215745) - सीन के
SpatialModeChangeListenerवैरिएबल कोsetSpatialModeChangedListenerसे बदल दिया गया है. यहSpatialModeChangedListenerके बजायConsumer<SpatialModeChangeEvent>लेता है.setSpatialModeChangedListenerअब वैकल्पिक तौर पर, एक्ज़ीक्यूटर को शामिल कर सकता है. (I62080, b/428721695, b/422215745) ActivityPanelEntity.startActivity(I64344, b/430332856, b/430333040) सेbundleपैरामीटर हटाया गया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 annotations का इस्तेमाल करती है. ये टाइप-यूज़ होते हैं. 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केhitPositionपर मौजूदInputEventके HitInfo पर मौजूदhitPositionके क्रैश होने पर,InteractableComponentक्रैश हो सकता था. ऐसा तब होता था, जब सिस्टम से मिला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के अंदर मौजूद फ़ंक्शन को Scene में ले जाया गया है. इसलिए, इंपोर्ट को अडजस्ट करना होगा. उदाहरण के लिए,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को कॉल करने पर, हो सकता है कि कुछActivityPoseसही तरीके से अपडेट न हुए हों. इसे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अब सोर्स या डेस्टिनेशन में शामिल होने पर, कोऑर्डिनेट में हुए बदलावों का हिसाब लगाने के लिए सही यूनिट का इस्तेमाल करता है.ActivitySpacesetSpatialEnvironmentPreference(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 मॉडल ज्यामिति का इस्तेमाल करके, पूरी तरह से इमर्सिव अनुभव बनाएं. इनका इस्तेमाल, आपके एनवायरमेंट के XR सीन के बैकड्रॉप के तौर पर किया जाता है. इसके अलावा, पासथ्रू मोड चालू करें, ताकि आपका वर्चुअल सीन, उपयोगकर्ता के आस-पास की असली दुनिया के साथ इंटिग्रेट हो सके.
- 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 का इस्तेमाल करने के लिए, कम से कम SDK 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”)जोड़ना चाहिए. आने वाले समय में, Scenekore इस लाइब्रेरी कोapiडिपेंडेंसी के तौर पर शामिल करेगा. इसलिए, क्लाइंट को इसे साफ़ तौर पर बताने की ज़रूरत नहीं होगी. - SceneCore,
com.google.guava:guava-31.1-androidऔरcom.google.protobuf:protobuf-javaliteको ट्रांज़िटिव डिपेंडेंसी के तौर पर गलत तरीके से शामिल करता है. अगर इसकी वजह से आपके बिल्ड में डुप्लीकेट क्लास की गड़बड़ियां होती हैं, तो इन दो डिपेंडेंसी को सुरक्षित तरीके से हटाया जा सकता है. - अगर आपका ऐप्लिकेशन SceneCore का इस्तेमाल करता है और ProGuard को चालू करता है, तो सेशन बनाते समय वह क्रैश हो जाएगा. इस समस्या को हल करने के लिए, ProGuard को बंद करें. ProGuard को चालू करने के तरीके के बारे में ज़्यादा जानने के लिए, यह गाइड देखें.