पॉली एपीआय: आपल्या व्हीआर आणि एआर Android अॅप्ससाठी 3 डी मालमत्ता पुनर्प्राप्त करीत आहे

लेखक: Peter Berry
निर्मितीची तारीख: 14 Lang L: none (month-012) 2021
अद्यतन तारीख: 4 मे 2024
Anonim
पॉली एपीआय: आपल्या व्हीआर आणि एआर Android अॅप्ससाठी 3 डी मालमत्ता पुनर्प्राप्त करीत आहे - अनुप्रयोग
पॉली एपीआय: आपल्या व्हीआर आणि एआर Android अॅप्ससाठी 3 डी मालमत्ता पुनर्प्राप्त करीत आहे - अनुप्रयोग

सामग्री


आपल्याकडे व्हर्च्युअल रिअलिटी (व्हीआर) किंवा ऑगमेंटेड रिअॅलिटी (एआर) मोबाइल अ‍ॅपसाठी एक चांगली कल्पना आहे, परंतु आपली दृष्टी जीवनात कशी आणावी याची कल्पना नाही?

जोपर्यंत आपण Android विकसक नसल्यास जो अनुभवी 3 डी कलाकार देखील होतो, तोपर्यंत विसर्जित करण्यासाठी आवश्यक असलेल्या सर्व मालमत्ता तयार करणे, 360 डिग्री अनुभव, एक त्रासदायक प्रक्रिया असू शकते.

फक्त 3 डी मॉडेल्स तयार करण्यासाठी आपल्याकडे आवश्यक वेळ, संसाधने किंवा अनुभव नसल्यामुळे, नाही याचा अर्थ असा की आपण एक चांगला व्हीआर किंवा एआर मोबाइल अॅप तयार करू शकत नाही! वर्ल्ड वाइड वेबवर विनामूल्य 3 डी संसाधने उपलब्ध आहेत, तसेच आपल्या Android अनुप्रयोगांमध्ये ही मालमत्ता डाउनलोड आणि प्रस्तुत करण्यासाठी आपल्याला आवश्यक असलेल्या सर्व एपीआय, फ्रेमवर्क आणि लायब्ररी आहेत.

पुढील वाचा: आपण आता डेड्रीम व्हीआर वापरून कोणत्याही वेबसाइटला भेट देऊ शकता. तेही एक.

या लेखात, आम्ही पॉलीकडे पाहत आहोत, एक ऑनलाइन रेपॉजिटरी आणि एपीआय, जी आपल्या बोटांच्या टोकावर हजारो 3 डी मालमत्ता ठेवते. या लेखाच्या शेवटी, आपण असा अॅप तयार केला आहे जो रनटाइमवेळी 3 डी पॉली मालमत्ता पुनर्प्राप्त करेल आणि त्यानंतर अँड्रॉइड लायब्ररीच्या लोकप्रिय प्रक्रियेचा वापर करुन तो प्रस्तुत करतो.


पॉली सह 3 डी मालमत्ता प्रदर्शित करत आहे

आपण कधीही युनिटीच्या विकासामध्ये अडथळा आणला असेल तर पॉली रिपॉझिटरी युनिटी setसेट स्टोअर सारखीच आहे - याशिवाय पॉलीमधील सर्व काही विनामूल्य आहे!

पॉलीचे बरेच 3 डी मॉडेल क्रिएटिव्ह कॉमन्स परवान्याअंतर्गत प्रकाशित झाले आहेत, जोपर्यंत आपण निर्मात्यास योग्य क्रेडिट देत नाही तोपर्यंत आपण या मालमत्ता वापरण्यास, सुधारित करण्यास आणि रीमिक्स करण्यास मोकळे आहात.

पॉलीचे सर्व 3 डी मॉडेल Google च्या व्हीआर आणि एआर प्लॅटफॉर्मशी सुसंगत राहण्यासाठी डिझाइन केले आहेत, जसे की डेड्रीम आणि एआरकोर, परंतु आपण त्यांना जिथे जिथे आणि तरीही इच्छित असाल वापरू शकता - संभाव्यत: आपण ते Appleपलच्या एआरकीटसह देखील वापरू शकता!

पॉली मालमत्ता पुनर्प्राप्त आणि प्रदर्शित करण्याची वेळ येते तेव्हा आपल्याकडे दोन पर्याय असतात. प्रथम, आपण आपल्या संगणकावर मालमत्ता डाउनलोड करू शकता आणि नंतर त्यास Android स्टुडिओमध्ये आयात करू शकता, जेणेकरून ते आपल्या अनुप्रयोगासह शिपिंग करतील आणि त्याच्या एपीके आकारासाठी योगदान देतील किंवा आपण पॉली एपीआय वापरुन ही मालमत्ता पुनर्प्राप्त करू शकता.


क्रॉस-प्लॅटफॉर्म, आरईएसटी-आधारित पॉली एपी 3 डी मॉडेल्सच्या पॉलिच्या प्रचंड संग्रहात प्रोग्रामेटिक, केवळ-वाचनीय प्रवेश प्रदान करते. आपल्या APK सह मालमत्ता गुंडाळण्यापेक्षा हे अधिक गुंतागुंतीचे आहे, परंतु धावत्या वेळी पॉली मालमत्ता पुनर्प्राप्त करण्याचे बरेच फायदे आहेत, मुख्य म्हणजे ते आपले APK आकार नियंत्रित ठेवण्यास मदत करते, जे आपला अनुप्रयोग किती लोक डाउनलोड करतात यावर परिणाम होऊ शकते.

आपण आपल्या वापरकर्त्यांना अधिक निवड देण्यासाठी पॉली एपीआय देखील वापरू शकता, उदाहरणार्थ आपण मोबाइल गेम विकसित करत असल्यास आपण आपल्या वापरकर्त्यांना आपल्या वर्णांच्या मॉडेलच्या श्रेणीतून निवड करू शकता.

आपण पॉली मॉडेल्स सुधारित करण्यास मोकळे असल्यामुळे आपण आपल्या वापरकर्त्यांना त्यांच्या निवडलेल्या वर्णांना चिमटा घेऊ देखील देऊ शकता, उदाहरणार्थ केस किंवा डोळ्याचे रंग बदलून किंवा वेगवेगळ्या शस्त्रे आणि चिलखत सारख्या इतर पॉली मालमत्तेसह एकत्र करून. अशाप्रकारे, पॉली एपीआय आपल्याला 3 डी मालमत्तांची प्रभावी श्रेणी वितरित करण्यात मदत करू शकते, ज्यामध्ये अनुभव वैयक्तिकृत करण्यासाठी भरपूर वाव आहे - आणि सर्व काही तुलनेने थोडे काम करण्यासाठी. आपल्या सर्व वापरकर्त्यांना खात्री पटेल की आपण या सर्व 3 डी मॉडेल्सवर सावधगिरीने एक टन वेळ खर्च केला आहे!

3 डी मॉडेलिंग प्रकल्प तयार करत आहे

आम्ही अनुप्रयोग तयार करणार आहोत जो अनुप्रयोग प्रथम लाँच केला जातो तेव्हा विशिष्ट पॉली मालमत्ता पुनर्प्राप्त करतो आणि नंतर वापरकर्त्याच्या विनंतीनुसार ती मालमत्ता फुलस्क्रीन मोडमध्ये प्रदर्शित करते.

ही मालमत्ता पुनर्प्राप्त करण्यात आम्हाला मदत करण्यासाठी, मी इंधन वापरत आहे, जे कोटलिन आणि Android साठी HTTP नेटवर्किंग लायब्ररी आहे. आपल्या आवडीच्या सेटिंग्‍जसह एक नवीन प्रोजेक्ट तयार करुन प्रारंभ करा, परंतु जेव्हा “कोटलिन समर्थन समाविष्ट करा” असे विचारले जाईल तेव्हा.

आपण पॉली एपीआय वर करता त्या सर्व कॉलमध्ये एक एपीआय की असणे आवश्यक आहे, जी आपला अ‍ॅप ओळखण्यासाठी आणि वापर मर्यादा अंमलात आणण्यासाठी वापरली जाते. विकास आणि चाचणी दरम्यान, आपण बर्‍याचदा प्रतिबंधित API की वापरता, परंतु आपल्याकडे हा अ‍ॅप सोडण्याची काही योजना असल्यास आपल्याकडे Android- प्रतिबंधित API की वापरणे आवश्यक आहे.

प्रतिबंधित की तयार करण्यासाठी आपल्याला आपल्या प्रकल्पाचे SHA-1 स्वाक्षरी प्रमाणपत्र माहित असणे आवश्यक आहे, म्हणून आता ही माहिती मिळवू याः

  • Android स्टुडिओचा “ग्रॅडल” टॅब निवडा (जिथे खालील स्क्रीनशॉटमध्ये कर्सर स्थित आहे). हे "ग्रॅडल प्रोजेक्ट्स" पॅनेल उघडेल.

  • “ग्रॅडल प्रोजेक्ट्स” पॅनेलमध्ये आपल्या प्रोजेक्टचे ‘रूट’ विस्तृत करण्यासाठी डबल-क्लिक करा आणि नंतर “टास्क> अँड्रॉइड> साइन इन रिपोर्टिंग” निवडा. हे Android स्टुडिओ विंडोच्या तळाशी एक नवीन पॅनेल उघडेल.
  • 'टॉगल कार्ये अंमलबजावणी / मजकूर मोड' बटण (जिथे कर्सर खालील स्क्रीनशॉटमध्ये स्थित आहे) निवडा.

“रन” पॅनेल आता आपल्या प्रकल्पाच्या SHA-1 फिंगरप्रिंटसह बरीच माहिती प्रदर्शित करण्यासाठी अद्यतनित करेल.

एक Google मेघ प्लॅटफॉर्म खाते तयार करा

आवश्यक एपीआय की प्राप्त करण्यासाठी आपल्याला Google मेघ प्लॅटफॉर्म (जीपीसी) खाते आवश्यक आहे.

आपल्याकडे खाते नसल्यास आपण विनामूल्य पृष्ठासाठी मेघ प्लॅटफॉर्मवर प्रयत्न करून आणि सूचनांचे अनुसरण करून 12 महिन्यांच्या विनामूल्य चाचणीसाठी साइन अप करू शकता. लक्षात ठेवा की क्रेडिट कार्ड किंवा डेबिट कार्ड आवश्यक आहे, परंतु वारंवार विचारले जाणारे प्रश्न पृष्ठानुसार हे केवळ आपली ओळख सत्यापित करण्यासाठी वापरली जाते आणि "आपल्या विनामूल्य चाचणी दरम्यान आपल्याला शुल्क आकारले जाणार नाही किंवा बिल दिले जाणार नाही."

आपली पॉली API की मिळवा

एकदा आपण सर्व साइन अप केले की आपण पॉली एपीआय सक्षम करू शकता आणि आपली की तयार करू शकता:

  • जीसीपी कन्सोलकडे जा.
  • वरच्या-डाव्या कोपर्‍यात रेषांकित चिन्ह निवडा आणि “एपीआय आणि सेवा> डॅशबोर्ड” निवडा.
  • “एपीआय आणि सेवा सक्षम करा” निवडा.
  • डावीकडील मेनूमध्ये, “इतर” निवडा.
  • “पॉली एपीआय” कार्ड निवडा.
  • “सक्षम करा” बटणावर क्लिक करा.
  • काही क्षणानंतर, आपल्याला नवीन स्क्रीनवर नेले जाईल; साइड-मेनू उघडा आणि “एपीआय आणि सेवा> प्रमाणपत्रे” निवडा.

  • त्यानंतरच्या पॉपअपमध्ये, “प्रतिबंधित की” निवडा.
  • आपल्या कीला एक विशिष्ट नाव द्या.
  • “अनुप्रयोग प्रतिबंध” अंतर्गत “Android अ‍ॅप्स” निवडा.
  • “पॅकेजचे नाव आणि फिंगरप्रिंट जोडा” निवडा.
  • “साइन इन-प्रमाणपत्र फिंगरप्रिंट” फील्डमध्ये आपल्या प्रोजेक्टचा SHA-1 फिंगरप्रिंट कॉपी / पेस्ट करा.
  • आपल्या प्रोजेक्टचे पॅकेज नाव प्रविष्ट करा (ते आपल्या मॅनिफेस्टमध्ये आणि प्रत्येक वर्ग फाईलच्या शीर्षस्थानी दिसते).
  • “सेव्ह” वर क्लिक करा.

आपल्‍याला आता आपल्‍या प्रोजेक्टच्या “क्रेडेन्शियल्स” स्क्रीनवर नेले जाईल, ज्यात आपण तयार केलेल्या पॉली-सक्षम API कीसह - आपल्या सर्व API की ची सूची आहे.

प्रकल्प अवलंबन: इंधन, पी 3 डी आणि कोटलिन विस्तार

पॉली मालमत्ता पुनर्प्राप्त करण्यासाठी आणि प्रदर्शित करण्यासाठी आम्हाला काही अतिरिक्त लायब्ररीच्या मदतीचा हात लागेलः

  • इंधन. पॉलीकडे सध्या अधिकृत Android टूलकिट नाही, म्हणून आपणास थेट त्याच्या आरईएसटी इंटरफेसचा वापर करून API सह कार्य करण्याची आवश्यकता आहे. ही प्रक्रिया सुलभ करण्यासाठी मी इंधन HTTP नेटवर्किंग लायब्ररी वापरत आहे.
  • Android साठी प्रक्रिया करत आहे. पॉली मालमत्ता प्रदर्शित करण्यासाठी मी या लायब्ररीचे पी 3 डी प्रस्तुतकर्ता वापरत आहे.

आपल्या प्रोजेक्टची बिल्ड.gradle फाईल उघडा आणि या दोन लायब्ररींना प्रकल्प अवलंबन म्हणून जोडा:

अवलंबित्व {अंमलबजावणी फाइल वृक्ष (समावेश:, दिर: लिब्स) अंमलबजावणी "org.jetbrains.kotlin: kotlin-stdlib-jre7: $ kotlin_version" अंमलबजावणी com.android.support:appcompat-v7:27.1.1 // इंधन ग्रंथालय जोडा / / अंमलबजावणी com.github.kittinunf.fuel: इंधन-Android: 1.13.0 // Android इंजिनसाठी प्रक्रिया जोडा // अंमलबजावणी org.p5android: प्रक्रिया-कोर: 4.0.1}

आमचा कोड अधिक संक्षिप्त करण्यासाठी, मी कोटलिन अँड्रॉइड विस्तार देखील वापरत आहे, म्हणून जेव्हा आपल्याकडे बिल्ड.gradle फाईल उघडली असेल तेव्हा हे प्लगइन जोडा:

प्लगइन लागू करा: कोटलिन-अँड्रॉइड-विस्तार

शेवटी, आम्ही इंटरनेटवरून मालमत्ता पुनर्प्राप्त करीत असल्याने आमच्या अॅपला इंटरनेट परवानगी आवश्यक आहे. आपला मॅनिफेस्ट उघडा आणि पुढील जोडा:

आपली API की जोडत आहे

प्रत्येक वेळी आमच्या अॅपने पोलीकडून एखाद्या मालमत्तेची विनंती केली तेव्हा त्यात वैध API की समाविष्ट करणे आवश्यक आहे. मी प्लेसहोल्डर मजकूर वापरत आहे, परंतु आपण हे केलेच पाहिजे अनुप्रयोग कधीही कार्य करत असल्यास या प्लेसहोल्डरला आपल्या स्वत: च्या एपीआय की सह पुनर्स्थित करा.

मी एक चेक देखील जोडत आहे, जेणेकरून आपण “INSERT-YOUR-API-KEY” मजकूर पुनर्स्थित करणे विसरल्यास अनुप्रयोग एक चेतावणी दर्शवेल:

आयात android.os.Bundle Import android.support.v7.app.appCompatActivity वर्ग मुख्य क्रियाकलाप: AppCompatActivity () {साथी ऑब्जेक्ट {val "APIKey =" INSERT-YOUR-API-KEY "} अधिलिखित मजा onCreate (सेव्हिडेंटस्टेट: बंडल)? सुपर.ऑनक्रिएट (सेव्हिडइन्स्टेन्सस्टेट) सेटकाँटेन्ट व्ह्यू (आर.लेआउट.एक्टिव्हिटी_मेन) // एपीआय की “इनसर्ट” ने सुरू केली असेल तर .... // जर (APIKey.startsWith ("INSERT")) {// नंतर खालील टोस्ट प्रदर्शित करा… .// टोस्ट.मेकटेक्स्ट (हे, "आपण आपली एपीआय की अद्यतनित केली नाही", टोस्ट. एलएनजीटीएचएसएचओआरटी) .शोधा ()} अन्यथा ... ... ... ...

मालमत्ता पुनर्प्राप्त करीत आहे

आपण Google पॉली साइटवर कोणतीही मालमत्ता निवडू शकता, परंतु मी पृथ्वी ग्रहाचे हे मॉडेल वापरत आहे.

आपण आयडी वापरुन मालमत्ता पुनर्प्राप्त करता जी URL स्लगच्या शेवटी दिसते (मागील स्क्रीनशॉटमध्ये हायलाइट केलेली). आम्ही हा एसेट आयडी पॉली एपीआय होस्टसह एकत्रित करतो, जो “https://poly.googleapis.com/v1” आहे.

आयात android.content.Inttent आयात android.os.Bundle Import android.support.v7.app.AppCompatActivity आयात android.widget.Toast आयात com.github.kittinunf.fuel.android.extension.responseJson आयात com.github.kittinunf.fuel .http डाऊनलोड आयात com.github.kittinunf.fuel.http प्राप्त करा कोटलिनक्स.एन्ड्रोइड.सिंथेटिक.मॅन.एक्टिव्हिटी_मेन आयात करा. * java.io.File वर्ग आयात करा मुख्य क्रियाकलाप: AppCompatActivity () {साथी ऑब्जेक्ट {"+" API- काय = "समाविष्ट करा. -KEY "व्हॉल एसेट URL =" https://poly.googleapis.com/v1/assets/94XG1XUy10q "on ऑनक्रिप्ट मजेदार onCreate (सेव्हिडइन्स्टान्सस्टेट: बंडल?) {सुपर.ऑनक्रिएट (सेव्हिडइन्स्टेन्टस्टेट) सेटकंटेंट व्ह्यू (आर. APIKey.startsWith ("INSERT")) ast Toast.makeText (हे, "आपण आपली API की अद्यतनित केली नाही", टोस्ट. एलएनजीटीएचएसएचओआरटी) दर्शवा ()} अन्यथा {

पुढे, आम्हाला httpGet () पद्धत वापरून मालमत्ता URL वर GET विनंती करण्याची आवश्यकता आहे. मी हे देखील निर्दिष्ट करीत आहे की प्रतिसाद प्रकार जेएसओएन असणे आवश्यक आहे:

आयात android.content.Inttent आयात android.os.Bundle Import android.support.v7.app.AppCompatActivity आयात android.widget.Toast आयात com.github.kittinunf.fuel.android.extension.responseJson आयात com.github.kittinunf.fuel .http डाऊनलोड आयात com.github.kittinunf.fuel.http प्राप्त करा कोटलिनक्स.एन्ड्रोइड.सिंथेटिक.मॅन.एक्टिव्हिटी_मेन आयात करा. * java.io.File वर्ग आयात करा मुख्य क्रियाकलाप: AppCompatActivity () {साथी ऑब्जेक्ट {"+" API- काय = "समाविष्ट करा. -KEY "व्हॉल एसेट URL =" https://poly.googleapis.com/v1/assets/94XG1XUy10q "on ऑनक्रिप्ट मजेदार onCreate (सेव्हिडइन्स्टान्सस्टेट: बंडल?) {सुपर.ऑनक्रिएट (सेव्हिडइन्स्टेन्टस्टेट) सेटकंटेंट व्ह्यू (आर. APIKey.startsWith ("INSERT")) ast Toast.makeText (हे, "आपण आपली API की अद्यतनित केली नाही", टोस्ट. एलएनजीटीएचएसएचओआरटी) .शो ()} अन्यथा {// सर्व्हर कॉल करा आणि त्यानंतर डेटा वापरून पास करा “ListOf” पद्धत // assetURL.httpGet (listOf (APIKey कडे "की")). प्रतिक्रिया जसन {विनंती, प्रतिसाद, निकाल -> // प्रतिसादासह काहीतरी करा // रिजल्ट.फोल्ड ({व्हॅल म्हणून सेट = it.obj ()

मालमत्तेत ओबीजे, जीएलटीएफ आणि एफबीएक्स सारखी अनेक स्वरुपे असू शकतात. आम्हाला हे निश्चित करणे आवश्यक आहे की मालमत्ता ओबीजे स्वरूपात आहे.

या चरणात, आम्ही डाउनलोड करणे आवश्यक असलेल्या सर्व फायलींचे नाव आणि URL देखील पुनर्प्राप्त करीत आहे,
मालमत्तेची प्राथमिक फाइल (“रूट”), तसेच संबंधित सामग्री आणि पोत फायली (“संसाधने”) समाविष्ट करते.

जर आमचा अनुप्रयोग मालमत्ता योग्य प्रकारे पुनर्प्राप्त करण्यात अक्षम असेल तर तो वापरकर्त्यास माहिती देणारी टोस्ट प्रदर्शित करेल.

आयात android.content.Inttent आयात android.os.Bundle Import android.support.v7.app.AppCompatActivity आयात android.widget.Toast आयात com.github.kittinunf.fuel.android.extension.responseJson आयात com.github.kittinunf.fuel .http डाऊनलोड आयात com.github.kittinunf.fuel.http प्राप्त करा कोटलिनक्स.एन्ड्रोइड.सिंथेटिक.मॅन.एक्टिव्हिटी_मेन आयात करा. * java.io.File वर्ग आयात करा मुख्य क्रियाकलाप: AppCompatActivity () {साथी ऑब्जेक्ट {"+" API- काय = "समाविष्ट करा. -KEY "व्हॉल एसेट URL =" https://poly.googleapis.com/v1/assets/94XG1XUy10q "on ऑनक्रिप्ट मजेदार onCreate (सेव्हिडइन्स्टान्सस्टेट: बंडल?) {सुपर.ऑनक्रिएट (सेव्हिडइन्स्टेन्टस्टेट) सेटकंटेंट व्ह्यू (आर. APIKey.startsWith ("INSERT")) ast Toast.makeText (हे, "आपण आपली API की अद्यतनित केली नाही", टोस्ट. एलएनजीटीएचएसएचओआरटी) दर्शवा ()} अन्यथा {// मालमत्ता URL // मालमत्ता URL वर GET विनंती करा. httpGet (listOf (APIKey कडे "की")). प्रतिक्रिया जेसन {विनंती, प्रतिसाद, परिणाम -> // प्रतिसादासह काहीतरी करा // result.fold ({val asset = it.obj () var ऑब्जेक्ट URL: स्ट्रिंग? = नल वर मटेरियल लाइब्ररी नेम: स्ट्रिंग? = नल वर मटेरियल लाइबेरियल URL: स्ट्रिंग? = शून्य // “फॉरमॅट” अ‍ॅरे // व्हॅल एसेट फॉरमॅट्स = asset.getJSONArray ("फॉरमॅट्स") वापरून // मालमत्तेचे स्वरूप तपासा / साठी // सर्व स्वरूपांमधून पळवाट // साठी (i मध्ये 0 मध्ये assetFormats.length () पर्यंत { वाल करंटफोर्मेट = assetFor format.getJSONObject (i) // या स्त्रोताचा स्वरूप प्रकार ओळखण्यासाठी स्वरूप टाइप वापरा. स्वरूप ओबीजे असेल तर… .// if (चालू फार्मेट.एटस्ट्रिंग ("फॉर्मेटटाइप") == "ओबीजे") {//... नंतर या संसाधनाची 'रूट' फाइल पुनर्प्राप्त करा, म्हणजेच ओबीजे फाईल // ऑब्जेक्ट URL = करंट फॉरमॅट. getJSONObject ("root") .getString ("url") // रूट फाईलचे सर्व अवलंबन पुनर्प्राप्त करा // मटेरियललिब्रेनेम = करंटफॉर्मेट ("संसाधने") .getJSONObject (0) .getString ("url") ब्रेक}} ऑब्जेक्ट URL !!. httpDownload (). गंतव्य {_, _ -> फाईल (फाइल्सडिअर, "globeAsset.obj") resp .प्रतिबद्ध {_ , _, परिणाम -> परिणाम.फोल्ड ({}, {// आपण OBJ फाईल शोधू किंवा डाउनलोड करू शकत नसल्यास, एक त्रुटी दर्शवा // टोस्ट.मेकटेक्स्ट (हे, "संसाधन डाउनलोड करण्यात अक्षम", टोस्ट. एलएनजीटीएचएसएचओआरटी ) .शोओ ()})} मटेरियल लाइबेरियल यूआरएल !!. HTTP डाऊनलोड (). गंतव्य {_, _ -> फाईल (फाइल्सडिअर, मटेरियललिब्रेनेम) resp .प्रतिबंधित {_, _, परिणाम -> परिणाम.फोल्ड ({}, ast टोस्ट. मेक टेक्स्ट (हे, "संसाधन डाउनलोड करण्यात अक्षम", टोस्ट. एलएनजीटीएचएसएचओआरटी) .शो ()})}}, { टोस्ट.मेकटेक्स्ट (हे, "संसाधन डाउनलोड करण्यात अक्षम", टोस्ट. एलएनजीटीएचएसएचओआरटी) .शो ()})}}

या क्षणी, आपण हा प्रकल्प आपल्या Android स्मार्टफोन किंवा टॅब्लेटवर किंवा Android आभासी डिव्हाइसवर (एव्हीडी) स्थापित केल्यास, मालमत्ता यशस्वीरित्या डाउनलोड होईल, परंतु अॅप प्रत्यक्षात तो प्रदर्शित करणार नाही. चला आता हे निश्चित करूया!

दुसरा स्क्रीन तयार करत आहे: नॅव्हिगेशन जोडत आहे

आम्ही मालमत्ता फुलस्क्रीन मोडमध्ये प्रदर्शित करणार आहोत, तर टॅप केल्यावर पूर्णस्क्रीन अ‍ॅक्टिव्हिटी लॉन्च करणार्या बटणास समाविष्ट करण्यासाठी आमची मेन_एक्टिव्हिटी.एक्सएमएल फाइल अद्यतनित करूया.

आता मेनएक्टिविटी.केटी फाईलच्या शेवटी ऑनक्लिकलिस्टर जोडू:

आयात android.content.Inttent आयात android.os.Bundle Import android.support.v7.app.AppCompatActivity आयात android.widget.Toast आयात com.github.kittinunf.fuel.android.extension.responseJson आयात com.github.kittinunf.fuel .http डाऊनलोड आयात com.github.kittinunf.fuel.http प्राप्त करा कोटलिनक्स.एन्ड्रोइड.सिंथेटिक.मॅन.एक्टिव्हिटी_मेन आयात करा. * java.io.File वर्ग आयात करा मुख्य क्रियाकलाप: AppCompatActivity () {साथी ऑब्जेक्ट {"+" API- काय = "समाविष्ट करा. -KEY "व्हॉल एसेट URL =" https://poly.googleapis.com/v1/assets/94XG1XUy10q "on ऑनक्रिप्ट मजेदार onCreate (सेव्हिडइन्स्टान्सस्टेट: बंडल?) {सुपर.ऑनक्रिएट (सेव्हिडइन्स्टेन्टस्टेट) सेटकंटेंट व्ह्यू (आर. APIKey.startsWith ("INSERT")) ast Toast.makeText (हे, "आपण आपली API की अद्यतनित केली नाही", टोस्ट. एलएनजीटीएचएसएचओआरटी) .शो ()} दुसरे URL assetURL.httpGet (listOf (APIKey कडे "की")). प्रतिसाद जेसन {विनंती, प्रतिसाद, निकाल -> परिणाम.फोल्ड ({व्हॅल एसेट = इट.ओब्जे () वार ऑब्जेक्ट यूआरएल: स्ट्रिंग? = नल वार मटेरियललिब्रेनेम: स्ट्रिंग? = नल वेर मटेरियल लाइब्रियल URL: Str आयएनजी? = नल व्हॅल एसेटफॉर्मेट्स = asset.getJSONArray ("स्वरूप") साठी (मी 0 पर्यंत assetFormats.length () पर्यंत current व्हॉल करंटफोर्मेट = asset Formats.getJSONObject (i) if (चालूफार्मॅट.ेटस्ट्रिंग ("formatType") == "ओबीजे" ) {ऑब्जेक्ट यूआरएल = करंटफार्मेट.ेटजेएसएसओऑब्जेक्ट ("रूट") .गेटस्ट्रिंग ("यूआरएल") मटेरियल लाइबरीनेम = करंटफार्मॅट. बिजेजेसन एसआरए ("रिसोर्सेस") .getJSONObject (0) .getString ("सापेक्षपथ") मटेरियल लाइबरीएआरएल = करंट फॉरमॅट. ) .getJSONObject (0) .getString ("url") ब्रेक}} ऑब्जेक्ट URL !!. http डाऊनलोड (). गंतव्य {_, _ -> फाईल (फाइल्सडिर, "globeAsset.obj") resp .परिपत्यंतर {_, _, परिणाम -> परिणाम.फोल्ड ({}, ast टोस्ट.मेकटेक्स्ट (हे, "संसाधन डाउनलोड करण्यात अक्षम", टोस्ट. एलएनजीटीएचएसएचओआरटी) .शो ()})} मटेरियल लाइब्रियल यूआरएल !!. http डाऊनलोड () गंतव्य {_, _ -> फाइल (फाइल्सडिअर, मटेरियललिबरीनेम) resp .प्रतिबद्धता {_, _, परिणाम -> परिणाम.फोल्ड ({}, {टोस्ट.मेकटेक्स्ट (हे, "स्त्रोत डाउनलोड करण्यास अक्षम", टोस्ट. एलएनजीटीएचएचआरटी) .शो ()))}}, {टोस्ट.मेकटेक्स्ट (हे, "संसाधन डाउनलोड करण्यात अक्षम", टोस्ट. एलएनजीटीएचएसएचओआरटी) .sh ow ()})} // एक बटन लागू करा // displayButton.setOnClickListener {val हेतू = हेतू (हा, दुसरा क्रियाकलाप :: वर्ग.जावा) startActivity (हेतू); }}}

थ्रीडी कॅनव्हास बनवित आहे

आता आपण आपली मालमत्ता पूर्णस्क्रीन मोडमध्ये प्रदर्शित करू तेथे क्रियाकलाप तयार करू:

  • आपल्या प्रोजेक्टच्या मेनएक्टिव्हिटी.केटी फाइलवर कंट्रोल-क्लिक करा आणि “नवीन> कोटलिन फाईल / वर्ग” निवडा.
  • “प्रकारची” ड्रॉपडाउन उघडा आणि “वर्ग” निवडा.
  • या वर्गास “सेकंडएक्टिव्हिटी” नाव द्या आणि नंतर “ओके” क्लिक करा.

3 डी ऑब्जेक्ट रेखांकित करण्यासाठी, आम्हाला 3 डी कॅनव्हासची आवश्यकता आहे! मी अँड्रॉइडच्या लायब्ररीच्या पी 3 डी रेंडररसाठी प्रोसेसिंग वापरणार आहे, ज्याचा अर्थ म्हणजे पप्लेट वर्ग वाढवणे, सेटिंग्ज () पद्धत अधिलिखित करणे आणि नंतर पी 3 डी पूर्णस्क्रीन () पद्धतीचा युक्तिवाद म्हणून उत्तीर्ण करणे. आम्हाला एक प्रॉपर्टी देखील तयार करण्याची आवश्यकता आहे जी पीशॅप ऑब्जेक्ट म्हणून पॉली एसेटला प्रतिनिधित्व करते.

खाजगी मजेदार डिस्प्लेअसेट () {व्हॅल कॅनव्हास 3 डी = ऑब्जेक्ट: पीएप्लेट () poly व्हेरी पॉलीएसेट: PShape? = निरर्थक अधिलिखित मजा सेटिंग्ज () {फुलस्क्रीन (पीकॉनस्टॅन्ट्स. पी 3 डी)}

पुढे, आम्हाला सेटअप () पद्धत अधिलिखित करून, लोडशेप () पद्धत कॉल करून आणि .obj फाईलचा पूर्ण मार्ग पुरवून PShape ऑब्जेक्टला प्रारंभ करणे आवश्यक आहे:

अधिलिखित मजेदार सेटअप () {पॉलीएसेट = लोडशेप (फाईल (फायलीडिर, "ग्लोबएसेटसेट.ओबजे"). परिपूर्णपथ)}

पी 3 डी च्या कॅनव्हास वर रेखांकन

या 3 डी कॅनव्हास वर काढण्यासाठी आम्हाला ड्रॉ () पद्धत ओव्हरराइड करणे आवश्यक आहे:

अधिलिखित मजा ड्रॉ () {पार्श्वभूमी (0) आकार (पॉलीएसेट)}}

डीफॉल्टनुसार, पॉली एपीआय मधून पुनर्प्राप्त केलेली अनेक मालमत्ता छोट्या बाजूला आहे, म्हणून जर आपण आता हा कोड चालविला तर आपल्या स्क्रीन कॉन्फिगरेशनच्या आधारावर आपल्याला मालमत्ता देखील दिसणार नाही. 3 डी सीन तयार करताना, आपण सामान्यत: एक सानुकूल कॅमेरा तयार कराल जेणेकरुन वापरकर्ता देखावा एक्सप्लोर करू शकेल आणि आपल्या 3 डी मालमत्ता पूर्ण 360 अंशांवरून पाहू शकेल. तथापि, हे या लेखाच्या व्याप्तीच्या पलीकडे आहे म्हणून मी मालमत्तेचा आकार आणि स्थिती व्यक्तिचलितपणे बदलत आहे, हे सुनिश्चित करण्यासाठी की ते ऑनस्क्रीन आरामात बसते.

स्केल () पद्धतीवर नकारात्मक मूल्य देऊन आपण मालमत्तेचा आकार वाढवू शकता:

स्केल (-10f)

आपण भाषांतर () पद्धत आणि खालील समन्वयांचा वापर करुन व्हर्च्युअल 3 डी स्पेसमध्ये मालमत्तेची स्थिती समायोजित करू शकता:

  • एक्स क्षैतिज अक्षांसह मालमत्ता स्थानावर ठेवते.
  • वाय. उभ्या अक्षासह मालमत्ता स्थापन करते.
  • झेड ही "खोली / उंची" अक्ष आहे, जी 2 डी ऑब्जेक्टला 3 डी ऑब्जेक्टमध्ये रूपांतरित करते. सकारात्मक मूल्ये ऑब्जेक्ट आपल्याकडे येत असल्याची भावना निर्माण करतात आणि नकारात्मक मूल्ये ही भावना निर्माण करतात की ऑब्जेक्ट आपल्यापासून दूर जात आहे.

लक्षात घ्या की रूपांतरित संचयी आहेत, म्हणून फंक्शन नंतर घडणार्‍या प्रत्येक गोष्टीचा परिणाम जमा होतो.

मी खालील वापरत आहे:

अनुवाद करा (-50f, -100f, 10f)

येथे पूर्ण केलेला कोडः

ओव्हरराइड फन ड्रॉ () {पार्श्वभूमी (0) स्केल (-10f) ट्रान्सलेट (-50f, -100f) // शेप () मेथड // शेप (पॉलीएसेट) वर कॉल करून मालमत्ता काढा w}

पुढे, आम्हाला संबंधित लेआउट फाइल तयार करण्याची आवश्यकता आहे, जिथे आम्ही फ्रेम कॅलाऊट विजेट म्हणून 3 डी कॅनव्हास जोडू.

  • आपल्या प्रोजेक्टच्या “रेस> लेआउट” फोल्डरवर कंट्रोल-क्लिक करा.
  • “लेआउट स्त्रोत फाइल” निवडा.
  • या फाईलला “अ‍ॅक्टिव्हिटी_सेकंद” नाव द्या आणि नंतर “ओके” क्लिक करा.

आता आमच्याकडे आमची “मालमत्ता_दृश्य” फ्रेमलीआउट आहे, आम्हाला आमच्या सेकंड अ‍ॅक्टिव्हिटीला त्याबद्दल कळविणे आवश्यक आहे! सेकंडएक्टिव्हिटी.केटी फाईलवर परत फ्लिप करा, एक नवीन पीफ्रेगमेंट उदाहरण तयार करा आणि आमच्या “मालमत्ता_दृश्य” विजेटच्या दिशेने निर्देशित करा:

आयात android.os.Bundle Import android.support.v7.app.appCompatActivity आयात कोटलिन्क्स.एन्ड्रोइड.सेंटिथिक.मॅन.एक्टिव्हिटी_सेकॉन्ड. * आयात प्रोसेसिंग.एन्ड्रोइड.पी.फ्रेगमेंट आयात प्रक्रिया. .शेप आयात java.io.File वर्ग दुसरी क्रिया: AppCompatActivity () {ओव्हरराइड मजा ऑन क्रीएट (सेव्हिडइन्स्टेन्टस्टेट: बंडल?) On सुपर.ऑनक्रिएट (सेव्हिडइन्स्टेन्टस्टेट) सेटकेन्टवेव्ह (आर. canvas3D = ऑब्जेक्ट: PApplet () poly var polyAsset: PShape? = शून्य ओव्हरराइड मजेदार सेटिंग्ज () {फुलस्क्रीन (पीसीस्टोन. पी 3 डी)} ओव्हरराइड फन सेटअप () {पॉलीएसेट = लोडशेप (फाईल (फायलीडिर, "ग्लोबएसेट" (-10f) (-50f, -100f) आकार (पॉलीएसेट)}} // पुढील // व्हॉल एसेट व्ह्यू = पीफ्रेगमेंट (कॅनव्हास 3 डी) एसेट व्ह्यू.सेट व्ह्यू (एसेट_ व्ह्यू, हे) जोडा}}

अंतिम चरण, आपल्या मॅनिफेस्टमध्ये द्वितीय क्रियाकलाप जोडत आहे:

// खालील जोडा //

आपल्या प्रोजेक्टची चाचणी घेत आहे

आम्ही आता तयार प्रकल्प चाचणी करण्यास तयार आहोत! आपल्या Android डिव्हाइसवर किंवा एव्हीडीवर स्थापित करा आणि आपल्याकडे सक्रिय इंटरनेट कनेक्शन असल्याचे सुनिश्चित करा. अ‍ॅप लाँच होताच ती मालमत्ता डाउनलोड होईल आणि त्यानंतर “प्रदर्शन मालमत्ता” बटणावर टॅप देऊन आपण ते पाहू शकता.

आपण हा पूर्ण प्रकल्प गिटहब वरून डाउनलोड करू शकता.

लपेटणे

या लेखात, आम्ही रनटाइमच्या वेळी 3 डी मालमत्ता पुनर्प्राप्त करण्यासाठी पॉली एपीआय कसे वापरावे आणि प्रोसेसिंग फॉर अँड्रॉइड लायब्ररीचा वापर करुन ती मालमत्ता कशी प्रदर्शित करावी यासाठी आम्ही पाहिले. आपणास असे वाटते की पॉली एपीआयमध्ये अधिक लोकांमध्ये व्हीआर आणि एआर विकास सुलभ करण्याची क्षमता आहे? आम्हाला खाली टिप्पण्या कळू द्या!

संबंधित

  • गुगल २०१ AR मध्ये एआर अॅप्सना "शेकडो लाखो" Android डिव्हाइस आणेल
  • Google आपल्याला एआय आणि मशीन शिक्षण विनामूल्य शिकवते
  • Google कार्डबोर्डसाठी 15 सर्वोत्कृष्ट व्हीआर गेम
  • Google कार्डबोर्डसाठी 10 सर्वोत्कृष्ट व्हीआर अॅप्स
  • गूगल फुशिया म्हणजे काय? हे नवीन Android आहे?
  • गूगल डुप्लेक्स म्हणजे काय? - वैशिष्ट्ये, रीलिझ तारीख आणि बरेच काही
  • अवघ्या minutes मिनिटांत अँड्रॉइडसाठी व्हीआर अॅप कसा तयार करा
  • मोबाइल व्हीआर हेडसेट - आपले सर्वोत्तम पर्याय कोणते आहेत?

आपण असता तेव्हा आयटी पदासाठी अर्ज, नोकरीसाठी बहुसंख्य कर्मचारी शोधत असलेली पहिली गोष्ट विशेष प्रमाणपत्रे. आपण आधीपासून संगणक गुरु असल्यास काही फरक पडत नाही; मालकांना आपण वास्तविक करार असल्याचे सिद्ध क...

भरती करणारे पुन्हा प्रमाणपत्रे शोधत असताना ते क्रेडेन्शियल्स शोधत आहेत. आपले संगणक कौशल्य कदाचित भव्य असेल, परंतु आपल्याला लक्षात येण्यासाठी प्रमाणपत्रे आवश्यक असतील. आयटी गेममध्ये ते यापेक्षा जास्त च...

साइटवर लोकप्रिय