জেটপ্যাক সিনকোর

3D কন্টেন্ট ব্যবহার করে Android XR দৃশ্য গ্রাফ তৈরি এবং পরিচালনা করুন।
সর্বশেষ আপডেট স্থিতিশীল রিলিজ রিলিজ প্রার্থী বিটা রিলিজ আলফা রিলিজ
২২ অক্টোবর, ২০২৫ - - - ১.০.০-আলফা০৮

নির্ভরতা ঘোষণা করা

XR SceneCore-এর উপর নির্ভরতা যোগ করতে, আপনার প্রকল্পে Google Maven সংগ্রহস্থল যোগ করতে হবে। আরও তথ্যের জন্য Google-এর Maven সংগ্রহস্থলটি পড়ুন।

আপনার অ্যাপ বা মডিউলের জন্য build.gradle ফাইলে আপনার প্রয়োজনীয় আর্টিফ্যাক্টের জন্য নির্ভরতা যোগ করুন:

গ্রোভি

dependencies {
    implementation "androidx.xr.scenecore:scenecore:1.0.0-alpha08"

    // Optional dependencies for asynchronous conversions
    implementation "androidx.xr.scenecore:scenecore-guava:1.0.0-alpha08"

    // Use to write unit tests
    testImplementation "androidx.xr.scenecore:scenecore-testing:1.0.0-alpha08"
}

কোটলিন

dependencies {
    implementation("androidx.xr.scenecore:scenecore:1.0.0-alpha08")

    // Optional dependencies for asynchronous conversions
    implementation("androidx.xr.scenecore:scenecore-guava:1.0.0-alpha08")

    // Use to write unit tests
    testImplementation("androidx.xr.scenecore:scenecore-testing:1.0.0-alpha08")
}

নির্ভরতা সম্পর্কে আরও তথ্যের জন্য, বিল্ড নির্ভরতা যোগ করুন দেখুন।

প্রতিক্রিয়া

আপনার মতামত জেটপ্যাককে আরও উন্নত করতে সাহায্য করবে। আপনি যদি নতুন সমস্যা আবিষ্কার করেন অথবা এই লাইব্রেরি উন্নত করার জন্য কোন ধারণা থাকে তাহলে আমাদের জানান। নতুন একটি তৈরি করার আগে দয়া করে এই লাইব্রেরিতে বিদ্যমান সমস্যাগুলি একবার দেখে নিন। আপনি তারকা বোতামে ক্লিক করে বিদ্যমান সমস্যাটিতে আপনার ভোট যোগ করতে পারেন।

একটি নতুন সমস্যা তৈরি করুন

আরও তথ্যের জন্য ইস্যু ট্র্যাকার ডকুমেন্টেশন দেখুন।

সংস্করণ 1.0

সংস্করণ 1.0.0-alpha08

২২ অক্টোবর, ২০২৫

androidx.xr.scenecore:scenecore-*:1.0.0-alpha08 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha08-এ এই কমিটগুলি রয়েছে।

API পরিবর্তনগুলি

  • ActivityPanelEntity.moveActivity নাম পরিবর্তন করে transferActivity করা হয়েছে ( I273c5 , b/430332856 )

বাগ ফিক্স

  • :xr:scenecore:scenecore-spatial-rendering এবং :xr:scenecore:scenecore-spatial-core :xr:scenecore:scenecore ( I6ab65 , b/447000520 ) এর বাস্তবায়ন নির্ভরতা হিসেবে যোগ করা হয়েছে।
  • সেশন ধ্বংসের পরে session.scene অ্যাক্সেস করা হলে Exception থ্রো করা হয়। ( I77e6f )

সংস্করণ 1.0.0-alpha07

২৪ সেপ্টেম্বর, ২০২৫

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 সংস্করণে এই কমিটগুলি রয়েছে।

API পরিবর্তনগুলি

  • fixedAspectRatio নাম পরিবর্তন করে isFixedAspectRatioEnabled করা হয়েছে এবং এটিকে একটি বুলিয়ান প্রপার্টি করা হয়েছে ( I5c4e8 , b/440588971 )
  • Scenecore ফেকগুলি এখন xr:scenecore:scenecore-testing মডিউলে অবস্থিত। ( Idd951 )
  • shouldAutoHideContent এর নাম পরিবর্তন করে isAutoHideContentWhileResizingEnabled এবং shouldAlwaysShowOverlay এর নাম পরিবর্তন করে isAlwaysShowOverlayEnabled ( I97c36 , b/432335421 ) করা হয়েছে।
  • পঠনযোগ্যতার জন্য SceneCore TextureSampler ধ্রুবক আপডেট করা হয়েছে, উদাহরণস্বরূপ TextureSampler.MinFilter.LINEAR এখন TextureSampler.MIN_FILTER_LINEAR ( Ib159c )।
  • দৃশ্যের setKeyEntity সেটারটি keyEntity ভেরিয়েবলের সাথে মার্জ করা হয়েছে। keyEntity AnchorEntity এর মতো একটি অস্থাবর সত্তায় সেট করলে বুলিয়ান false ফেরত দেওয়ার পরিবর্তে একটি IllegalArgumentException নিক্ষেপ করা হবে। ( I62080 , b/428721695 , b/422215745 )
  • Scene এর SpatialModeChangeListener ভেরিয়েবলটি setSpatialModeChangedListener দিয়ে প্রতিস্থাপিত হয়েছে। এটি SpatialModeChangedListener এর পরিবর্তে Consumer<SpatialModeChangeEvent> ব্যবহার করে। setSpatialModeChangedListener এখন ঐচ্ছিকভাবে একটি Executor ব্যবহার করতে পারে। ( 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.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 ফাইলে স্থানান্তরিত হয়েছে এবং Session কে প্রথম প্যারামিটার হিসাবে গ্রহণ করেছে ( I64a2c , b/437186050 )
  • GroupEntity ফ্যাক্টরি এখন Entity এর পরিবর্তে GroupEntity টাইপ প্রদান করে। ( I66042 )

বাগ ফিক্স

  • নিষ্পত্তির পরে যখন কোনও সত্তার উদাহরণ ব্যবহার করা হয় তখন একটি IllegalStateException নিক্ষেপ করুন। ( I90990 , b/427314036 , b/432063442 )

সংস্করণ 1.0.0-alpha06

১৩ আগস্ট, ২০২৫

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 সংস্করণে এই কমিটগুলি রয়েছে।

API পরিবর্তনগুলি

  • SceneCore এর BaseEntity এবং BaseScenePose API গুলি ( 88c0ff6 ) সীমাবদ্ধ করুন

সংস্করণ 1.0.0-alpha05

৩০ জুলাই, ২০২৫

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 )
  • HSM-এ কার্যকলাপের মূল প্যানেলের অনুভূত রেজোলিউশন পর্যবেক্ষণ করার জন্য Scene.kt-তে PerceivedResolution কলব্যাক পদ্ধতি যোগ করা হয়েছে। ( I58084 )
  • SurfaceEntity - অ্যাপ্লিকেশন তৈরির সময় সুপার স্যাম্পলিং অনুরোধ করার জন্য সমর্থন যোগ করা হয়েছে। এটি অ্যাপ্লিকেশনগুলিকে অ্যান্টি-অ্যালিয়াসিংয়ের জন্য সুপার স্যাম্পলিং ফিল্টার ব্যবহার করার অনুমতি দেয়। ( I06913 )
  • ActivitySpacerecommendedContentBoxInFullSpace প্রপার্টি যোগ করা হয়েছে। এটি Full Space মোডে থাকা অবস্থায় কন্টেন্ট রাখার জন্য একটি recommended বক্স প্রদান করে। ( I4cd6f )
  • অ্যাঙ্করিং করার সুবিধা প্রদানকারী চলমান মডিফায়ারের জন্য ওভারলোডেড কনস্ট্রাক্টর সরবরাহ করা হয়েছে। ( Ic0c70 )

API পরিবর্তনগুলি

এই রিলিজের জন্য SceneCore এ ব্যাপক API পরিবর্তন করা হয়েছে। বেশ কয়েকটি ক্লাসের নাম পরিবর্তন করা হয়েছে এবং/অথবা বিভিন্ন মডিউলে স্থানান্তরিত করা হয়েছে, এবং বেশিরভাগ গেটার/সেটার পদ্ধতি Kotlin বৈশিষ্ট্য দিয়ে প্রতিস্থাপিত হয়েছে। যদিও আমরা আমাদের প্রথম বিটা রিলিজ পর্যন্ত ভবিষ্যতের ব্রেকিং API পরিবর্তনগুলি আশা করি, তবে সেগুলি ততটা বিঘ্নিত বা অসংখ্য হবে না।

  • নিম্নলিখিত ক্লাস এবং ইন্টারফেসগুলির নাম পরিবর্তন এবং/অথবা স্থানান্তর করা হয়েছে: 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 )
  • Entity: তে নিম্নলিখিত বৈশিষ্ট্যগুলি পরিবর্তন করা হয়েছে: get/setParent() , setContentDescription ; Deprecated 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 গ্রহণ করার জন্য create প্যারামিটারগুলিকে পরিবর্তন করা হয়েছে। ( Id8883 ) ( I0d247 ), ( I25706 )
  • SpatialEnvironment.requestFullSpaceMode এবং SpatialEnvironment.requestHomeSpaceMode কে Scene-এ সরানো হয়েছে, উদাহরণস্বরূপ session.scene.requestFullSpaceMode() এর পরিবর্তে session.scene.spatialEnvironment.requestFullSpaceMode() ব্যবহার করুন। addOnPassthroughOpacityChangedListener এবং addOnSpatialEnvironmentChangedListener এখন ওভাররাইড রয়েছে যা ঐচ্ছিক Executors গ্রহণ করে। ( I12fe0 ) ( I6b21e )
  • নিম্নলিখিত অবচিত SpatialEnvironment পদ্ধতিগুলি সরানো হয়েছে: togglePassthrough , setPassthrough , setPassthroughOpacity , getPassthroughMode , getPassthroughOpacity , setSkybox , এবং setGeometry . এছাড়াও অবচিত শ্রেণী SpatialEnvironment.PassthroughMode ( I927bd ) ( I927bd ) ( I927bd ) সরানো হয়েছে
  • নিম্নলিখিত SpatialEnvironment গেটার এবং সেটারগুলিকে কোটলিন বৈশিষ্ট্য দিয়ে প্রতিস্থাপন করা হয়েছে: getCurrentPassthroughOpacity() , get/setPassthroughOpacityPreference() , get/setSpatialEnvironmentPreference() , isSpatialEnvironmentPreferenceActive() ( I33a7b ) ( Ie06e2 ) ( Ie06e2 )
  • SpatialEnvironmentPreference.preferredPassthroughOpacity টাইপ Float? থেকে Float এ পরিবর্তন করা হয়েছে। এটি আর নাল মান গ্রহণ করে না। পরিবর্তে, SpatialEnvironment.NO_PASSTHROUGH_OPACITY_PREFERENCE ব্যবহার করা হয় যাতে বোঝা যায় যে কোনও অস্বচ্ছতা পছন্দ নেই। ( I40107 )
  • create পদ্ধতিতে windowBoundsPx প্যারামিটারটি pixelDimensions এবং এর ধরণ Rect থেকে IntSize2d এ আপডেট করা হয়েছে। ( I1926e )
  • SpatialEnvironment কনস্ট্রাক্টর এখন অভ্যন্তরীণ ( I75a51 )
  • ক্লাস SpatialPointerIconNone এবং SpatialPointerIconCircle ক্লাসগুলিকে companion objects SpatialPointerIcon.NONE এবং SpatialPointerIcon.CIRCLE ( I416d2 ) দিয়ে প্রতিস্থাপিত করা হয়েছে।
  • SpatialPointerComponentSpatialPointerIcon আর বাতিলযোগ্য নয়। সিস্টেমের ডিফল্ট পয়েন্টার আইকন ব্যবহার করা উচিত তা নির্দেশ করতে null-এর পরিবর্তে 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 add/remove পদ্ধতি দিয়ে প্রতিস্থাপিত করা হয়েছে। ( I4c956 )
  • AnchorPlacement: planeTypeFilter নাম পরিবর্তন করে anchorablePlaneOrientations রাখা হয়েছে, planeSemanticFilter নাম পরিবর্তন করে anchorablePlaneSemanticTypes রাখা হয়েছে। AnchorEntity তে একটি MovableComponent যোগ করুন অথবা ActivitySpace মিথ্যা রিটার্ন করবে, MoveListener এর নাম পরিবর্তন করে EntityMoveListener shouldDisposeParentAnchor এর নাম পরিবর্তন করে disposeParentOnReAnchor systemMovable create ফাংশন থেকে সরিয়ে creeateCustomMovable , createSystemMovable এবং createAnchorable ( If11c4 ) এর পক্ষে রাখা হয়েছে।
  • SurfaceEntity.featherRadiusX/Y সরিয়ে একটি EdgeFeatheringParams ক্লাস ধারণা যোগ করা হয়েছে। ( Ic78fc )
  • PanelEntity.enablePanelDepthTest() পদ্ধতিটি panelClippingConfig প্রপার্টি দিয়ে প্রতিস্থাপন করা হয়েছে। depth-testing সক্ষম করতে Scene.panelClippingConfig = PanelClippingConfig(isDepthTestEnabled = true) সেট করুন অথবা এটি নিষ্ক্রিয় করতে PanelClippingConfig(isDepthTestEnabled = false) এ সেট করুন। ( I0cbe0 )
  • Scene.mainPanelEntity এখন PanelEntity ( I7125a ) এর পরিবর্তে MainPanelEntity ধরণের।
  • সিন এর 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 মান সহ public object দিয়ে প্রতিস্থাপিত হয়েছে। setSpatialVisibilityChangedListener এখন Consumer<SpatialVisibility> ( Ie7e8c ) এর পরিবর্তে Consumer<SpatialVisibility> Consumer<Int> গ্রহণ করে।
  • PointerCaptureComponent ধ্রুবকগুলির নাম পরিবর্তন করে PointerCaptureComponent.PointerCaptureState অবজেক্টে ( I9c7ac ) স্থানান্তর করা হয়েছে
  • PointerCaptureComponents' StateListener Consumer<Int> দিয়ে প্রতিস্থাপিত করা হয়েছে। ( I9c7ac )
  • InputEventListener Consumer<InputEvent> ( I9c7ac ) দিয়ে প্রতিস্থাপিত করা হয়েছে।
  • setPreferredAspectRatio সিন ক্লাস থেকে SpatialWindow অবজেক্টে স্থানান্তরিত হয়েছে এবং প্রথম প্যারামিটার হিসেবে সেশন গ্রহণ করেছে। ( 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 এখন SecurityException থ্রো করে যখন পর্যাপ্ত অনুমতি মঞ্জুর করা না হয়, SessionCreatePermissionsNotGranted বা SessionConfigurePermissionsNotGranted ফেরত দেওয়ার পরিবর্তে। ( I7c488 )
  • ResizableComponent.create জন্য এখন একটি Consumer<ResizeEvent> ResizeEventListener এর পরিবর্তে Consumer<ResizeEvent> ResizableComponent.size এর নাম পরিবর্তন করে ResizableComponent.affordanceSize ResizableComponent.minimumSize এর নাম পরিবর্তন করে ResizableComponent.minimumEntitySize করা হয়েছে ResizableComponent.minimumEntitySize ResizableComponent.maximumSize এর নাম পরিবর্তন করে ResizableComponent.maximumEntitySize করা হয়েছে, ResizableComponent.autoHideContent এর নাম পরিবর্তন করে ResizableComponent.shouldAutoHideContent এর নাম পরিবর্তন করে ResizableComponent.forceShowResizeOverlay এর নাম পরিবর্তন করে ResizableComponent.shouldAlwaysShowOverlay করা হয়েছে ( I97a2d )
  • androidx.xr.scenecore এবং androidx.xr.compose জন্য minSDK কমিয়ে 24 করা হয়েছে। XR প্যাকেজগুলির রানটাইমে এখনও API 34 প্রয়োজন। ( I17224 )
  • সমস্ত Jetpack XR প্যাকেজ থেকে RequiresApi(34) সীমাবদ্ধতা অপসারণ করা হয়েছে। এই সীমাবদ্ধতাটি অপ্রয়োজনীয় ছিল কারণ Jetpack XR বর্তমানে শুধুমাত্র API লেভেল 34+ সহ ডিভাইসগুলিতে উপলব্ধ। ( Iae0f8 )
  • প্রধান SceneCore আর্টিফ্যাক্ট ( xr:scenecore:scenecore ) তে শুধুমাত্র Kotlin-স্টাইলের অ্যাসিঙ্ক API থাকবে। জাভা ডেভেলপাররা সামঞ্জস্যপূর্ণ API অ্যাক্সেস করার জন্য 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 প্রদানকারী সকল async পদ্ধতি Kotlin suspend ফাংশন দিয়ে প্রতিস্থাপিত হয়েছে। যেসব জাভা ডেভেলপার Kotlin suspend ফাংশনের পরিবর্তে ListenableFuture ভিত্তিক async পদ্ধতি ব্যবহার করতে চান তাদের এখন :xr:scenecore-scenecore-guava এক্সটেনশন ফাংশন ব্যবহার করতে হবে। উদাহরণস্বরূপ, GuavaExrImage এ Guava-সমতুল্য ExrImage async ফাংশন রয়েছে, GuavaScenePose Guava-সমতুল্য ScenePose async ফাংশন রয়েছে, GuavaGltfModel Guava-equivalent GltfModel async ফাংশন রয়েছে, ইত্যাদি। ( If7283 ) ( I0af60 ) ( If7283 ) ( Ia8515 ) ( I4efdf ) ( I54bbf ) ( I3467a ) ( I82a33 )

বাগ ফিক্স

  • মিনিফাই করা ক্লায়েন্টদের জন্য AbstractMethodError প্রতিরোধ করার জন্য Jetpack XR Scenecore ProGuard নিয়ম আপডেট করা হয়েছে। ( I91a01 )
  • Jetpack XR SceneCore ( I4f47e ) এর জন্য Proguard মিনিফিকেশন সমর্থন করার জন্য অতিরিক্ত সংশোধন
  • InputEvent এর HitInfo তে hitPosition যদি সিস্টেম থেকে ফিরে আসা hitPosition null থাকে তাহলে যদি একটি InteractableComponent ক্র্যাশ করতে পারে এমন একটি বাগ সংশোধন করা হয়েছে ( I7a695 )
  • কনফিগ *মোড ভ্যালগুলিকে তাদের আচরণ প্রতিফলিত করার জন্য পুনঃনামকরণ করা হয়েছে। ( I6d247 )
  • SceneCore TestApp-এ FOV এবং HitTest এর সমস্যা সমাধান করা হয়েছে। ( I2c51e )
  • SpatialCapabilities.hasCapability() এর বাগ ঠিক করা হয়েছে যেখানে বিটওয়াইজ OR দিয়ে পাস করা যেকোনো ক্ষমতা সত্য হলে এটি সত্য ফেরত দেবে, যদি না শুধুমাত্র যদি সেগুলি সত্য হয় তবে সত্য ফেরত দেবে। ( I2cd40 )
  • SurfaceEntity.StereoMode.TOP_BOTTOM আপডেট করা হয়েছে যাতে উপরের মানচিত্রটি বাম চোখে এবং নীচের মানচিত্রটি ডান চোখে থাকে। ( I4ae68 )

সংস্করণ 1.0.0-alpha04

৭ মে, ২০২৫

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 মানের মাধ্যমে MV-HEVC প্লেব্যাক সমর্থন করে: MULTIVIEW_LEFT_PRIMARY এবং MULTIVIEW_RIGHT_PRIMARY।
  • PanelEntity.setSize এবং PanelEntity.getSize এখন প্যারেন্ট স্পেসে আকার ফেরত দেয়।
  • Entity.setPose , Entity.getPose , Entity.setScale , Entity.getScale , Entity.setAlpha এবং Entity.getAlpha এখন একটি নতুন প্যারামিটার relativeTo নেয়, যা বিভিন্ন স্পেসের সাথে সম্পর্কিত get/set মানগুলিকে অনুমোদন করে। সমর্থিত মানগুলি হল Parent, Activity এবং Real World স্পেস, এবং এই প্যারামিটারের ডিফল্ট মান হল Parent।
  • দৃশ্যের বিষয়বস্তু ব্যবহারকারীর দৃশ্যক্ষেত্রের ভিতরে বা বাইরে কখন সরে যায় তা পর্যবেক্ষণ করার জন্য SessionExt.kt তে স্থানিক দৃশ্যমানতা কলব্যাক এক্সটেনশন পদ্ধতি যোগ করা হয়েছে।
  • SpatialAudioTracksetPointSourceParams যোগ করা হয়েছে, যা ট্র্যাক তৈরির পরে প্যারামিটারগুলিকে আপডেট করার অনুমতি দেয়।
  • Scenecore API-এর রেফারেন্স সহ একটি নতুন ক্লাস, Scene যোগ করা হয়েছে। Scene Session-এর একটি এক্সটেনশন প্রপার্টি হিসেবে অ্যাক্সেসযোগ্য হবে। SessionExt এর ভিতরের ফাংশনগুলি Scene-এ স্থানান্তরিত করা হয়েছে তাই আমদানিগুলি সামঞ্জস্য করতে হবে; উদাহরণস্বরূপ, SessionExt.getScene(session) . addSpatialCapababilitiesChangedListener বনাম SessionExt.addSpatialCapabilitiesChangedListener
  • ActivityPose.hitTestAsync যোগ করা হয়েছে, যা ভার্চুয়াল কন্টেন্টের বিরুদ্ধে একটি hitTest সক্ষম করে।
  • নতুন কম্পোনেন্ট টাইপ SpatialPointerComponent যোগ করা হয়েছে, যা ক্লায়েন্টদের পয়েন্টারের জন্য রেন্ডার করা আইকন নির্দিষ্ট করতে বা আইকনটি নিষ্ক্রিয় করতে দেয়। এই কম্পোনেন্টটি বর্তমানে শুধুমাত্র PanelEntity ইনস্ট্যান্সের সাথে সংযুক্ত করা যেতে পারে।
  • নতুন PanelEntity কারখানা চালু করা হচ্ছে, যা মিটার অথবা পিক্সেলের মাধ্যমে প্যানেলের মাত্রা গ্রহণ করে। পুরোনো PanelEntity কারখানা প্যানেল অপসারণের জন্য দুটি মাত্রা ধরণের পরামিতি গ্রহণ করছে।

API পরিবর্তনগুলি

  • সমস্ত Jetpack XR প্যাকেজ থেকে RequiresApi(34) সীমাবদ্ধতা অপসারণ করা হয়েছে। এই সীমাবদ্ধতাটি অপ্রয়োজনীয় ছিল কারণ Jetpack XR বর্তমানে শুধুমাত্র API লেভেল 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) দিয়ে প্রতিস্থাপন করা যেতে পারে।
  • XR রানটাইমের সেশনের পরিবর্তে SceneCore এর সেশন ক্লাসটি মুছে ফেলা হয়েছে।
  • StereoSurfaceEntity নাম পরিবর্তন করে SurfaceEntity রাখা হয়েছে।
  • Entity.setSize এবং Entity.getSize মুছে ফেলা হয়েছে, এবং একই পদ্ধতি PanelEntity তে যোগ করা হয়েছে।
  • PointSourceAttributes নাম পরিবর্তন করে PointSourceParams করা হয়েছে।
  • SpatializerConstants.SOURCE\_TYPE\_BYPASS এর নাম পরিবর্তন করে SpatializerConstants.SOURCE\_TYPE\_DEFAULT করা হয়েছে।
  • PointSourceParams সত্তাটি পাবলিক থেকে অভ্যন্তরীণ অ্যাক্সেসে পরিবর্তন করা হয়েছে।
  • AnchorEntity.create জন্য এখন Session.configure()PlaneTrackingMode কনফিগার করা প্রয়োজন।
  • SpatialUser API গুলির জন্য এখন Session.configure()HeadTrackingMode কনফিগার করা প্রয়োজন।
  • যখন ResizableComponent সংযুক্ত না থাকে, তখন এটি ERROR-স্তরের লগের পরিবর্তে INFO-স্তরের লগ দেবে।
  • Fov ক্লাস এখন একটি নিয়মিত কোটলিন ক্লাস।
  • প্রতিটি নির্দিষ্ট সত্তার ধরণকে তার নিজস্ব ফাইলে স্থাপন করার জন্য Entity.kt বিভক্ত করুন।
  • একটি নতুন PanelEntity তৈরি করার সময়, বেশিরভাগ ভিউ একটি FrameLayout এ পুনঃপৈতৃক করা হবে। এটি স্থানিক প্যানেলের সাথে LayoutInspector ব্যবহারকে সহজতর করে।
  • বর্তমানে ব্যবহৃত XrExtensions ইনস্ট্যান্সটি এখন প্ল্যাটফর্মে নিবন্ধিত হয়েছে, সর্বোত্তম প্রচেষ্টার মাধ্যমে, অ্যাপ ডিবাগিংয়ে সহায়তা করার জন্য।

বাগ ফিক্স

  • MovableComponent এবং AnchorPlacement সহ একটি PanelEntity সরানোর সময় যে ক্র্যাশ ঘটতে পারে তা প্রতিরোধ করার জন্য একটি সমাধান যোগ করা হয়েছে।
  • onResizeStart কলব্যাকে ResizableComponent পুরনো আকার প্রদানের সমস্যাটি সমাধান করা হয়েছে।
  • JxrPlatformAdapterAxr এর dispose() একাধিকবার কল করার সময় ক্র্যাশ ঠিক করা হয়েছে।

সংস্করণ 1.0.0-alpha03

২৬ ফেব্রুয়ারী, ২০২৫

androidx.xr.scenecore:scenecore:1.0.0-alpha03 এবং androidx.xr.scenecore:scenecore-testing:1.0.0-alpha03 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha03-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • জেটপ্যাক এক্সআর কোডের জন্য এখন প্রোগার্ড মিনিফিকেশন সমর্থিত

বাগ ফিক্স

  • Jetpack XR SceneCore ( I4f47e ) এর জন্য Proguard মিনিফিকেশন সমর্থন করার জন্য অতিরিক্ত সংশোধন
  • মিনিফাই করা ক্লায়েন্টদের জন্য AbstractMethodError প্রতিরোধ করার জন্য Jetpack XR Scenecore ProGuard নিয়ম আপডেট করা হয়েছে। ( I91a01 )

সংস্করণ 1.0.0-alpha02

১২ ফেব্রুয়ারী, ২০২৫

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.setFullSpaceMode
    • import 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.getEntitiesOfType
    • import androidx.xr.scenecore.getEntityForRtEntity
  • Session.unpersistAnchor(Anchor) মুছে ফেলা হয়েছে
  • Session.createPersistedAnchorEntity(UUID) মুছে ফেলা হয়েছে

জ্ঞাত সমস্যা

  • প্যানেলটি পরবর্তী স্থানে সরানো না হওয়া পর্যন্ত PanelEntity.setCornerRadius() এবং ActivityPanelEntity.setCornerRadius() কার্যকর নাও হতে পারে, প্যানেলটিকে তার বর্তমান অবস্থানে সরিয়ে এই সমস্যা কমানো যেতে পারে।
  • যখন ActivitySpaceBoundsChanged কল করা হয়, তখন কিছু ActivityPose সঠিকভাবে আপডেট নাও হতে পারে। ActivitySpace এ নিম্নলিখিত OnSpaceUpdated কলে এটি আপডেট করা হবে।

ভঙ্গুরতা এবং আচরণগত পরিবর্তন

  • প্যানেলের প্রস্থ বা উচ্চতা 32dp এর চেয়ে কম হলে PanelEntity এবং ActivityPanelEntity এর ডিফল্ট কোণার ব্যাসার্ধ 32dp বা তার চেয়ে কম হবে।

নতুন API এবং ক্ষমতা

  • StereoSurface.CanvasShape প্রবর্তন করে, যা ইমারসিভ মিডিয়া রেন্ডার করার জন্য Spherical এবং Hemispherical ক্যানভাস তৈরির অনুমতি দেয়।
  • StereoSurfaceEntity.create() এখন একটি CanvasShape প্যারামিটার গ্রহণ করে। (এই প্যারামিটারটি বর্তমানে উপেক্ষা করা হয়েছে, তবে ভবিষ্যতের রিলিজে ব্যবহার করা হবে)
  • StereoSurfaceEntity.create() আর Dimensions প্যারামিটার নেয় না। অ্যাপ্লিকেশনগুলিকে CanvasShape সেট করার মাধ্যমে ক্যানভাসের আকার নিয়ন্ত্রণ করতে হবে।
  • StereoSurfaceEntity একটি CanvasShape সদস্য আছে যা গতিশীলভাবে সেট করা যেতে পারে।
  • StereoSurfaceEntity.dimensions এখন একটি পঠনযোগ্য সম্পত্তি; অ্যাপ্লিকেশনগুলিকে মাত্রা পরিবর্তন করার জন্য CanvasShape সেট করা উচিত।
  • StereoSurfaceEntity এখন StereoMode নির্মাণের পরে পুনরায় সেট করার অনুমতি দেয়।

অন্যান্য পরিবর্তন

  • কম্পাইল-টাইম minSDK কমিয়ে 24 করা হয়েছে। সমস্ত Jetpack XR API-এর রানটাইমে API 34 প্রয়োজন হবে।
  • SceneCore এর Session factory ( Session.create ) আর SCENE_UNDERSTANDING অনুমতি অর্জনের উদ্দেশ্যে কাজ শুরু করে না। পরিবর্তে, ক্লায়েন্ট অ্যাপ্লিকেশনটিকে অ্যাঙ্কর তৈরি করার চেষ্টা করার আগে ব্যবহারকারীর কাছ থেকে স্পষ্টভাবে অনুমতির অনুরোধ করতে হবে। ব্যবহারকারী যদি অনুমতি না দেন তবে অ্যাঙ্কর তৈরি ব্যর্থ হবে।

বাগ সংশোধন

  • getActivitySpacePose() ActivitySpace স্কেলের জন্য হিসাব করার জন্য স্থির করা হয়েছে, যা সর্বদা নন-স্কেলড মিটার ফেরত দেওয়ার পরিবর্তে স্কেলড মিটারে অনুবাদ মান ফেরত দেয়। transformPoseTo এখন উৎস বা গন্তব্যস্থলে ActivitySpace জড়িত থাকলে স্থানাঙ্ক পরিবর্তন গণনা করার জন্য সঠিক ইউনিট ব্যবহার করে।
  • setSpatialEnvironmentPreference(new SpatialEnvironmentPreference(null, geom)) ব্যবহার করে যখনই একটি নাল স্কাইবক্স পছন্দ পাস করা হবে তখন স্কাইবক্সটি এখন সম্পূর্ণ কালো স্কাইবক্সে সেট করা হবে। সিস্টেমের ডিফল্ট স্কাইবক্স এবং জ্যামিতিতে ফিরে যেতে, setSpatialEnvironmentPreference(null).

সংস্করণ 1.0.0-alpha01

১২ ডিসেম্বর, ২০২৪

androidx.xr.scenecore:scenecore-* 1.0.0-alpha01 প্রকাশিত হয়েছে।

প্রাথমিক প্রকাশের বৈশিষ্ট্য: জেটপ্যাক সিনকোরের প্রাথমিক ডেভেলপার রিলিজ, যা নিমজ্জিত দৃশ্য এবং পরিবেশ তৈরি এবং পরিচালনা করার জন্য একটি 3D দৃশ্য গ্রাফ লাইব্রেরি। এই লাইব্রেরি আপনাকে একে অপরের সাথে এবং আপনার ভার্চুয়াল বা বাস্তব-বিশ্বের পরিবেশের সাথে সম্পর্কিত 3D মডেল এবং কন্টেন্ট প্যানেল স্থাপন এবং সাজানোর অনুমতি দেয়।

  • স্থানিক পরিবেশ : আপনার পরিবেশের XR দৃশ্যের পটভূমি হিসেবে একটি স্কাইবক্স চিত্র এবং/অথবা 3D মডেল জ্যামিতি ব্যবহার করে সম্পূর্ণরূপে নিমজ্জিত অভিজ্ঞতা তৈরি করুন। অথবা পাসথ্রু সক্ষম করুন, যাতে আপনার ভার্চুয়াল দৃশ্য ব্যবহারকারীর বাস্তব-বিশ্বের পরিবেশের সাথে একীভূত হতে পারে।
  • PanelEntity : আপনার 3D দৃশ্যে 2D কন্টেন্ট যোগ করুন, স্ট্যান্ডার্ড অ্যান্ড্রয়েড লেআউট এবং অ্যাক্টিভিটিগুলিকে স্থানিক প্যানেলে এম্বেড করে যা ভাসতে পারে বা বাস্তব-বিশ্বের পৃষ্ঠে নোঙ্গর করা যেতে পারে।
  • GltfModelEntity : আপনার দৃশ্যে 3D মডেল স্থাপন, অ্যানিমেট এবং ইন্টারঅ্যাক্ট করুন। বিদ্যমান মডেলগুলির সাথে ইন্টিগ্রেশন সহজ করার জন্য SceneCore glTF ফাইল ফর্ম্যাট সমর্থন করে।
  • স্পেশিয়ালঅডিও : সম্পূর্ণরূপে নিমজ্জিত, স্থানিক শব্দের জন্য আপনার 3D দৃশ্যে অ্যাম্বিয়েন্ট এবং পয়েন্ট অডিও উৎস যোগ করুন।
  • StereoSurfaceEntity : SceneCore অ্যান্ড্রয়েড সারফেসে রেন্ডার করা কন্টেন্টের বাম/ডান চোখের রাউটিং সমর্থন করে। এটি স্টেরিওস্কোপিক কন্টেন্টকে পাশাপাশি বা উপরে-নীচে ফর্ম্যাটে রেন্ডার করতে ব্যবহার করা যেতে পারে, যেমন স্টেরিও ফটো, 3D ভিডিও, অথবা অন্যান্য গতিশীলভাবে রেন্ডার করা UI। অ্যাপ্লিকেশনগুলিতে ভিডিও ডিকোডিংয়ের জন্য MediaPlayer বা ExoPlayer ব্যবহার করা উচিত।
  • কম্পোনেন্ট সিস্টেম: সিনকোর আপনার XR কন্টেন্টে ক্ষমতা যোগ করার জন্য একটি শক্তিশালী এবং নমনীয় কম্পোনেন্ট সিস্টেম অফার করে, যার মধ্যে ব্যবহারকারীদের মডেল এবং প্যানেলগুলি সরানোর, আকার পরিবর্তন করার এবং ইন্টারঅ্যাক্ট করার সুযোগ রয়েছে।
  • অ্যাঙ্কর : পাসথ্রু সক্ষম করে, আপনি প্যানেল এবং মডেলগুলিকে প্রকৃত পৃষ্ঠের সাথে সংযুক্ত করতে পারেন, যা ব্যবহারকারীদের তাদের বাস্তব-বিশ্বের পরিবেশে ভার্চুয়াল সামগ্রীর নির্বিঘ্ন একীকরণ প্রদান করে।
  • ব্যবহারকারীর ভঙ্গি: ভার্চুয়াল দৃশ্যে ব্যবহারকারীর অবস্থান অ্যাক্সেস করুন, যাতে আপনার বিষয়বস্তু ব্যবহারকারীর অবস্থানের চারপাশে পরিচালিত হয়।
  • স্থানিক সক্ষমতা : সম্পূর্ণরূপে অভিযোজিত অ্যাপ তৈরি করুন যা উপলব্ধ থাকাকালীন স্থানিক ক্ষমতার সুবিধা গ্রহণ করে, যেমন UI কন্টেন্টের 3D অবস্থান। শুধু তাই নয়, ব্যবহারকারী তাদের Android XR ডিভাইসটি কীভাবে ব্যবহার করছেন তার উপর ভিত্তি করে অভিজ্ঞতা পরিবর্তন করার জন্য, অ্যাপটি কার্যকর করার সময় ক্ষমতার পরিবর্তনগুলি পর্যবেক্ষণ করতে পারে।

জ্ঞাত সমস্যা

  • বর্তমানে Jetpack SceneCore ব্যবহার করার জন্য minSDK এর 30 প্রয়োজন। সমাধান হিসেবে নিম্নলিখিত ম্যানিফেস্ট এন্ট্রি যোগ করুন <uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/> যাতে আপনি 23 এর minSDK দিয়ে তৈরি এবং চালাতে পারেন।
  • স্বয়ংক্রিয়ভাবে অ্যাক্টিভিটি পুনরায় তৈরি করার বিভিন্ন পরিস্থিতিতে সেশন অবৈধ হয়ে যেতে পারে, যার মধ্যে রয়েছে একটি প্রধান প্যানেলের আকার পরিবর্তন করা, পেরিফেরাল সংযোগ করা এবং হালকা এবং অন্ধকার মোডের মধ্যে পরিবর্তন করা। যদি আপনি সেশন অবৈধকরণের সমস্যার সম্মুখীন হন, তাহলে সমাধানের জন্য প্রধান প্যানেলকে আকার পরিবর্তনযোগ্য করে তোলা, একটি গতিশীল প্যানেল সত্তা ব্যবহার করা, নির্দিষ্ট কনফিগারেশন পরিবর্তনের জন্য অ্যাক্টিভিটি পুনর্গঠন অক্ষম করা বা হালকা/অন্ধকার মোড থিম পরিবর্তন অক্ষম করা অন্তর্ভুক্ত।
  • GltfEntity-তে চলমান এবং আকার পরিবর্তনযোগ্য উপাদানগুলি সমর্থিত নয়।
  • GltfEntity-তে Entity.getSize() সমর্থিত নয়।
  • AndroidManifest-এ android.permission.SCENE_UNDERSTANDING অনুমতির জন্য Jetpack XR অ্যাপগুলির প্রয়োজন।
  • একটি সেশন তৈরি করা শুধুমাত্র একটি 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 কীভাবে সক্ষম করবেন সে সম্পর্কে আরও তথ্যের জন্য এই নির্দেশিকাটি দেখুন।