Jetpack XR SDK, 3D मॉडल के साथ काम करते समय, glTF
2.0 ओपन स्टैंडर्ड को सपोर्ट करता है. जब Android XR,
Jetpack XR SDK की मदद से बनाए गए ऐप्लिकेशन रेंडर करता है, तब 3D मॉडल, glTF 2.0 स्टैंडर्ड में तय की गई फ़िज़िकली-बेस्ड
रेंडरिंग(पीबीआर) तकनीकों (
सपोर्ट किए गए एक्सटेंशन के साथ) की मदद से रेंडर किए जाएंगे. ज़्यादातर डिजिटल कॉन्टेंट क्रिएशन (डीसीसी)
टूल, जैसे Autodesk Maya, Maxon ZBrush,
Blender और Spline 3D मॉडल को
glTF फ़ॉर्मैट (.gltf या .glb फ़ाइलें) में एक्सपोर्ट कर सकते हैं.
अगर उपयोगकर्ता या आपके
ऐप्लिकेशन ने SpatialEnvironment स्काईबॉक्स तय किया है, तो 3D मॉडल, एनवायरमेंट
स्काईबॉक्स से मिली लाइटिंग की जानकारी के साथ दिखेंगे. रिफ़्लेक्टिव मटीरियल और स्पेक्युलर हाइलाइट भी एनवायरमेंट स्काईबॉक्स को रिफ़्लेक्ट करेंगे. अगर पासथ्रू की सुविधा चालू की गई है, तो लाइटिंग, रिफ़्लेक्शन, और स्पेक्युलर हाइलाइट, एक दिशा में आने वाली लाइट वाले, अच्छी रोशनी वाले कमरे पर आधारित होंगे.
सपोर्ट किए गए मटीरियल की खास जानकारी पाने के लिए, Khronos साइट पर glTF पीबीआर प्रॉपर्टी देखें. इन और अन्य प्रॉपर्टी की मदद से, अपने 3D मॉडल को पसंद के मुताबिक बनाने का तरीका जानने के लिए, अपने ऐप्लिकेशन में 3D मॉडल को पसंद के मुताबिक बनाना लेख पढ़ें
अपनी ऐसेट वाले फ़ोल्डर में glTF फ़ाइल जोड़ना
glTF फ़ाइल मिलने के बाद, अगला चरण यह है कि इसे Android Studio में ऐसेट डायरेक्ट्री में जोड़ा जाए. हमारा सुझाव है कि ऐसेट के टाइप को बेहतर तरीके से व्यवस्थित करने के लिए, models डायरेक्ट्री बनाएं.

SpatialGltfModel का इस्तेमाल करके, 3D ऑब्जेक्ट जोड़ना
Android XR, 3D मॉडल के लिए glTF फ़ॉर्मैट को सपोर्ट करता है. आम तौर पर, इन्हें
.glb फ़ाइलों के तौर पर सेव किया जाता है. इन ऑब्जेक्ट को अपने लेआउट में जोड़ने के लिए, SpatialGltfModel कंपोज़ेबल का इस्तेमाल करें. यह एपीआई, ऐसेट लोड करने और उनकी स्थिति मैनेज करने की प्रोसेस को आसान बनाता है.
किसी मॉडल को दिखाने के लिए, सबसे पहले उसके सोर्स और स्थिति तय करने के लिए
rememberSpatialGltfModelState का इस्तेमाल करें. मॉडल को अपने ऐप्लिकेशन के assets फ़ोल्डर, URI, या
raw data से लोड किया जा सकता है.
val modelState = rememberSpatialGltfModelState( source = SpatialGltfModelSource.fromPath( Paths.get("models/model_name.glb") ) )
स्थिति तय हो जाने के बाद, इसे सबस्पेस में रेंडर करने के लिए, SpatialGltfModel कंपोज़ेबल का इस्तेमाल करें.
SpatialGltfModel(state = modelState, modifier = SubspaceModifier)
Compose SceneCoreEntity का इस्तेमाल करके, 3D मॉडल जोड़ना
SceneCoreEntity का इस्तेमाल करके, 3D मॉडल जोड़ने के लिए, सबसे पहले
glTF को मेमोरी में लोड करना होगा.GltfModel.create() इसके बाद, SceneCore कॉम्पोनेंट को XR लेआउट के लिए
Compose से जोड़ने के लिए, SceneCoreEntity में 3D
मॉडल जोड़ा जा सकता है. अपने लेआउट में 3D ऑब्जेक्ट जोड़ने के लिए,
SceneCoreEntity का इस्तेमाल करना लेख पढ़ें.
Jetpack Scenecore का इस्तेमाल करके, 3D मॉडल जोड़ना
glTF मॉडल लोड करने के लिए, GltfModel.create() को कॉल करें.
val gltfModel = GltfModel.create(session, Paths.get("models", "saturn_rings.glb"))
इस समय, मॉडल मेमोरी में लोड हो जाता है, लेकिन यह अब तक रेंडर नहीं हुआ है. अगर आपको कई 3D मॉडल लोड करने हैं या आपका मॉडल बड़ा है, तो उन्हें पहले से एसिंक्रोनस तरीके से लोड करना बेहतर है. इससे, उपयोगकर्ताओं को आपके मॉडल के मेमोरी में लोड होने का इंतज़ार नहीं करना पड़ेगा.
glTF को ActivitySpace में जोड़ें. कोई एंटिटी बनाने और उसे
ActivitySpace में जोड़ने के लिए, Call
GltfModelEntity.create को कॉल करें. सबसे सही तरीका यह है कि यह पक्का किया जाए कि ऐप्लिकेशन ऐसी स्थिति में हो जिसमें स्पेशल सुविधाएं इस्तेमाल की जा सकती हैं.
if (session.scene.spatialCapabilities.contains(SpatialCapability.SPATIAL_3D_CONTENT)) { val gltfEntity = GltfModelEntity.create(session, gltfModel) }
अब आपको अपना ऐप्लिकेशन चलाने पर, लोड किया गया 3D मॉडल दिखेगा.

Scene Viewer का इस्तेमाल करके, 3D मॉडल लोड करना
अगर आपको बुनियादी इंटरैक्शन की सुविधाओं के साथ 3D मॉडल लोड करने का सबसे आसान तरीका चाहिए, तो मोबाइल पर Scene Viewer का इस्तेमाल किया जा सकता है. Android XR और मोबाइल पर Scene Viewer के बीच एक अहम अंतर यह है कि Scene Viewer सिर्फ़ glTF फ़ाइल की ओर इशारा करने वाले फ़ाइल यूआरआई पैरामीटर को सपोर्ट करता है. साथ ही, अन्य सभी पैरामीटर को अनदेखा कर दिया जाता है.
Scene Viewer एक अलग ऐप्लिकेशन है, जिसे इंटेंट का इस्तेमाल करके शुरू किया जाता है. यह फ़ुल स्पेस मोड में चलता है. इसलिए, इसे शुरू करने पर, आपका ऐप्लिकेशन नहीं दिखेगा और Scene Viewer फ़ोकस में होगा. आपके बदले गए सभी एनवायरमेंट उपयोगकर्ता की सिस्टम की प्राथमिकताओं पर रीसेट हो जाएंगे.
Android XR पर Scene Viewer
में glTF फ़ाइल देखने के लिए, Intent का इस्तेमाल करने का एक उदाहरण यहां दिया गया है:
val url = "https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/Avocado/glTF/Avocado.gltf" val sceneViewerIntent = Intent(Intent.ACTION_VIEW) val intentUri = Uri.parse("https://arvr.google.com/scene-viewer/1.2") .buildUpon() .appendQueryParameter("file", url) .build() sceneViewerIntent.setData(intentUri) try { startActivity(sceneViewerIntent) } catch (e: ActivityNotFoundException) { // There is no activity that could handle the intent. }
Scene Viewer के इंटरैक्टिविटी विकल्पों के बारे में ज़्यादा जानने के लिए, 3D मॉडल डिज़ाइन से जुड़ा हमारा दस्तावेज़ देखें.
glTF एक्सटेंशन
Jetpack XR SDK, कई glTF एक्सटेंशन को सपोर्ट करता है. इनसे 3D मॉडल की सुविधाएं बढ़ जाती हैं. ये सुविधाएं,
GltfModelEntity और Scene Viewer, दोनों के ज़रिए उपलब्ध हैं.
KHR_animation_pointerKHR_draco_mesh_compressionKHR_lights_punctualKHR_materials_clearcoatKHR_materials_sheenKHR_materials_unlitKHR_materials_variantsKHR_mesh_quantizationKHR_texture_basisuKHR_texture_transformEXT_texture_webp