گوگل آرکور کے ساتھ ایک بڑھتی ہوئی حقیقت والی Android ایپ بنائیں

مصنف: Laura McKinney
تخلیق کی تاریخ: 7 Lang L: none (month-011) 2021
تازہ کاری کی تاریخ: 9 مئی 2024
Anonim
AR Урок │ Разработка приложения на android. Дополненная реальность в Unity 3D
ویڈیو: AR Урок │ Разработка приложения на android. Дополненная реальность в Unity 3D

مواد


منظر ماڈل پلگ ان کے ساتھ 3D ماڈل کی درآمد

عام طور پر ، تھری ڈی ماڈلز کے ساتھ کام کرنے میں ماہر علم کی ضرورت ہوتی ہے ، لیکن سینفارم پلگ ان کی ریلیز کے ساتھ ہی گوگل نے جاوا کا استعمال کرتے ہوئے تھری ڈی ماڈل پیش کرنا ممکن کردیا ہے - اور بغیر اوپن جی ایل سیکھنا ہے۔

سینفارم پلگ ان ایک اعلی سطحی API فراہم کرتا ہے جسے آپ معیاری اینڈروئیڈ ویجٹ ، شکلیں یا مواد سے ، یا 3D اثاثوں ، جیسے .OBJ یا .FBX فائلوں سے رینڈیبل بنانے کے لئے استعمال کرسکتے ہیں۔

ہمارے پروجیکٹ میں ، ہم اینڈروئیڈ اسٹوڈیو میں .OBJ فائل درآمد کرنے کے لئے Sceneform پلگ ان کا استعمال کریں گے۔ جب بھی آپ سینفارم کا استعمال کرکے کوئی فائل درآمد کرتے ہیں تو ، یہ پلگ ان خود بخود ہوجائے گا:

  • اثاثہ کی فائل کو .sfb فائل میں تبدیل کریں۔ یہ ایک رن ٹائم مرضی کے مطابق منظر بائنری فارمیٹ (.sfb) ہے جو آپ کے APK میں شامل کیا گیا ہے اور پھر رن ٹائم کے وقت بھری ہوئی ہے۔ ہم اس .sfb فائل کو رینڈیئیربل بنانے کے لئے استعمال کریں گے ، جس میں میسز ، مواد اور بناوٹ شامل ہے ، اور اس کو بڑھا ہوا منظر میں کہیں بھی رکھا جاسکتا ہے۔
  • .sfa فائل بنائیں۔ یہ ایک اثاثہ جات کی وضاحت کی فائل ہے ، جو ایک ٹیکسٹ فائل ہے جس میں انسانوں کے پڑھنے کے قابل تفصیل پر مشتمل ہے ۔sfb فائل ہے۔ ماڈل پر منحصر ہے ، آپ .sfa فائل کے اندر متن میں ترمیم کرکے اس کی شکل بدل سکتے ہیں۔


ذرا جان لیں کہ تحریر کے وقت ، سینفارم پلگ ان ابھی بھی بیٹا میں موجود تھا ، لہذا جب آپ اس پلگ ان کا استعمال کرتے ہیں تو آپ کو کیڑے ، غلطیاں یا دوسرے عجیب و غریب رویے کا سامنا کرنا پڑ سکتا ہے۔

مناظر پلگ ان انسٹال کرنا

سینفارم پلگ ان کیلئے Android اسٹوڈیو 3.1 یا اس سے زیادہ کی ضرورت ہوتی ہے۔ اگر آپ کو یقین نہیں ہے کہ آپ Android اسٹوڈیو کا کون سا ورژن استعمال کررہے ہیں تو ، ٹول بار سے "اینڈروئیڈ اسٹوڈیو> اینڈروئیڈ اسٹوڈیو کے بارے میں" منتخب کریں۔ اس کے بعد والے پاپ اپ میں آپ کے Android اسٹوڈیو کی تنصیب کے بارے میں کچھ بنیادی معلومات شامل ہیں ، جس میں اس کا ورژن نمبر بھی شامل ہے۔

سینفارم پلگ ان انسٹال کرنے کے لئے:

  • اگر آپ میک پر ہیں تو ، Android اسٹوڈیو ٹول بار سے "Android اسٹوڈیو> ترجیحات…" منتخب کریں ، پھر بائیں مینو میں سے "پلگ انز" کا انتخاب کریں۔ اگر آپ ونڈوز پی سی پر ہیں تو ، پھر "فائل> سیٹنگز> پلگ انز> براؤز ریپوزٹریز" کو منتخب کریں۔
  • "منظر نامے" کی تلاش کریں۔ جب "گوگل منظر نامے والے اوزار" ظاہر ہوں تو ، "انسٹال کریں" کو منتخب کریں۔
  • جب اشارہ کیا گیا ہو تو Android اسٹوڈیو کو دوبارہ شروع کریں ، اور آپ کا پلگ ان استعمال کیلئے تیار ہوگا۔


منظر UX اور جاوا 8: اپنے منصوبے کی انحصار کو اپ ڈیٹ کرنا

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

انحصار {عملدرآمد فائل درخت (dir: libs، شامل:) نفاذ androidx.appcompat: appcompat: 1.0.2 نفاذ androidx.constraintlayout: رکاوٹ: 1.1.3 ٹیسٹعمل عمل جنیت: جونیت: 4.12 androidTestImplementation androidx.test.ext: جنیت: 1.1.0 androidTestImplementation androidx.test.espresso: espresso-core: 3.1.1 // Sceneform UX UX وسائل مہیا کرتا ہے ، بشمول ArFragment // نفاذ "com.google.ar.sceneform.ux: منظر شکل-ux: 1.7.0" عمل درآمد "com۔ android.support:appcompat-v7:28.0.0 "}

منظر 8 جاوا 8 سے زبان کی تعمیر کا استعمال کرتا ہے ، لہذا ہمیں جاوا 8 میں بھی اپنے پروجیکٹ کی ماخذ مطابقت اور ہدف کی مطابقت کو اپ ڈیٹ کرنے کی ضرورت ہوگی۔

تالیفات {ماخذ مطابقت والا جاوا ورژن۔ VERSION_1_8 اہداف مطابقت جاوا ورژن۔ VERSION_1_8

آخر میں ، ہمیں سینفارم پلگ ان کا اطلاق کرنے کی ضرورت ہے۔

پلگ ان لگائیں: com.google.ar.sceneform.plugin

آپ کی مکمل build.gradle فائل میں کچھ اس طرح نظر آنا چاہئے:

پلگ ان کا اطلاق کریں: com.android.application android {compileSdkVersion 28 defaultConfig {applicationId "com.jessicathornsby.arcoredemo" minSdkVersion 23 TarSdkVersion 28 versionCode 1 versionName "1.0" testInamentmentationRunner "androidC.er.nunation.nunation.pluration.puuration.puuration.puuration.puuration.puuNsCuertCNuNCX جاوا ورسن.یو.ویئرشن_1_8} بلٹ ٹائپس {ریلیز {منیفایبلڈ جھوٹی پروگوارڈ فائلوں کو ڈیفالٹ پروگرڈفائل (پروگوارڈ-اینڈروئیڈ - آپٹائز ڈاٹ ٹی ٹیکس) ، پروگوارڈ-rules.pro}}} انحصار {عمل درآمد فائل ٹری (ڈائر: لیبز ، شامل:) نفاذ androidx.cc .2 نفاذ androidx.constraintlayout: constraintlayout: 1.1.3 testImplementation Junit: Junit: 4.12 androidTestImplementation androidx.test.ext: جنیت: 1.1.0 androidTestImplementation androidx.test.espresso: espresso-core: 3.1.1 عمل "com.google. ar.sceneform.ux: وضع شکل-ux: 1.7.0 "عمل درآمد" com.android.support:appcompat-v7:28.0.0 "} لاگو پلگ ان: com.google.ar .sceneform.plugin

آر ایفراگمنٹ کے ساتھ اجازت کی درخواست کرنا

ہماری ایپلی کیشن آلہ کے کیمرا کو اس کے آس پاس کے تجزیہ اور حقیقی دنیا میں 3D ماڈل کی پوزیشن کے ل. استعمال کرے گی۔ اس سے پہلے کہ ہماری ایپلی کیشن کیمرے تک رسائی حاصل کرسکے ، اس کے لئے کیمرہ اجازت کی ضرورت ہے ، لہذا اپنے پروجیکٹ کا منشور کھولیں اور درج ذیل شامل کریں:

اینڈروئیڈ 6.0 نے صارفین کو اجازت کے ذریعہ اجازت کے ذریعہ اجازت دینے ، انکار اور منسوخ کرنے کی صلاحیت فراہم کی۔ اگرچہ اس سے صارف کے تجربے میں بہتری آئی ہے ، لیکن اینڈروئیڈ ڈویلپرز کو اب رن ٹائم کے موقع پر دستی طور پر اجازت کی درخواست کرنا ہوگی ، اور صارف کے جواب کو سنبھالنا ہوگا۔ اچھی خبر یہ ہے کہ گوگل اے آر کور پر کام کرنے پر ، کیمرہ کی اجازت کی درخواست کرنے اور صارف کے جواب کو سنبھالنے کا عمل لاگو ہوتا ہے خود بخود.

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

اے آر کی ضرورت ہے یا اختیاری؟

دو طرح کی ایپلی کیشنز ہیں جو AR فعالیت کو استعمال کرتی ہیں۔

1. اے آر ضروری ہے

اگر آپ کا اطلاق اچھے صارف کے تجربے کی فراہمی کے لئے گوگل آرکور پر انحصار کرتا ہے ، تو آپ کو اس بات کی یقین دہانی کرنی ہوگی کہ یہ صرف ان آلات پر ڈاؤن لوڈ کی گئی ہے جو اے آر کور کی حمایت کرتے ہیں۔ اگر آپ اپنی ایپ کو بطور "AR مطلوبہ" بطور نشان زد کرتے ہیں تو پھر یہ صرف Google Play اسٹور میں ظاہر ہوگا ، اگر ڈیوائس ARCore کو سپورٹ کرتی ہے۔

ہماری درخواست کے بعد سے کرتا ہے اے آرکور کی ضرورت ہے ، منشور کھولیں اور درج ذیل شامل کریں:

اس بات کا بھی امکان موجود ہے کہ آپ کی ایپلی کیشن کو کسی ایسے آلے پر ڈاؤن لوڈ کیا جاسکتا ہے جو تھیوری میں اے آر کور کی حمایت کرتا ہے ، لیکن حقیقت میں اے آر کور انسٹال نہیں ہے۔ ایک بار جب ہم اپنی ایپ کو "اے آر مطلوبہ" کے بطور نشان زد کرتے ہیں تو Google Play خود کار طریقے سے آپ کے ایپ کے ساتھ ساتھ ARCore ڈاؤن لوڈ اور انسٹال کردے گا ، اگر یہ پہلے سے ہدف والے آلہ پر موجود نہیں ہے۔

صرف اتنا آگاہ ہوں کہ اگر آپ کی ایپ android ڈاؤن لوڈ ہے تو بھی: مطلوبہ = "سچ" آپ کو کرنا پڑے گا اب بھی یہ چیک کرنے کی ضرورت ہے کہ اے آر کور رن ٹائم پر موجود ہے ، کیوں کہ اس بات کا امکان موجود ہے کہ صارف نے آپ کی ایپ ڈاؤن لوڈ کرنے کے بعد سے ای آر کور ان انسٹال کیا ہو ، یا یہ کہ ان کا ای آر کور کا ورژن بالکل ہی پرانا ہے۔

اچھی خبر یہ ہے کہ ہم آرفراگمنٹ کا استعمال کررہے ہیں ، جو خود بخود چیک کرتا ہے کہ اے آر کور انسٹال ہے اور تخلیق کرنے سے پہلے جدید ہے ہر ایک اے آر سیشن - لہذا ایک بار پھر ، یہ ایسی چیز ہے جو ہمیں دستی طور پر نافذ کرنے کی ضرورت نہیں ہے۔

2. اے آر اختیاری

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

اگر آپ "اے آر اختیاری" ایپ بناتے ہیں تو پھر ایرکور تیار ہوجائے گا نہیں اپنی درخواست کے ساتھ خود بخود انسٹال ہوجائیں ، یہاں تک کہ اگر آلہ میں اے آر کور کو سپورٹ کرنے کے لئے درکار تمام ہارڈ ویئر اور سافٹ ویئر موجود ہیں۔ اس کے بعد آپ کی "اے آر اختیاری" ایپ کو جانچ پڑتال کرنے کی ضرورت ہوگی کہ آیا آرکور موجود ہے اور جدید ترین ہے ، اور جب ضرورت ہو تو تازہ ترین ورژن ڈاؤن لوڈ کریں۔

اگر آپ کی ایپ کے لئے اے آر کور اہم نہیں ہے ، تو آپ اپنے منشور میں درج ذیل کو شامل کرسکتے ہیں:

جب میں مینی فینیٹ کھلا ہوا ہوں ، میں مین اکیویٹی ہینڈل واقفیت کو احسن طریقے سے تبدیل کرنے کو یقینی بنانے کے لئے اینڈروئیڈ: تشکیل چینجز اور اینڈروئیڈ: اسکرین اورینٹٹیشن بھی شامل کر رہا ہوں۔

اپنے منشور میں یہ سب شامل کرنے کے بعد ، مکمل فائل کو کچھ اس طرح نظر آنا چاہئے:

اپنے لے آؤٹ میں آر فراگمنٹ شامل کریں

میں ARCore کا آرفراگمنٹ استعمال کروں گا ، کیونکہ یہ ہر AR سیشن کے آغاز پر خود بخود متعدد کلیدی ARCore کاموں کو سنبھالتا ہے۔ خاص طور پر ، آرفراگمنٹ چیک کرتا ہے کہ آور پر اے آر کور کا ہم آہنگ ورژن انسٹال ہے ، اور اس وقت ایپ کو کیمرہ کی اجازت حاصل ہے۔

ایک بار جب آرفراگمنٹ نے یہ توثیق کرلیا کہ آلہ آپ کے ایپ کی اے آر کی خصوصیات کی تائید کرسکتا ہے تو ، اس سے آرسن ویو اے آر کور سیشن تشکیل پاتا ہے ، اور آپ کے ایپ کا اے آر کا تجربہ جانے کے لئے تیار ہے!

آپ کسی باقاعدہ اینڈروئیڈ فریگمنٹ کی طرح آرٹ فرینگمنٹ کے ٹکڑے کو کسی لے آؤٹ فائل میں شامل کرسکتے ہیں ، لہذا اپنی سرگرمی_ومین. ایکس ایم ایل فائل کو کھولیں اور "com.google.ar.sceneform.ux.ArFraament" جزو شامل کریں۔

گوگل کے متعدد استعمال کرکے 3D ماڈل ڈاؤن لوڈ کرنا

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

منظر نامے متحرک تصاویر کے ساتھ یا اس کے بغیر .OBJ ، .glTF ، اور .FBX فارمیٹس میں 3D اثاثوں کی حمایت کرتا ہے۔ بہت ساری جگہیں ہیں جہاں آپ ان میں سے کسی ایک میں تعاون یافتہ فارمیٹ میں 3D ماڈل حاصل کرسکتے ہیں ، لیکن اس ٹیوٹوریل میں میں .OBJ فائل استعمال کروں گا ، جسے گوگل کے متعدد ذخیروں سے ڈاؤن لوڈ کیا گیا ہے۔

متعدد ویب سائٹ پر جائیں اور اس اثاثہ کو ڈاؤن لوڈ کریں جس کو آپ استعمال کرنا چاہتے ہیں۔ OBJ فارمیٹ میں (میں اس T-Rex ماڈل کا استعمال کررہا ہوں)۔

  • فولڈر کو ان زپ کریں ، جس میں آپ کے ماڈل کی ماخذ اثاثہ فائل (.OBJ ، .FBX ، یا .glTF) پر مشتمل ہونا چاہئے۔ ماڈل پر منحصر ہے ، اس فولڈر میں کچھ ماڈل پر انحصار بھی ہوسکتا ہے ، جیسے .mtl ، .bin ، .png ، یا .jpeg فارمیٹس میں موجود فائلیں۔

اینڈرائیڈ اسٹوڈیو میں 3D ماڈل کی درآمد

ایک بار جب آپ اپنا اثاثہ حاصل کرلیں تو ، آپ کو سینکفارم پلگ ان کا استعمال کرکے اسے Android اسٹوڈیو میں درآمد کرنے کی ضرورت ہے۔ یہ ایک ملٹی مرحلہ عمل ہے جس کے لئے آپ کی ضرورت ہوتی ہے:

  • ایک "نمونے والا" فولڈر بنائیں۔ نملیڈیٹا ایک نیا فولڈر قسم ہے ڈیزائن ٹائم نمونہ ڈیٹا کے لئے جو آپ کے APK میں شامل نہیں ہوگا ، لیکن یہ اینڈرائڈ اسٹوڈیو ایڈیٹر میں دستیاب ہوگا۔
  • اصل .OBJ اثاثہ کی فائل کو اپنے "نمونے والا" فولڈر میں کھینچ کر چھوڑیں۔
  • .OBJ فائل پر منظر نامہ درآمد اور تبادلوں کو انجام دیں ، جو .sfa اور .sfb فائلیں تیار کرے گی۔

اگرچہ یہ زیادہ سیدھے لگ سکتے ہیں ، نہیں .OBJ فائل کو براہ راست اپنے پروجیکٹ کی "ریس" ڈائرکٹری میں ڈریگ اور ڈراپ کریں ، کیونکہ اس کی وجہ سے ماڈل آپ کے APK میں غیرضروری طور پر شامل ہوجائے گا۔

Android اسٹوڈیو پروجیکٹس میں بطور ڈیفالٹ "نمونے والا" فولڈر موجود نہیں ہوتا ہے ، لہذا آپ کو دستی طور پر ایک بنانا ہوگا:

  • اپنے پروجیکٹ کے "ایپ" فولڈر کو کنٹرول کریں۔
  • "نیا> نمونہ ڈیٹا ڈائرکٹری" منتخب کریں اور "سیمپلڈیٹا" نامی ایک فولڈر بنائیں۔
  • پہلے آپ ڈاؤن لوڈ کی گئی 3D ماڈل فائلوں پر تشریف لے جائیں۔ ماخذ کی اثاثہ والی فائل (.OBJ، .FBX، یا .glTF) تلاش کریں اور پھر اسے "نمونے والا" ڈائریکٹری میں کھینچ کر چھوڑیں۔
  • چیک کریں کہ آیا آپ کے ماڈل میں کوئی انحصار ہے (جیسے .mtl ، .bin ، .png ، یا .jpeg فارمیٹس میں فائلیں)۔ اگر آپ کو ان میں سے کوئی فائل مل جاتی ہے ، تو پھر انھیں گھسیٹ کر "نمونہ ڈیٹا" فولڈر میں ڈالیں۔
  • اینڈروئیڈ اسٹوڈیو میں ، اپنی 3D ماڈل سورس فائل (.OBJ، .FBX، یا .glTF) پر کلک کریں اور پھر "درآمد اثاثہ درآمد کریں" کو منتخب کریں۔

  • اس کے بعد کی ونڈو میں ان فائلوں کے بارے میں کچھ معلومات دکھائی گئیں جن کا منظر نامہ تیار کرنے جارہا ہے ، بشمول جس کے نتیجے میں .sfa فائل آپ کے پروجیکٹ میں محفوظ کی جائے گی۔ میں "کچی" ڈائرکٹری استعمال کروں گا۔
  • جب آپ داخل کردہ معلومات سے خوش ہوجاتے ہیں تو ، "ختم" پر کلک کریں۔

یہ درآمد آپ کے منصوبے میں کچھ تبدیلیاں لاتا ہے۔ اگر آپ اپنی build.gradle فائل کھولتے ہیں ، تو آپ دیکھیں گے کہ Sceneform پلگ ان کو پروجیکٹ انحصار کے طور پر شامل کیا گیا ہے:

انحصار {کلاسپاتھ com.android.tools.build:gradle:3.5.0-alpha06 classpath com.google.ar.sceneform: پلگ ان: 1.7.0 // نوٹ: اپنی درخواست پر انحصار یہاں نہ رکھیں؛ ان کا تعلق // انفرادی ماڈیول build.gradle فائلوں میں ہے}

اپنی ماڈیول کی سطح کی بلڈ.gradle فائل کھولیں ، اور آپ کو اپنے درآمد شدہ 3D ماڈل کے ل a ایک نیا اندازفارم.اسٹ () اندراج ملے گا۔

پلگ ان کا اطلاق کریں: com.google.ar.sceneform.plugin // درآمد کے دوران آپ نے جس "ماخذ اثاثہ راہ" کی وضاحت کی ہے // منظر نامہ.اسیٹ (نمپلٹاٹا / ڈایناسور.اوج ، // وہ "مادی راہ" جو آپ نے درآمد کے دوران طے کیا ہے // ڈیفالٹ ، // وہ ".sfa آؤٹ پٹ راہ" جو آپ نے درآمد // نمونہ / ڈایناسور.سفا کے دوران بتائی ہے ، // "ssbb آؤٹ پٹ" جو آپ نے درآمد کے دوران مخصوص کیا ہے // src / main / اثاثوں / ڈایناسور)

اگر آپ اپنے "نمونے والا" اور "کچے" فولڈرز پر ایک نگاہ ڈالیں تو آپ دیکھیں گے کہ ان میں بالترتیب نئی .sfa اور .sfb فائلیں شامل ہیں۔

آپ android ڈاؤن لوڈ اسٹوڈیو کے نئے Sceneform Viewer میں .sfa فائل کا پیش نظارہ کرسکتے ہیں۔

  • اینڈروئیڈ اسٹوڈیو مینو بار سے "دیکھیں> ٹولز ونڈوز> ویوور" کو منتخب کریں۔
  • بائیں ہاتھ والے مینو میں ، اپنی .sfa فائل کو منتخب کریں۔ آپ کا 3D ماڈل اب ناظر ونڈو میں ظاہر ہونا چاہئے۔

اپنا 3D ماڈل ڈسپلے کریں

ہمارا اگلا کام ایک اے آر سیشن تشکیل دے رہا ہے جو اس کے آس پاس کے ماحول کو سمجھتا ہے ، اور صارف کو اجازت دیتا ہے کہ وہ 3D ماڈل کو بڑھا ہوا منظر میں رکھ سکے۔

اس سے ہمیں درج ذیل کام کرنے کی ضرورت ہے۔

1. ایک ارفراگمنٹ ممبر متغیر بنائیں

اے آر سیگمنٹ ایک بہت بڑا اثر اٹھانا پیش کرتا ہے جس میں ایک اے آر سیشن بنانے میں شامل ہوتا ہے ، لہذا ہم اس مین ٹکڑوں کا حوالہ اپنے مین اکیویٹی کلاس میں دیتے ہیں۔

مندرجہ ذیل ٹکڑوں میں ، میں آرفراگمنٹ کے لئے ایک ممبر متغیر بنا رہا ہوں اور پھر اس کو onCreate () طریقہ میں شروع کروں گا:

نجی ارفراگمنٹ @ اووررائڈ محفوظ باطل آن کریٹیٹ (بنڈل سیفڈ انسٹنس اسٹیٹ) {سوپر ڈاٹ کریٹیٹ (سیفڈ انسٹینس اسٹیٹ)؛ ... ... ...} setContentView (R.layout.activity_main)؛ آرکور فراگمنٹ = (آر فراگمنٹ) // فریگمنٹ مینیجر کا استعمال کرتے ہوئے ، ٹکڑا تلاش کریں // getSupportFragmentManager () حاصل کریں ۔FragmentById (R.id.main_fragment)؛

2. ماڈل تیار کرنے کے قابل بنائیں

اب ہمیں اپنی .sfb فائل کو ماڈل آرینڈیبل میں تبدیل کرنے کی ضرورت ہے ، جو آخر کار ہمارے 3D آبجیکٹ کو رینڈر کردے گی۔

یہاں ، میں اپنے پروجیکٹ کے ریز / خام / ڈایناسور .sfb فائل سے ایک ماڈل قابل تقلید پیدا کررہا ہوں:

نجی ماڈل ... ... ... ModelRenderable.builder () .setSource (یہ ، R.raw.dinosaur). بلڈ () .پھر قبول کریں (انجام دینے والا -> ڈنو آرینڈیبل = پیش کرنے والا)۔ اختیاری طور پر (پھینک دینے والا -> {لاگ.e ( ٹیگ ، "رینڈیبل قابل لوڈ کرنے سے قاصر ہیں") return واپس منسوخ کریں})؛ }

3. صارف کے ان پٹ کا جواب دیں

آرفراگمنٹ میں نل ، ڈریگ ، چوٹکی اور موڑ کے اشاروں کیلئے بلٹ ان سپورٹ ہے۔

ہماری ایپ میں ، صارف اس ایر کو ایک نل دے کر ، ایک ایرکور طیارے میں 3D ماڈل شامل کرے گا۔

اس فعالیت کو پہنچانے کے ل we ، ہمیں ایک کال بیک رجسٹر کرنے کی ضرورت ہے جو جب بھی ہوائی جہاز کو ٹیپ کیا جاتا ہے تو اس کا مطالبہ کیا جاتا:

#CoreFragment.setOnTapArPlaneListener ((HitResult hitResult ، ہوائی جہاز ، موشن ایونٹ موشن ایونٹ)) -> {اگر (ڈنو آرینڈیبل == کال) ull واپسی {}

4. اپنے ماڈل کو لنگر انداز کریں

اس مرحلے میں ، ہم ایک آرسین ویو کو بازیافت کرنے اور اسے ایک اینکر نوڈ سے منسلک کرنے جارہے ہیں ، جو منظر کے والدین نوڈ کے طور پر کام کرے گا۔

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

ARSceneView اجزاء کا ایک منظر اس کے ساتھ منسلک ہوتا ہے ، جو والدین کے بچوں کا ڈیٹا ڈھانچہ ہوتا ہے جس میں تمام نوڈس شامل ہوتے ہیں جن کو پیش کرنے کی ضرورت ہوتی ہے۔

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

تمام اینکر نوڈس ایک ہی حقیقی دنیا کی حیثیت میں رہتے ہیں ، لہذا ایک اینکر نوڈ بنا کر ہم یہ یقینی بنارہے ہیں کہ بڑھا ہوا منظر میں ہمارے 3D ماڈلز فکس رہیں گے۔

آئیے ہم اپنا اینکر نوڈ بنائیں:

اینکرنوڈ اینکرنوڈ = نیا اینکرنوڈ (اینکر)؛

اس کے بعد ہم getArSceneView () کا استعمال کرتے ہوئے ، اور اس کو اینکر نوڈ سے منسلک کرتے ہوئے ، ایک آرسین ویو کو بازیافت کرسکتے ہیں:

اینکرنوڈ.سیٹ پیرننٹ (arCoreFragment.getArSceneView (). getScene ())؛

5. منتقل ، اسکیلنگ اور گھومنے کے لئے مدد شامل کریں

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

ایک بار جب آپ ٹرانسفارمیبل نوڈ تشکیل دے دیتے ہیں تو ، آپ اسے رینڈیبل کے ساتھ منسلک کرسکتے ہیں ، جو ماڈل کو صارف کی بات چیت کی بنیاد پر پیمانہ اور منتقل کرنے کی صلاحیت فراہم کرے گا۔ آخر میں ، آپ کو TransforbleNode کو اینکر نوڈ سے مربوط کرنے کی ضرورت ہے ، بچے کے والدین کے تعلقات میں جو TransformableNode کو یقینی بناتا ہے اور قابل پیش منظر جگہ میں قابل ترتیب رہنا۔

TransformableNode transformableNode = نیا TransformableNode (arCoreFragment.getTransformationSystem ())؛ // transforbleNode کو لنگر نوڈ سے مربوط کریں // transformableNode.setPare (anchorNode)؛ transformableNode.setRenderable (dinoRenderable)؛ // نوڈ کو منتخب کریں // transformableNode.select ()؛ })؛ }

مکمل سرگرمی

مذکورہ بالا سب کو انجام دینے کے بعد ، آپ کی مین ایکٹیویٹی کو کچھ اس طرح نظر آنا چاہئے:

android.app.Activity درآمد کریں۔ android.app.ActivityManager درآمد کریں؛ androidx.appcompat.app.appCompatActivity درآمد کریں۔ android.content.Context درآمد کریں؛ android.net.Uri درآمد کریں؛ android.os.Build درآمد کریں؛ درآمد کریں android.os.Build.VERSION_CODES؛ android.os.Bundle درآمد کریں۔ درآمد android.util.Log؛ امپورٹ اینڈرویڈ ڈیو۔موشن ایونٹ؛ درآمد androidx.annotation.RequiresApi؛ com.google.ar.core.Ancor درآمد کریں؛ امپورٹ کریں com.google.ar.core.HitResult؛ com.google.ar.core.Plane درآمد کریں؛ com.google.ar.sceneform.AunchorNode درآمد کریں؛ com.google.ar.sceneform.rendering.ModelRenderable درآمد کریں؛ com.google.ar.sceneform.ux.ArFraament درآمد کریں؛ com.google.ar.sceneform.ux.TransformableNode درآمد کریں؛ عوامی طبقے کی مین ایکٹیویٹی نے AppCompatActivity میں توسیع کر دی ہے {نجی جامد فائنل اسٹرنگ TAG = مین سرگرمی.کلاس.بیج سمپل نیم ()؛ نجی جامد فائنل ڈبل MIN_OPENGL_VERSION = 3.0؛ // ModelRenderable // نجی ماڈلRenderable dinoRenderable کے لئے ایک رکن متغیر بنائیں؛ // ارفراگمنٹ // نجی آر فراگمنٹ آر کور فراگمنٹ کے لئے ممبر متغیر بنائیں۔ RequiresApi (api = VERSION_CODES.N)Orride سے محفوظ باطل onCreate (بنڈل سیولڈ انسٹینس اسٹیٹ) {super.onCreate (SaveInstanceState)؛ اگر (! چیک ڈیوائس ((یہ))) {واپس؛ } سیٹ کانٹینٹ ویو (R.layout.activity_main)؛ آرکور فراگمنٹ = (آر فراگمنٹ) // فریگمنٹ مینیجر کا استعمال کرتے ہوئے ، ٹکڑا تلاش کریں // getSupportFragmentManager () حاصل کریں ۔FragmentById (R.id.main_fragment)؛ if (Build.VERSION.SDK_INT> = VERSION_CODES.N) {// ModelRendeable // ModelRenderable.builder () .setSource (یہ ، R.raw.dinosaur). بلڈ () .پھر قبول کریں (قابل پیش -> ڈینو آراندریبل = پیش کرنے والا) ) غیر معقول طور پر (// اگر خرابی پیش آتی ہے تو .... // تھرو ایبل -> {//... اس کے بعد مندرجہ ذیل کو کوکٹ // لوگگ پر پرنٹ کریں۔ (ٹیگ ، "رینڈیبل کو لوڈ کرنے سے قاصر ہیں") return واپسی منسوخ کریں؛} )؛ } // آن ٹیپ واقعات کے لئے سنیں // arCoreFragment.setOnTapArPlaneListener ((HitResult hitResult، ہوائی جہاز، موشن ایونٹ موشن ایونٹ)) -> {if (dinoRendeable == null) {واپسی؛} اینکر اینکر = ہٹ ریسلسٹ بلک اینکر () قسم کی نوڈ اینکرنوڈ // اینکرنوڈ اینکرنوڈ = نیا اینکرنوڈ (اینکر)؛ // اینکرنوڈ کو منظر // anchorNode.setParent (arCoreFragment.getArSceneView (). getScene ()) سے جوڑیں؛ // ٹرانسفارم نوڈ // کی قسم کی نوڈ بنائیں۔ TransformableNode transformableNode = new TransformableNode (arCoreFragment.getTransformationSystem ())؛ // لنگر نوڈ // transformableNode.setParent (anchorNode) سے TransformableNode منسلک کریں؛ // رینڈریبل // transformableNode.setRendeable / dinoRendeable / dendendendable / dendendendable / dendendendable / edit / transformableNode.select ()؛})؛ stat عوامی جامد بولین چیک ڈیوائس (حتمی سرگرمی کی سرگرمی) {// اگر آلہ Android مارشمیلو یا اس سے قبل چل رہا ہے ... // if (Build.VERSION.SDK_INT <VERSION_CODES.N) {//... تو مندرجہ ذیل پرنٹ کریں لاگ کوٹ // لوگگ۔ (ٹیگ ، "منظر کو Android N یا اس سے زیادہ کی ضرورت ہوتی ہے")؛ गतिविधि.فائنش ()؛ جھوٹی واپس؛ open اسٹرنگ اوپن گلی ورجن اسٹریننگ = ((ایکٹیویٹی مینجر) ایکٹیویٹی گیٹ سسٹم سروس (سیاق و سباق_اختیار_ سرور)) .getDeviceConfigrationInfo () // اوپن جی ایل ES // .getGlEsVersion () کا ورژن دیکھیں۔ // اگر آلہ اوپن جی ایل ES 3.0 سے کم کچھ چل رہا ہے ... // اگر (Double.parseDouble (openGlVersionString) <MIN_OPENGL_VERSION) .. //... تو مندرجہ ذیل کو کوکاٹ // لوگگ (ٹیگ ، "پرنٹ کریں۔" اوپن جی ایل ES 3.0 یا اس سے زیادہ کی ضرورت ہے ")؛ गतिविधि.فائنش ()؛ جھوٹی واپس؛ } سچ واپس لو؛ }

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

آپ کے Google ARCore میں اضافہ شدہ حقیقت والی ایپ کی جانچ ہو رہی ہے

اب آپ جسمانی ، تعاون یافتہ Android آلہ پر اپنی درخواست کی جانچ کرنے کے لئے تیار ہیں۔ اگر آپ کے پاس ایسی ڈیوائس نہیں ہے جو اے آر کور کو سپورٹ کرتا ہے تو ، پھر ممکن ہے کہ آپ کے اے آر اپلی کیشن کو اینڈروئیڈ ایمولیٹر (تھوڑی اضافی ترتیب کے ساتھ ، جس کا ہم اگلے حصے میں احاطہ کریں گے) میں جانچ کریں۔

اپنے پروجیکٹ کو جانچنا a پر جسمانی Android آلہ:

  • اپنی ایپلی کیشن کو ہدف والے آلہ پر انسٹال کریں۔
  • جب اشارہ کیا جائے تو ، درخواست کو اپنے آلے کے کیمرہ تک رسائی دیں۔
  • اگر ایرکور ایپ کو انسٹال کرنے یا اپ ڈیٹ کرنے کا اشارہ کیا گیا ہے تو ، "جاری رکھیں" کو تھپتھپائیں اور پھر یہ یقینی بنائیں کہ آپ آرکور کا تازہ ترین اور سب سے بڑا ورژن چلا رہے ہیں۔
  • اب آپ کو کیمرہ ویو دیکھنا چاہئے ، کسی آلے کو پکڑے ہوئے ہاتھ کی حرکت پذیری کے ساتھ مکمل کریں۔ کیمرے کو کسی فلیٹ سطح پر رکھیں اور اپنے ڈیوائس کو سرکلر موشن میں منتقل کریں ، جیسا کہ حرکت پذیری کے ذریعہ ظاہر ہوتا ہے۔ کچھ لمحوں کے بعد ، نقطوں کا ایک سلسلہ نمودار ہونا چاہئے ، جس سے یہ ظاہر ہوتا ہے کہ ہوائی جہاز کا پتہ چلا ہے۔

  • ایک بار جب آپ ان نقطوں کی پوزیشن سے خوش ہوجائیں تو ، انہیں ایک نل دیں - آپ کا 3D ماڈل اب آپ کے منتخب کردہ طیارے میں نمودار ہونا چاہئے!

  • جسمانی طور پر ماڈل کے گرد گھومنے کی کوشش کریں؛ اپنے گردونواح پر منحصر ہے ، آپ اس کے آس پاس 360 ڈگری پورے کرنے میں کامیاب ہوسکتے ہیں۔ آپ کو یہ بھی چیک کرنا چاہئے کہ اعتراض کوئی سایہ ڈال رہا ہے جو حقیقی دنیا کے روشنی کے ذرائع سے ہم آہنگ ہے۔

اینڈر کور کو Android ورچوئل ڈیوائس پر جانچنا

اینڈروئیڈ ورچوئل ڈیوائس (اے وی ڈی) میں اپنے اے آرکور ایپس کو جانچنے کے ل you ، آپ کو اینڈروئیڈ ایمولیٹر ورژن 27.2.9 یا اس سے زیادہ کی ضرورت ہوگی۔ آپ کو اپنی اے وی ڈی پر گوگل پلے اسٹور میں بھی سائن ان ہونا چاہئے ، اور اوپن جی ایل ES 3.0 یا اس سے زیادہ قابل ہونا چاہئے۔

یہ چیک کرنے کے لئے کہ آپ کے AVD پر اوپن جی ایل ES 3.0 یا اس سے زیادہ فی الحال فعال ہے یا نہیں:

  • عام طور پر ، اپنی اے وی ڈی لانچ کریں۔
  • ایک نئی ٹرمینل ونڈو (میک) یا کمانڈ پرامپٹ (ونڈوز) کھولیں۔
  • ڈائریکٹری تبدیل کریں ("سی ڈی") لہذا ٹرمینل / کمانڈ پرامپٹ آپ کے Android SDK کے "adb" پروگرام کے مقام کی نشاندہی کررہا ہے ، مثال کے طور پر میری کمانڈ اس طرح دکھائی دیتی ہے۔

سی ڈی / صارفین / جیسیکاتھورنسبی / لائبریری / اینڈروئیڈ / ایس ڈی کے / پلیٹ فارم ٹولز

  • اپنے کی بورڈ پر "انٹر" بٹن دبائیں۔
  • اگلی کمانڈ کو ٹرمینل میں کاپی / پیسٹ کریں ، اور پھر "درج کریں" کو دبائیں:

./adb logcat | گریپ مثال کے طور پر

اگر ٹرمینل "ver 3 0" یا اس سے زیادہ لوٹتا ہے تو ، پھر اوپن جی ایل ES کو صحیح طریقے سے تشکیل دیا گیا ہے۔ اگر ٹرمینل یا کمانڈ پرامپٹ 3.0 سے پہلے کچھ بھی دکھاتا ہے تو آپ کو اوپن جی ایل ES 3.0 کو اہل بنانا ہوگا۔

  • اپنے اے وی ڈی پر واپس جائیں۔
  • "توسیعی کنٹرول" کے بٹنوں کی پٹی تلاش کریں جو اینڈروئیڈ ایمولیٹر کے ساتھ تیرتے ہیں ، اور پھر "ترتیبات> اعلی درجے کی" کو منتخب کریں۔
  • "اوپن جی ایل ES API سطح> پیش کنندہ زیادہ سے زیادہ (اوپن جی ایل ES 3.1 تک) پر جائیں۔"
  • ایمولیٹر دوبارہ شروع کریں۔

ٹرمینل / کمانڈ پرامپٹ ونڈو میں ، درج ذیل کمانڈ کو کاپی / پیسٹ کریں اور پھر "انٹر" کلید دبائیں۔

./adb logcat | گریپ مثال کے طور پر

اب آپ کو "ver 3 0" یا اس سے زیادہ کا نتیجہ ملنا چاہئے ، جس کا مطلب ہے کہ اوپن جی ایل ای ایس کو صحیح طریقے سے تشکیل دیا گیا ہے۔

آخر میں ، یقینی بنائیں کہ آپ کا AVD ARCore کا بالکل جدید ورژن چل رہا ہے۔

  • آرکور کے گٹ ہب صفحے پر جائیں ، اور ایمولیٹر کے لئے اے آر کور کی تازہ ترین ریلیز ڈاؤن لوڈ کریں۔ مثال کے طور پر ، حالیہ ریلیز لکھنے کے وقت "ARCore_1.7.0.x86_for_emulator.apk" تھا
  • اپنی چلتی AVD پر APK گھسیٹیں اور چھوڑیں۔

اے وی ڈی پر اپنے پروجیکٹ کو جانچنے کے ل your ، ایپلی کیشن انسٹال کریں اور اشارہ کرنے پر اسے اے وی ڈی کے "کیمرہ" تک رسائی فراہم کریں۔

اب آپ کو ایک مصنوعی کمرے کا کیمرا نظارہ دیکھنا چاہئے۔ اپنی درخواست کی جانچ کرنے کے ل this ، اس ورچوئل اسپیس کے گرد چکر لگائیں ، مصنوعی فلیٹ سطح تلاش کریں ، اور اس سطح پر ماڈل رکھنے کیلئے کلک کریں۔

آپ ورچوئل کیمرا کو "آپشن" (میکوس) یا "آلٹ" (لینکس یا ونڈوز) کی بٹنوں کو دباکر اور انعقاد کرکے ورچوئل روم کے آس پاس منتقل کرسکتے ہیں ، اور پھر مندرجہ ذیل کی بورڈ شارٹ کٹس میں سے کسی کو استعمال کرکے:

  • بائیں یا دائیں منتقل کریں۔ A یا D دبائیں۔
  • نیچے یا اوپر منتقل کریں۔ Q یا E دبائیں۔
  • آگے یا پیچھے کی طرف بڑھیں۔ ڈبلیو یا ایس دبائیں۔

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

ختم کرو

اس آرٹیکل میں ، ہم نے اے آر کور اور سینفارم پلگ ان کا استعمال کرتے ہوئے ، ایک سادہ سی بڑھی ہوئی حقیقت والی ایپ بنائی ہے۔

اگر آپ اپنے اپنے منصوبوں میں گوگل آرکور کو استعمال کرنے کا فیصلہ کرتے ہیں تو ، پھر نیچے دیئے گئے تبصروں میں اپنی تخلیقات کو ضرور بانٹیں!

ہواوے نے آج اعلان کیا ہے کہ اس نے اپنے Huawei میٹ 20 اسمارٹ فونز کے 10 ملین سے زائد یونٹوں کو باضابطہ طور پر بھیج دیا ہے۔ اگرچہ پریس ریلیز میں زیادہ سے زیادہ وضاحت نہیں کی گئی ہے ، میٹ 20 سیریز میں پا...

29 اکتوبر ، 2018 29 اکتوبر ، 2018مثبتخوبصورت ڈیزائن بڑی ، خوبصورت سکرین بھاری بیٹری بہت تیز چارجنگ ریورس وائرلیس چارجنگ ٹھوس سافٹ ویئر ورسٹائل کیمرا اچھی بایومیٹرک خصوصیات...

آپ کی سفارش