متعدد API: آپ کے VR اور AR Android ایپس کیلئے 3D اثاثے بازیافت کرنا

مصنف: Peter Berry
تخلیق کی تاریخ: 14 Lang L: none (month-012) 2021
تازہ کاری کی تاریخ: 4 مئی 2024
Anonim
ٹیوٹوریل: اینڈرائیڈ گیمز سے ٹیکسچر اور تھری ڈی ماڈل نکالنا (حصہ 1: سادہ مثال)
ویڈیو: ٹیوٹوریل: اینڈرائیڈ گیمز سے ٹیکسچر اور تھری ڈی ماڈل نکالنا (حصہ 1: سادہ مثال)

مواد


کیا آپ کو ورچوئل رئیلٹی (VR) یا اجمینٹڈ ریئلٹی (اے آر) موبائل ایپ کے بارے میں زبردست آئیڈیا ہے ، لیکن آپ کو اندازہ نہیں ہے کہ اپنے وژن کو کیسے زندہ کریں؟

جب تک کہ آپ اینڈرائڈ ڈویلپر نہیں ہیں جو تجربہ کار تھری ڈی آرٹسٹ بھی ہوتا ہے ، تبھی ، ایک ڈوبنے والے ، 360 ڈگری کے تجربے کی فراہمی کے لئے درکار تمام اثاثے بنانا ایک پریشان کن عمل ہوسکتا ہے۔

صرف اس وجہ سے کہ آپ کے پاس 3D ماڈل بنانے کے لئے ضروری وقت ، وسائل یا تجربہ نہیں ہے ، نہیں کرتا اس کا مطلب ہے کہ آپ ایک عظیم VR یا AR موبائل ایپ نہیں بنا سکتے ہیں۔ ورلڈ وائڈ ویب پر بہت سارے 3D وسائل آزادانہ طور پر دستیاب ہیں ، نیز آپ کے Android ایپلی کیشنز میں ان اثاثوں کو ڈاؤن لوڈ اور رینڈر کرنے کے لئے جتنے بھی API ، فریم ورک اور لائبریری درکار ہیں۔

آگے پڑھیں: اب آپ ڈے ڈریم وی آر کا استعمال کرکے کسی بھی ویب سائٹ پر جا سکتے ہیں۔ یہاں تک کہ ایک

اس آرٹیکل میں ، ہم پولی ، ایک آن لائن مخزن اور API کو دیکھیں گے جو ہزاروں 3D اثاثوں کو آپ کی انگلی پر رکھتا ہے۔ اس مضمون کے اختتام تک ، آپ نے ایک ایپ بنائی ہے جو رن ٹائم کے وقت تھری ڈی پولی متعدد اثاثے کو بازیافت کرے گی ، اور پھر اینڈرائڈ لائبریری کے مشہور پروسیسنگ کا استعمال کرکے اسے پیش کرتی ہے۔


پولی کے ساتھ 3D اثاثوں کی نمائش

اگر آپ نے اتحاد کی نشوونما میں کبھی ناکام بنائے ہیں ، تو پولی اسٹوری یونٹی کے اثاثہ اسٹور کی طرح ہے - سوائے اس کے کہ پولی کی ہر چیز مفت ہے!

پولی کے بہت سارے 3D ماڈلز تخلیقی العام لائسنس کے تحت شائع ہوتے ہیں ، لہذا جب تک آپ خالق کو مناسب اعتبار نہیں دیتے ہیں تب تک آپ ان اثاثوں کو استعمال کرنے ، اس میں ترمیم کرنے اور اسے دوبارہ ترتیب دینے میں آزاد ہوں گے۔

پولی کے تمام 3 ڈی ماڈلز گوگل کے وی آر اور اے آر پلیٹ فارمس ، جیسے ڈے ڈریم اور اے آر کور کے ساتھ ہم آہنگ ہونے کے لئے ڈیزائن کیے گئے ہیں ، لیکن آپ انہیں جہاں کہیں بھی اور چاہے استعمال کرسکتے ہیں - ممکنہ طور پر ، آپ ان کو ایپل کے آرکیٹ کے ساتھ بھی استعمال کرسکتے ہیں!

جب متعدد اثاثوں کو بازیافت کرنے اور ان کی نمائش کرنے کی بات آتی ہے تو ، آپ کے پاس دو اختیارات ہیں۔ سب سے پہلے ، آپ اپنے کمپیوٹر پر اثاثے ڈاؤن لوڈ کرسکتے ہیں اور پھر انھیں اینڈروئیڈ اسٹوڈیو میں درآمد کرسکتے ہیں ، لہذا وہ آپ کی ایپلی کیشن کے ساتھ جہاز بھیجیں اور اس کے APK سائز کی طرف شراکت کریں ، یا آپ پولی اثاثہ API کا استعمال کرتے ہوئے رن ٹائم کے وقت ان اثاثوں کو بازیافت کرسکتے ہیں۔


کراس پلیٹ فارم ، REST پر مبنی متعدد API ، پولی ماڈیول کی 3D ماڈلز کے وسیع ذخیرہ تک پروگراماتی ، صرف پڑھنے کی رسائی فراہم کرتا ہے۔ یہ آپ کے APK کے ذریعہ اثاثوں کو بنڈل کرنے سے کہیں زیادہ پیچیدہ ہے ، لیکن رن ٹائم کے وقت متعدد اثاثوں کی بازیافت کے بہت سے فوائد ہیں ، خاص طور پر یہ کہ اس سے آپ کے APK کے سائز کو قابو میں رکھنے میں مدد ملتی ہے ، جس سے یہ متاثر ہوتا ہے کہ کتنے لوگ آپ کی درخواست ڈاؤن لوڈ کرتے ہیں۔

آپ اپنے صارفین کو زیادہ سے زیادہ انتخاب دینے کے لئے متعدد API کا استعمال بھی کرسکتے ہیں ، مثال کے طور پر اگر آپ موبائل گیم تیار کررہے ہیں تو آپ اپنے صارفین کو متعدد کرداروں کے نمونوں میں سے انتخاب کرسکتے ہیں۔

چونکہ آپ پولی ماڈلز میں ترمیم کرنے کے لئے آزاد ہیں ، لہذا آپ اپنے صارفین کو اپنے منتخب کردہ کردار کو بھی موڑ سکتے ہیں ، مثال کے طور پر بالوں یا آنکھوں کے رنگ میں ردوبدل کرکے ، یا دوسرے متعدد اثاثوں ، جیسے مختلف ہتھیاروں اور کوچ سے جوڑ کر۔ اس طرح ، متعدد API آپ کو 3D اثاثوں کی ایک متاثر کن حد فراہم کرنے میں مدد فراہم کرسکتی ہے ، جس میں تجربے کو ذاتی نوعیت دینے کی بہت ساری گنجائش ہے - اور سب کچھ نسبتا little کم کام کے لئے۔ آپ کے صارفین کو اس بات کا یقین ہو جائے گا کہ آپ نے ایک ٹن وقت گزارا ہے ، ان تمام 3D ماڈلز کو احتیاط سے تیار کیا ہے!

3D ماڈلنگ پروجیکٹ کی تشکیل

ہم ایک ایسی ایپلی کیشن تیار کرنے جارہے ہیں جوپلی کیشن شروع ہونے پرپولی کے ایک خاص اثاثے کو بازیافت کرے گی ، اور پھر صارف کی درخواست پر اس اسکیم کو فل سکرین موڈ میں دکھائے گی۔

اس اثاثے کی بازیافت میں ہماری مدد کے لئے ، میں فیول کا استعمال کروں گا ، جو کوٹلن اور اینڈروئیڈ کے لئے HTTP نیٹ ورکنگ لائبریری ہے۔ اپنی پسند کی ترتیبات کے ساتھ ایک نیا پروجیکٹ تشکیل دے کر شروع کریں ، لیکن جب آپ کو "کوٹلن سپورٹ شامل کریں" کا انتخاب کیا جائے۔

متعدد API پر آپ جو بھی کال کرتے ہیں ان میں ایک API کلید شامل ہونا ضروری ہے ، جو آپ کے ایپ کی شناخت اور استعمال کی حدود کو نافذ کرنے کے لئے استعمال ہوتی ہے۔ ترقی اور جانچ کے دوران ، آپ اکثر بغیر پابندی والی API کلید کا استعمال کریں گے ، لیکن اگر آپ کے پاس اس ایپ کو جاری کرنے کا کوئی منصوبہ ہے تو ، آپ کو Android سے محدود API کلید کا استعمال کرنا ہوگا۔

ایک پابندی والی کلید بنانے کے ل you ، آپ کو اپنے پروجیکٹ کا SHA-1 دستخطی سند جاننا ہوگا ، لہذا اب یہ معلومات حاصل کریں:

  • اینڈروئیڈ اسٹوڈیو کا "گریڈل" ٹیب منتخب کریں (جہاں مندرجہ ذیل اسکرین شاٹ میں کرسر لگا ہوا ہے)۔ اس سے "گریڈل منصوبے" پینل کھلتا ہے۔

  • "گریڈل پروجیکٹس" پینل میں ، اپنے منصوبے کی 'روٹ' کو بڑھانے کے لئے ڈبل کلک کریں ، اور پھر "ٹاسکس> اینڈروئیڈ> دستخطی کی رپورٹ" کو منتخب کریں۔ یہ اینڈروئیڈ اسٹوڈیو ونڈو کے نیچے ایک نیا پینل کھولتا ہے۔
  • 'ٹوگل ٹاسک ایگزیکیوشنز / ٹیکسٹ موڈ' بٹن منتخب کریں (جہاں مندرجہ ذیل اسکرین شاٹ میں کرسر لگا ہوا ہے)۔

اب "رن" پینل اپنے SHA-1 فنگر پرنٹ سمیت آپ کے پروجیکٹ کے بارے میں بہت سی معلومات ظاہر کرنے کے لئے اپ ڈیٹ ہوگا۔

گوگل کلاؤڈ پلیٹ فارم اکاؤنٹ بنائیں

ضروری API کلید حاصل کرنے کے ل you ، آپ کو گوگل کلاؤڈ پلیٹ فارم (جی پی سی) اکاؤنٹ کی ضرورت ہوگی۔

اگر آپ کے پاس اکاؤنٹ نہیں ہے تو ، مفت صفحے کے لئے ٹریڈ کلاؤڈ پلیٹ فارم پر جاکر اور ہدایات پر عمل کرکے آپ 12 ماہ کی مفت آزمائش کے لئے سائن اپ کرسکتے ہیں۔ نوٹ کریں کہ ایک کریڈٹ کارڈ یا ڈیبٹ کارڈ کی ضرورت ہے ، لیکن اکثر پوچھے گئے سوالات کے صفحے کے مطابق ، یہ محض آپ کی شناخت کی تصدیق کے لئے استعمال ہوتا ہے اور "آپ کو مفت آزمائش کے دوران آپ سے معاوضہ نہیں لیا جائے گا اور نہ ہی بل لیا جائے گا۔"

اپنی متعدد API کلید حاصل کریں

ایک بار جب آپ سب کے دستخط ہوجائیں تو ، آپ پولی API کو فعال کرسکتے ہیں اور اپنی کلید تشکیل دے سکتے ہیں:

  • جی سی پی کنسول کی سربراہی کریں۔
  • اوپری بائیں کونے میں قطار میں آئکن منتخب کریں ، اور "APIs & Services> ڈیش بورڈ" کا انتخاب کریں۔
  • "APIs اور خدمات کو فعال کریں" کو منتخب کریں۔
  • بائیں ہاتھ والے مینو میں ، "دوسرا" منتخب کریں۔
  • "متعدد API" کارڈ منتخب کریں۔
  • "قابل بنائیں" کے بٹن پر کلک کریں۔
  • کچھ لمحوں کے بعد ، آپ کو ایک نئی اسکرین پر لے جایا جائے گا۔ سائیڈ مینو کھولیں اور "APIs & Services> اسناد" منتخب کریں۔

  • اس کے بعد والے پاپ اپ میں ، "پابندی والی کلید" منتخب کریں۔
  • اپنی کلید کو ایک مخصوص نام دیں۔
  • "اطلاق کی پابندی" کے تحت ، "اینڈرائڈ ایپس" کو منتخب کریں۔
  • "پیکیج کا نام اور فنگر پرنٹ شامل کریں" کو منتخب کریں۔
  • اپنے پروجیکٹ کے SHA-1 فنگر پرنٹ کو "سائن-سرٹیفکیٹ فنگر پرنٹ" فیلڈ میں کاپی / پیسٹ کریں۔
  • اپنے پروجیکٹ کے پیکیج کا نام درج کریں (یہ آپ کے منشور میں اور ہر کلاس فائل کے اوپری حصے میں ظاہر ہوتا ہے)۔
  • "محفوظ کریں" پر کلک کریں۔

اب آپ کو اپنے پروجیکٹ کی "اسناد" اسکرین پر لے جایا جائے گا ، جس میں آپ کی تمام API چابیاں کی ایک فہرست ہے۔ بشمول آپ نے ابھی بنائی ہوئی متعدد فعال API کلید۔

منصوبے کا انحصار: ایندھن ، P3D اور کوٹلن ایکسٹینشن

متعدد اثاثوں کی بازیافت اور نمائش کے ل we ، ہمیں کچھ اضافی لائبریریوں سے مدد فراہم کرنے کی ضرورت ہوگی۔

  • ایندھن۔ پولی کے پاس فی الحال Android کے پاس باضابطہ ٹول کٹ نہیں ہے ، لہذا آپ کو اس کے REST انٹرفیس کا براہ راست استعمال کرتے ہوئے API کے ساتھ مل کر کام کرنے کی ضرورت ہوگی۔ اس عمل کو آسان بنانے کے لئے ، میں فیول HTTP نیٹ ورکنگ لائبریری کا استعمال کروں گا۔
  • Android کے لئے پروسیسنگ۔ متعدد اثاثہ ظاہر کرنے کیلئے میں اس لائبریری کا P3D پیش کنندہ استعمال کروں گا۔

اپنے پروجیکٹ کی build.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 // اینڈروئیڈ انجن // عمل درآمد org.p5 android کے لئے پروسیسنگ شامل کریں: پروسیسنگ کور: 4.0.1}

اپنے کوڈ کو مزید جامع بنانے کے لئے ، میں کوٹلن اینڈرائیڈ ایکسٹینشنز کا استعمال بھی کروں گا ، لہذا ہم اس پلگ ان کو شامل کریں جب کہ ہمارے پاس بلٹ ایڈراڈل فائل کھلی ہو:

پلگ ان لگائیں: کوٹلن - android-ایکسٹینشن

آخر ، چونکہ ہم انٹرنیٹ سے اثاثہ بازیافت کررہے ہیں ، لہذا ہمارے ایپ کو انٹرنیٹ کی اجازت درکار ہے۔ اپنا منشور کھولیں اور درج ذیل شامل کریں:

آپ کی API کلید شامل کرنا

جب بھی ہماری ایپ پولی سے کسی اثاثے کی درخواست کرتی ہے ، اس میں ایک درست API کلید شامل کرنے کی ضرورت ہوتی ہے۔ میں پلیس ہولڈر ٹیکسٹ استعمال کررہا ہوں ، لیکن آپ لازمی اس پلیس ہولڈر کو اپنی اپنی API کلید سے تبدیل کریں اگر ایپلی کیشن کام کرتی ہے۔

میں ایک چیک بھی شامل کر رہا ہوں ، تاکہ اگر آپ "INSERT-YOUR-API-KEY" متن کو تبدیل کرنا بھول جاتے ہیں تو ایپلی کیشن ایک انتباہ ظاہر کرے گی۔

درآمد android.os.Bundle درآمد android.support.v7.app.appCompatActivity کی کلاس مین سرگرمی: AppCompatActivity () {ساتھی آبجیکٹ {const {APIKey = "INSERT-YOUR-API-KEY"} overCide fun onCreate (SaveInstanceState: und بنڈل)؟ super.onCreate (SaveInstanceState) setContentView (R.layout.activity_main) // اگر API کی کلید "INSERT" سے شروع ہوتی ہے ... // اگر (APIKey.startsWith ("INSERT")) {// then // تو مندرجہ ذیل ٹوسٹ ڈسپلے کریں… .// Toast.makeText (یہ ، "آپ نے اپنی API کلید کو اپ ڈیٹ نہیں کیا ہے" ، ٹوسٹ.LENGTH_SHORT). شو ()} ورنہ {... ... ...

اثاثہ بازیافت کرنا

آپ گوگل پولی سائٹ پر کسی بھی اثاثے کا انتخاب کرسکتے ہیں ، لیکن میں سیارہ ارتھ کا یہ ماڈل استعمال کروں گا۔

آپ اس کی شناخت کا استعمال کرتے ہوئے اثاثہ بازیافت کرتے ہیں ، جو یو آر ایل سلگ کے آخر میں ظاہر ہوتا ہے (پچھلے اسکرین شاٹ میں نمایاں ہوتا ہے)۔ ہم اس اثاثہ کی شناخت کو متعدد API کے میزبان کے ساتھ جوڑ دیتے ہیں ، جو "https://poly.googleapis.com/v1" ہے۔

android.content.Inttent درآمد android.os.Bundle درآمد 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 حاصل کریں आयात درآمد کوٹلنکس.اینڈروڈ.سینٹھیٹک.مین.ٹیٹیویٹی_ومین. -KEY "والو اثاثہ URL =" https://poly.googleapis.com/v1/assets/94XG1XUy10q "on onCide ​​on Fun (SaveInstanceState: Bundle؟) {super.onCreate (SaveInstanceState) سیٹ کانٹینٹ ویو (R.layout.activity_main) APIKey.startsWith ("INSERT")) ast Toast.makeText (یہ ، "آپ نے اپنی API کلید کو اپ ڈیٹ نہیں کیا ہے" ، ٹوسٹ.LENGTH_SHORT) .شو ()} باقی {

اگلا ، ہمیں HTGet () طریقہ استعمال کرتے ہوئے ، اثاثہ URL میں GET درخواست کرنے کی ضرورت ہے۔ میں یہ بھی واضح کر رہا ہوں کہ ردعمل کی قسم JSON ہونی چاہئے:

android.content.Inttent درآمد android.os.Bundle درآمد 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 حاصل کریں आयात درآمد کوٹلنکس.اینڈروڈ.سینٹھیٹک.مین.ٹیٹیویٹی_ومین. -KEY "والو اثاثہ URL =" https://poly.googleapis.com/v1/assets/94XG1XUy10q "on onCide ​​on Fun (SaveInstanceState: Bundle؟) {super.onCreate (SaveInstanceState) سیٹ کانٹینٹ ویو (R.layout.activity_main) APIKey.startsWith ("INSERT")) ast Toast.makeText (یہ ، "آپ نے اپنی API کلید کو اپ ڈیٹ نہیں کیا ہے" ، Toast.LENGTH_SHORT). شو ()} else {// سرور کال کریں ، اور پھر ڈیٹا کو استعمال کرتے ہوئے پاس کریں۔ "listOf" طریقہ // assetURL.http گیٹ (listOf (APIKey کی "کلید")) جواب دیں۔ JSON {درخواست ، جواب ، نتیجہ -> // جواب کے ساتھ کچھ کریں // نتیجہ.fold ({val as as سیٹ = it.obj ()

اثاثہ میں متعدد فارمیٹس ہوسکتی ہیں ، جیسے او بی جے ، جی ایل ٹی ایف ، اور ایف بی ایکس۔ ہمیں یہ تعین کرنے کی ضرورت ہے کہ اثاثہ OBJ شکل میں ہے۔

اس مرحلے میں ، میں ان فائلوں کا نام اور یو آر ایل بھی بازیافت کر رہا ہوں جس کی ہمیں ڈاؤن لوڈ کرنے کی ضرورت ہے ،
اثاثوں کی بنیادی فائل ("روٹ") کے علاوہ کوئی بھی وابستہ مواد اور ساخت فائل ("وسائل") شامل ہیں۔

اگر ہماری درخواست اثاثے کو صحیح طریقے سے بازیافت کرنے سے قاصر ہے ، تو اس میں صارف کو آگاہ کرنے والے ٹوسٹ کی نمائش ہوگی۔

android.content.Inttent درآمد android.os.Bundle درآمد 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 حاصل کریں आयात درآمد کوٹلنکس.اینڈروڈ.سینٹھیٹک.مین.ٹیٹیویٹی_ومین. -KEY "والو اثاثہ URL =" https://poly.googleapis.com/v1/assets/94XG1XUy10q "on onCide ​​on Fun (SaveInstanceState: Bundle؟) {super.onCreate (SaveInstanceState) سیٹ کانٹینٹ ویو (R.layout.activity_main) APIKey.startsWith ("INSERT")) ast Toast.makeText (یہ ، "آپ نے اپنی API کلید کو اپ ڈیٹ نہیں کیا ہے" ، ٹوسٹ.LENGTH_SHORT). شو ()} else {// اثاثہ یو آر ایل // اثاثہ URL کو GET درخواست بنائیں۔ httpGet (listOf ("key" to APIKey))). جواب جےسن {درخواست ، جواب ، نتیجہ -> // جواب کے ساتھ کچھ کریں // نتیجہ.fold ({ویل اثاثہ = it.obj () ور آبجیکٹ یو آر ایل: سٹرنگ؟ = null var مادی لائبرری نام: سٹرنگ؟ = null var مادی لائبرری یو آر ایل: اسٹرنگ؟ = منسوخ // "فارمیٹس" سرنی // ویل اثاثہ فارمیٹس = asset.getJSONArray ("فارمیٹس") کا استعمال کرتے ہوئے // اثاثہ کی شکل چیک کریں // کے لئے تمام فارمیٹس // لوپ کریں (میں 0 میں assetFormats.length () تک { ویل کرینٹ فارمیٹ = assetFormats.getJSONObject (i) // اس وسائل کی شکل کی قسم کی شناخت کے لئے فارمیٹ ٹائپ کا استعمال کریں۔ اگر فارمیٹ OBJ ہے… .// اگر (موجودہ Format.getString ("formatType") == "OBJ") {//... تو اس وسیلہ کی 'روٹ' فائل کو بازیافت کریں ، یعنی OBJ فائل // آبجیکٹ = موجودہ فارمیٹ۔ getJSONObject ("root") .getString ("url") // روٹ فائل کی تمام انحصاروں کو بازیافت کریں // مادریلیبرینیئم = موجودہ فارمیٹ.بیٹ جے ایس ایس آرری ("وسائل") .getJSONObject (0). ویٹ سٹرنگ ("رشتہ دارپاتھ") میٹری لائبریلا URL = موجودہ فورم ("وسائل") .getJSONObject (0) .getString ("url") توڑ}} آبجیکٹ یو آر ایل !!. HTTP ڈاؤن لوڈ () منزل مقصود {_، _ -> فائل (فائلیں ڈائر ، "globeAsset.obj") resp. غیر ذمہ {_ ، _ ، نتیجہ -> نتیجہ.fold ({}، {// اگر آپ OBJ فائل کو تلاش یا ڈاؤن لوڈ نہیں کرسکتے ہیں تو ، پھر ایک غلطی دکھائیں // Toast.makeText (یہ ، "وسائل ڈاؤن لوڈ کرنے سے قاصر ہے" ، ٹوسٹ. ایل این جی ٹی ایچ ایس ایچ او آر ٹی ) .شو ()})} مادLی لائبریURLر ایل !!. HTTP ڈاؤن لوڈ (). منزل مقصود {_، _ -> فائل (فائلیں ڈائر ، مادری لائبرینیام) resp. غیر جوابی {_، _، نتیجہ -> نتيجي.fold ({}، ast ٹوسٹ۔ MakeText (یہ ، "وسائل ڈاؤن لوڈ کرنے سے قاصر ہے" ، ٹوسٹ.LENGTH_SHORT). شو ()})}}، { Toast.makeText (یہ ، "وسائل ڈاؤن لوڈ کرنے سے قاصر ہے" ، ٹوسٹ.LENGTH_SHORT). شو ()})}}

اس مقام پر ، اگر آپ اپنے Android اسمارٹ فون یا ٹیبلٹ ، یا اینڈروئیڈ ورچوئل ڈیوائس (اے وی ڈی) پر پروجیکٹ انسٹال کرتے ہیں تو اثاثہ کامیابی کے ساتھ ڈاؤن لوڈ ہوجائے گا ، لیکن ایپ اصل میں اسے ظاہر نہیں کرے گی۔ چلو اب اسے ٹھیک کریں!

ایک دوسری اسکرین بنانا: نیویگیشن شامل کرنا

ہم پورے اسکرین وضع میں اثاثہ ظاہر کرنے جارہے ہیں ، تو آئیے ایک اہم بٹن شامل کرنے کے لئے اپنی مین_ایسٹی.ایم۔ایل فائل کو اپ ڈیٹ کریں جس کو ٹیپ کرنے کے بعد فل سکرین سرگرمی شروع ہوجائے گی۔

اب ہم مین ایٹویٹی ڈاٹ کیٹی فائل کے آخر میں آنلیک لسٹنر شامل کریں:

android.content.Inttent درآمد android.os.Bundle درآمد 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 حاصل کریں आयात درآمد کوٹلنکس.اینڈروڈ.سینٹھیٹک.مین.ٹیٹیویٹی_ومین. -KEY "والو اثاثہ URL =" https://poly.googleapis.com/v1/assets/94XG1XUy10q "on onCide ​​on Fun (SaveInstanceState: Bundle؟) {super.onCreate (SaveInstanceState) سیٹ کانٹینٹ ویو (R.layout.activity_main) APIKey.startsWith ("INSERT")) ast Toast.makeText (یہ ، "آپ نے اپنی API کلید کو اپ ڈیٹ نہیں کیا ہے" ، Toast.LENGTH_SHORT) شو ()} else {assetURL.http گیٹ (listOf ("key" to APIKey)))۔ رسپانسسن {درخواست ، جواب ، نتیجہ -> نتیجہ.fold ({ویل اثاثہ = it.obj () ور آبجیکٹ یو آر ایل: سٹرنگ؟ = کال ورول مادری لائبرینیئم: سٹرنگ؟ = کالر مادی لیبری یو آر ایل: Str ING = نول ویل اثاثہ فارمیٹس = asset.getJSONArray ("فارمیٹس") کے لئے (میں 0 میں assetFormats.length ()) current ویل موجودہ فارمیٹ = اثاثہ فارمیٹ.بیٹ JSONObject (i) اگر (موجودہ فارمیٹ.بیٹ سٹرنگ ("formatType") == "OBJ" ) {آبجیکٹ یو آر ایل = موجودہ فارمیٹ.بیٹ جے ایس آئون آبجیکٹ ("روٹ"). گیٹ سٹرنگ ("یو آر ایل") مادریلیبرینیام = موجودہ فارمیٹ.بیٹ جے ایس ایس آرری ("وسائل"). گیٹ جے ایس او او آبجیکٹ (0) ) .getJSONObject (0) .getString ("url") Break}} آبجیکٹ URL !!. http ڈاؤن لوڈ () منزل مقصود {_، _ -> فائل (فائلیں ڈائر ، "globeAsset.obj") resp. غیر جوابی {_ ، _ ، نتیجہ -> نتیجہ.fold ({}، {Toast.makeText (یہ ، "وسائل ڈاؤن لوڈ کرنے سے قاصر ہے" ، ٹوسٹ.LENGTH_SHORT). شو ()})} مادLی لائبریئ آر ایل !!. http ڈاؤن لوڈ (). منزل {_، _ -> فائل (فائلوں کا دائرہ ، مادLی لبرraryی نام) resp. غیر جوابی {_، _ ، نتیجہ -> نتیجہ.fold ({}، {ٹوسٹ.میک ٹیکسٹ (یہ ، "وسائل ڈاؤن لوڈ کرنے سے قاصر ہے" ، ٹوسٹ. ایل این جی ٹی ایچ ایس ایچ او آر ٹی۔ شو ()})}} ، {ٹوسٹ.میک ٹیکسٹ (یہ ، "وسائل ڈاؤن لوڈ کرنے سے قاصر ہے" ، ٹوسٹ. ایل این جی ٹی ایچ ایس ایچ آر ٹی۔) ow ()})} // ایک بٹن کو نافذ کریں // displayButton.setOnClickListener {val intent = ارادے (یہ ، دوسرا سرگرمی: class.java) startActivity (ارادے)؛ }}}

تھری ڈی کینوس کی تعمیر

اب ہم ایکٹیوٹی تخلیق کریں جہاں ہم اپنا اثاثہ فل سکرین موڈ میں ڈسپلے کریں گے۔

  • اپنے پروجیکٹ کی مین ایکٹیویٹی ڈاٹ کی ٹی فائل پر کلک کریں ، اور "نیا> کوٹلن فائل / کلاس" منتخب کریں۔
  • "قسم" ڈراپ ڈاؤن کو کھولیں ، اور "کلاس" منتخب کریں۔
  • اس کلاس کو "سیکنڈ ایکٹیویٹی" کا نام دیں اور پھر "ٹھیک ہے" پر کلک کریں۔

3D آبجیکٹ کو اپنی طرف متوجہ کرنے کے لئے ، ہمیں 3D کینوس کی ضرورت ہے! میں اینڈروئیڈ کی لائبریری کے P3D پیش کنندہ کے لئے پروسیسنگ استعمال کرنے جارہا ہوں ، جس کا مطلب ہے پیپلیٹ کلاس میں توسیع کرنا ، ترتیبات () کے طریقہ کار کو زیر کرنا اور پھر P3D کو پورے اسکرین () طریقہ کی دلیل کے طور پر پاس کرنا ہے۔ ہمیں ایک ایسی پراپرٹی بنانے کی بھی ضرورت ہے جو پی ایس شیپ آبجیکٹ کے طور پر متعدد اثاثہ کی نمائندگی کرے۔

نجی تفریح ​​ڈسپلےاسٹ () {ویل کینواس 3 ڈی = آبجیکٹ: پی ایپلیٹ () poly ور پولی پولی: سیٹ شیئر؟ = منسوخ شدہ مذاق کی ترتیبات () {فل اسکرین (PConstants.P3D)}

اگلا ، ہمیں پی ایس شیپ آبجیکٹ کو شروع کرنے کی ضرورت ہے ، سیٹ اپ () کے طریقہ کار کو اوور رائیڈ کرکے ، لوڈ شیپ () طریقہ کو کال کریں ، اور پھر .obj فائل کا مطلق راستہ گزریں:

اوور رائڈ تفریحی سیٹ اپ () {متعدد = لوڈ شیپ (فائل (فائلیں ڈائر ، "globeAsset.obj")۔ مطلق پیٹ)}

P3D کے کینوس پر ڈرائنگ

اس 3D کینوس کو کھینچنے کے ل we ، ہمیں قرعہ اندازی () کے طریقہ کار کو اوور رائڈ کرنے کی ضرورت ہے۔

اوور رائڈ فن ڈرا () {پس منظر (0) شکل (پولی آسیٹ)}

پہلے سے طے شدہ طور پر ، متعدد API سے بازیافت ہونے والے بہت سے اثاثے چھوٹے حصے میں ہیں ، لہذا اگر اب آپ یہ کوڈ چلاتے ہیں تو ، آپ کو اپنی سکرین کی تشکیل کے لحاظ سے ، اثاثہ بھی نظر نہیں آتا ہے۔ 3D مناظر تخلیق کرتے وقت ، آپ عام طور پر ایک کسٹم کیمرا بنائیں گے تاکہ صارف منظر کو دریافت کرسکے اور آپ کے 3D اثاثوں کو 360 ڈگری سے دیکھ سکے۔ تاہم ، یہ اس مضمون کے دائرہ کار سے باہر ہے لہذا میں اثاثہ کے سائز اور مقام کو دستی طور پر تبدیل کروں گا ، تاکہ یہ یقینی بنایا جاسکے کہ یہ اسکرین پر اسکرین کے ساتھ آرام سے فٹ بیٹھتا ہے۔

آپ پیمانے () کے طریقہ کار میں منفی قدر گذر کر اثاثہ کے سائز میں اضافہ کرسکتے ہیں۔

پیمانہ (-10f)

آپ ترجمے () کے طریقہ کار اور درج ذیل نقاط کا استعمال کرکے ورچوئل 3D اسپیس میں اثاثہ کی پوزیشن کو ایڈجسٹ کرسکتے ہیں۔

  • ایکس. افقی محور کے ساتھ اثاثہ وضع کرتا ہے۔
  • Y عمودی محور کے ساتھ اثاثہ وضع کرتا ہے۔
  • زیڈ یہ "گہرائی / اونچائی" محور ہے ، جو 2D آبجیکٹ کو 3D آبجیکٹ میں بدل دیتا ہے۔ مثبت اقدار یہ تاثر پیدا کرتی ہیں کہ اعتراض آپ کی طرف آرہا ہے ، اور منفی اقدار یہ تاثر پیدا کرتی ہیں کہ اعتراض آپ سے دور جارہا ہے۔

نوٹ کریں کہ تبدیلیاں مجموعی ہوتی ہیں ، لہذا فنکشن کے بعد ہونے والی ہر چیز اثر کو جمع کرتی ہے۔

میں مندرجہ ذیل استعمال کر رہا ہوں:

ترجمہ کریں (-50f ، -100f ، 10f)

یہاں مکمل کوڈ ہے:

اوور رائڈ فن ڈرا () {پس منظر (0) پیمانہ (-10f) ترجمہ (-50f ، -100f) // شکل () طریقہ // شکل (پولی آسیٹ) پر کال کرکے اثاثہ کھینچیں}}

اگلا ، ہمیں اسی ترتیب والی فائل کو بنانے کی ضرورت ہے ، جہاں ہم 3D کینوس کو فریم لی آؤٹ ویجیٹ کے طور پر شامل کریں گے۔

  • اپنے پروجیکٹ کے "res> لے آؤٹ" فولڈر کو کنٹرول کریں۔
  • "لے آؤٹ ریسورس فائل" کو منتخب کریں۔
  • اس فائل کو "ایکٹیویٹی_ سیکنڈ" کا نام دیں اور پھر "ٹھیک ہے" پر کلک کریں۔

اب ہمارے پاس ہمارے "اثاثہ_مظاہرہ" فریم لی آؤٹ ہے ، ہمیں اپنی سیکنڈ اکٹیوٹی کو اس کے بارے میں بتانے کی ضرورت ہے! سیکنڈ ایکٹیویٹی ڈاٹ پی ٹی فائل پر پلٹائیں ، ایک نیا پی فراگمنٹ مثال بنائیں ، اور اسے ہمارے "اثاثہ_تظام" ویجیٹ کی سمت دکھائیں:

android.os.Bundle درآمد android.support.v7.app.appCompatActivity درآمد کوٹلنکس.اینڈروڈ.سینٹھیٹک.مین.ایکٹیویٹی_ سیکنڈ۔ * درآمد پروسیسنگ.اینڈروڈ.پی فراگمنٹ درآمد پروسیسنگ.کور.پلیٹ درآمد پروسیسنگ.کور۔ .Shape درآمد java.io.File کلاس سیکنڈ سرگرمی: AppCompatActivity () {onCide ​​Fun onCreate (SaveInstanceState: Bundle؟) {super.onCreate (SaveInstanceState) setCon کونٹ ویو (R.layout.activity_second) ڈسپلے} سیٹ فن fun (سیٹ}) canvas3D = آبجیکٹ: پیپلیٹ () poly متغیر پولی: سیٹ: PShape؟ = نول اوور رائڈ فین سیٹنگز () {فل سکرین (پی سیونسٹینٹس۔ پی 3 ڈی) fun اوور رائڈ فین سیٹ اپ () {پولی آسیٹ = لوڈ شیپ (فائل (فائلیں ڈائر ، "globeAsset.obj")۔ مطلق پاتھ)} اوور رائڈ فین ڈرا () {پس منظر (0) پیمانہ (-10f) ترجمہ (-50f، -100f) شکل (پولی آسیٹ)}} // مندرجہ ذیل // ویل ایسٹ ویو = پی فراگمنٹ (کینوس 3 ڈی) اثاثہ دیکھیں۔ سیٹ سیٹ (اثاثہ_ منظر ، اس) کو شامل کریں}}

آخری اقدام ، آپ کے منشور میں سیکنڈ سرگرمی شامل کررہا ہے:

// درج ذیل میں شامل کریں //

اپنے پروجیکٹ کی جانچ ہو رہی ہے

اب ہم تیار پروجیکٹ کو جانچنے کے لئے تیار ہیں! اسے اپنے اینڈروئیڈ ڈیوائس یا اے وی ڈی پر انسٹال کریں ، اور یقینی بنائیں کہ آپ کا ایک فعال انٹرنیٹ کنیکشن ہے۔ جیسے ہی ایپ لانچ ہوگی ، اس سے اثاثہ ڈاؤن لوڈ ہوجائے گا ، اور پھر آپ اسے "ڈسپلے اثاثہ" بٹن کو ایک نل دے کر دیکھ سکتے ہیں۔

آپ اس مکمل پراجیکٹ کو گٹ ہب سے ڈاؤن لوڈ کرسکتے ہیں۔

ختم کرو

اس مضمون میں ، ہم نے دیکھا کہ رن ٹائم کے وقت تھری ڈی اثاثہ بازیافت کرنے کے لئے متعدد API کا استعمال کیسے کریں اور اینڈرائڈ لائبریری کی پروسیسنگ کا استعمال کرتے ہوئے اس اثاثے کو کیسے ظاہر کیا جائے۔ کیا آپ کو لگتا ہے کہ متعدد API میں وی آر اور اے آر ترقی کو زیادہ سے زیادہ لوگوں تک قابل رسائی بنانے کی صلاحیت ہے؟ ہمیں ذیل میں تبصرے میں بتائیں!

متعلقہ

  • گوگل 2018 میں اے آر ایپس کو "سینکڑوں لاکھوں" اینڈروئیڈ ڈیوائسز پر لائے گا
  • گوگل آپ کو AI اور مشین لرننگ کے بارے میں مفت سکھائے گا
  • گوگل کارڈ بورڈ کے لئے 15 بہترین وی آر کھیل
  • گوگل کارڈ بورڈ کے لئے 10 بہترین وی آر ایپس
  • گوگل فوچیا کیا ہے؟ کیا یہ نیا اینڈروئیڈ ہے؟
  • گوگل ڈوپلیکس کیا ہے؟ - خصوصیات ، رہائی کی تاریخ اور بہت کچھ
  • صرف 7 منٹ میں اینڈروئیڈ کے لئے وی آر ایپ بنانے کا طریقہ
  • موبائل وی آر ہیڈسیٹ۔ آپ کے بہترین اختیارات کیا ہیں؟

فٹ بیٹ پے بڑے پیمانے پر بڑھ رہی ہے۔نیو یارک سٹی میں فٹ بٹ پے کو او ایم این وائی پائلٹ پروگرام میں لانے کیلئے فٹ بٹ نے میٹرو پولیٹن ٹرانسپورٹیشن اتھارٹی (ایم ٹی اے) کے ساتھ نئی شراکت کا اعلان کیا۔ جمعہ...

گوگل ڈرائیو ایک اسٹوریج سروس ہے جو آپ کو مختلف فائلوں کو کلاؤڈ میں محفوظ کرنے اور پھر اپنے اسمارٹ فون ، ٹیبلٹ ، یا کمپیوٹر سے ان تک رسائی حاصل کرنے دیتی ہے۔ آپ دستاویزات ، تصاویر ، ویڈیوز اور یہاں تک ...

آپ کے لئے