Google ARCore abil saate luua liitreaalsuse Androidi rakenduse

Autor: Laura McKinney
Loomise Kuupäev: 7 Aprill 2021
Värskenduse Kuupäev: 1 Juuli 2024
Anonim
Google ARCore abil saate luua liitreaalsuse Androidi rakenduse - Rakendused
Google ARCore abil saate luua liitreaalsuse Androidi rakenduse - Rakendused

Sisu


3D-mudelite importimine pistikprogrammiga Sceneform

Tavaliselt nõuab 3D-mudelitega töötamine eriteadmisi, kuid Sceneformi pistikprogrammi vabastamisega on Google võimaldanud 3D-mudeleid renderdada Java abil - ja ilma õppima OpenGL-i.

Sceneformi pistikprogramm pakub kõrgetasemelist API-d, mida saate kasutada renderdatavate elementide loomiseks tavalistest Androidi vidinatest, kujunditest või materjalidest või 3D-varadest, näiteks .OBJ või .FBX failid.

Meie projektis kasutame .OBJ-faili importimiseks Android Studio-s pistikprogrammi Sceneform. Kui impordite faili Sceneformi abil, siis see pistikprogramm automaatselt:

  • Teisendage varafail .sfb-failiks. See on käitusajale optimeeritud stseenivormi kahendvorming (.sbb), mis lisatakse teie APK-le ja laaditakse seejärel käitustõmbe ajal. Kasutame seda .sfb-faili renderdatava loomiseks, mis koosneb silmadest, materjalidest ja tekstuuridest ning mida saab paigutada laiendatud stseeni kõikjale.
  • Genereerige .sfa-fail. See on vara kirjeldusfail, mis on tekstifail, mis sisaldab inimesele loetavat .sfb-faili kirjeldust. Sõltuvalt mudelist võite selle välimust muuta .sfa-failis oleva teksti redigeerimise kaudu.


Pidage lihtsalt meeles, et kirjutamise ajal oli Sceneformi pistikprogramm endiselt beetaversioon, nii et selle pistikprogrammi kasutamisel võite ilmneda vigu, vigu või muud kummalist käitumist.

Sceneformi pistikprogrammi installimine

Sceneformi pistikprogramm vajab Android Studio 3.1 või uuemat. Kui te pole kindel, millist Android Studio versiooni kasutate, valige tööriistaribal „Android Studio> Androidi Studio kohta”. Järgnev hüpik sisaldab mõnda põhiteavet teie Android Studio installimise kohta, sealhulgas selle versiooni number.

Sceneformi pistikprogrammi installimine:

  • Kui kasutate Mac-i, valige Android Studio tööriistaribal „Android Studio> Eelistused…” ja valige vasakpoolsest menüüst „Pluginad”. Kui kasutate Windowsi arvutit, valige „Fail> Seaded> Pistikprogrammid> Sirvi hoidlaid.“
  • Otsige “Sceneform”. Kui ilmub “Google Sceneform Tools”, valige “Install”.
  • Taaskäivitage Android Studio, kui seda küsitakse, ja teie pistikprogramm on kasutamiseks valmis.


Sceneform UX ja Java 8: projekti sõltuvuste värskendamine

Alustame nende sõltuvuste lisamisega, mida me kogu selle projekti jooksul kasutame. Avage oma moodulitaseme ehitis.gradli fail ja lisage Sceneform UX-i teek, mis sisaldab ArFragmentit, mida meie paigutuses kasutame:

sõltuvused {rakendusfailTree (dir: libs, sisaldab:) juurutamine androidx.appcompat: appcompat: 1.0.2 teostus androidx.constraintlayout: piirangute esitamine: 1.1.3 testImplementation junit: juuni: 4.12 androidTestImplementation androidx.test.ext: junit: 1.1.0 androidTestImplementation androidx.test.espresso: espresso-core: 3.1.1 // Sceneform UX pakub UX ressursse, sealhulgas ArFragment // teostus "com.google.ar.sceneform.ux: sceneform-ux: 1.7.0" implement "com. android.support:appcompat-v7:28.0.0 "}

Sceneform kasutab Java 8 keelekonstruktsioone, seega peame värskendama ka meie projekti lähtekomisi ühilduvust ja Java 8-ga ühilduvust:

compileOptions {sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8}

Lõpuks peame rakendama Sceneformi pistikprogrammi:

rakendage pistikprogramm: com.google.ar.sceneform.plugin

Teie valmis build.gradle-fail peaks välja nägema umbes selline:

rakenda pistikprogrammi: com.android.application android {compileSdkVersion 28 defaultConfig {applicationId "com.jessicathornsby.arcoredemo" minSdkVersion 23 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test. JavaVersion.VERSION_1_8} buildTypes {release {minifyEnabled false proguardFiles getDefaultProguardFile (proguard-android-optimize.txt), proguard-rules.pro}}} sõltuvused {implement fileTree (dir: libs, include:) implement androidx.appcompat: appcompatpat: appcompatpat .2 juurutamine androidx.constraintlayout: constraintlayout: 1.1.3 testImplementation junit: junit: 4.12 androidTestImplementation androidx.test.ext: junit: 1.1.0 androidTestImplementation androidx.test.espresso: espresso-core: 3.1.1 implement "com.google. ar.sceneform.ux: sceneform-ux: 1.7.0 "implement" com.android.support:appcompat-v7:28.0.0 "} rakendage pistikprogramm: com.google.ar .sceneform.plugin

ArFragment abil lubade taotlemine

Meie rakendus kasutab seadme kaamerat selle ümbruse analüüsimiseks ja 3D-mudelite reaalses maailmas positsioneerimiseks. Enne kui meie rakendus pääseb kaamerale juurde, on vaja kaamera luba, nii et avage projekti manifest ja lisage järgmine teave:

Android 6.0 andis kasutajatele võimaluse lubade andmise, keelamise ja tühistamise lubade alusel. Kuigi see parandas kasutajakogemust, peavad Androidi arendajad käitustööl lubade käsitsi taotlema ja kasutaja vastustega hakkama saama. Hea uudis on see, et Google ARCore'i töötades rakendatakse kaamerale loa taotlemise ja kasutaja vastuse töötlemise protsess automaatselt.

Komponent ArFragment kontrollib automaatselt, kas teie rakendusel on kaamera luba, ja taotleb seda enne AR-seansi loomist vajadusel. Kuna kasutame oma rakenduses ArFragment, ei pea me kaamera loa taotlemiseks koodi kirjutama.

AR on kohustuslik või valikuline?

AR funktsionaalsust kasutavad kahte tüüpi rakendused:

1. AR kohustuslik

Kui teie rakendus tugineb hea kasutajakogemuse pakkumiseks Google ARCore'ile, peate tagama, et see laaditakse kunagi alla ainult seadmetele, mis toetavad ARCore'i. Kui märgite oma rakenduse väärtuseks „AR kohustuslik”, kuvatakse see Google Play poes ainult siis, kui seade toetab ARCore'i.

Alates meie rakendusest teeb nõuda ARCore'i, avage manifest ja lisage järgmine teave:

Samuti on võimalus, et teie rakendus laaditakse alla seadmesse, mis teoreetiliselt toetab ARCore'i, kuid millele tegelikult pole ARCore installitud. Kui oleme oma rakenduse märkinud olekuks „AR kohustuslik”, laadib Google Play automaatselt alla ja installib ARCore'i teie rakenduse juurde, kui seda pole sihtseadmes juba olemas.

Pidage meeles, et isegi kui teie rakendus on android: required = ”true”, saate siiski ikka peate kontrollima, kas ARCore on töö ajal olemas, kuna on tõenäoline, et kasutaja on ARCore'i desinstallida pärast teie rakenduse allalaadimist või et tema ARCore'i versioon on aegunud.

Hea uudis on see, et me kasutame ArFragment, mis kontrollib enne loomist automaatselt, kas ARCore on installitud ja ajakohane iga AR-seanss - nii et jällegi ei pea me seda käsitsi rakendama.

2. AR valikuline

Kui teie rakendus sisaldab AR-funktsioone, mis on kenad olemas, kuid pole selle põhifunktsioonide pakkumiseks hädavajalikud, siis võite selle rakenduse tähistada kui „AR valikuline”. Teie rakendus saab seejärel kontrollida, kas Google ARCore on käitusel olemas, ja keelata selle rakenduse AR-funktsioonid seadmetes, mis ei toeta ARCore-d.

Kui loote rakenduse „AR valikuline”, siis ARCore seda teeb mitte installitakse automaatselt teie rakenduse kõrvale, isegi kui seadmel on kogu ARCore'i toetamiseks vajalik riist- ja tarkvara. Seejärel peab teie rakendus „AR valikuline” kontrollima, kas ARCore on olemas ja ajakohane, ning laadima uusima versiooni alla vastavalt vajadusele.

Kui ARCore pole teie rakenduse jaoks otsustava tähtsusega, saate oma manifesti lisada järgmised andmed:

Kui mul on Manifest avatud, lisan ka android: configChanges ja android: screenOrientation, et tagada MainActivity käsitsemine orientatsioonimuutustega.

Pärast kogu selle manifesti lisamist peaks valmis fail välja nägema umbes selline:

Lisage oma paigutusele ArFragment

Ma kasutan ARCore'i ArFragment, kuna see tegeleb iga AR-i seansi alguses automaatselt arvukate ARCore-i võtmeülesannetega. Kõige olulisem on see, et ArFragment kontrollib, kas seadmesse on installitud ühilduv ARCore'i versioon ja kas rakendusel on praegu kaamera luba.

Kui ArFragment on kontrollinud, et seade toetab teie rakenduse AR-funktsioone, loob see ArSceneView ARCore-seansi ja teie rakenduse AR-i kogemus on valmis minema!

ArFragment-fragmendi saate paigutusfailile lisada nagu tavalist Androidi fragmenti, nii et avage oma tegevus_main.xml-fail ja lisage komponent “com.google.ar.sceneform.ux.ArFragment”.

3D-mudelite allalaadimine Google'i polüfunktsiooni abil

Renderdatavate loomiseks on mitu erinevat viisi, kuid selles artiklis kasutame 3D-vara faili.

Sceneform toetab 3D-vormingus materjale .OBJ, .glTF ja .FBX vormingus, koos animatsioonide või ilma. Seal on palju kohti, kus saate 3D-mudeleid omandada ühes neist toetatud vormingutest, kuid selles õpetuses kasutan .OBJ-faili, mis on alla laaditud Google'i polühoidlast.

Minge üle veebisaidile Poly ja laadige alla vara, mida soovite kasutada .OBJ-vormingus (ma kasutan seda T-Rexi mudelit).

  • Pakkige lahti kaust, mis peaks sisaldama mudeli lähtefailit (.OBJ, .FBX või .glTF). Sõltuvalt mudelist võib see kaust sisaldada ka mõnda mudelisõltuvust, näiteks vormingus .mtl, .bin, .png või .jpeg olevad failid.

3D-mudelite importimine Android Studio-sse

Kui vara on olemas, peate selle importima Android Studio, kasutades pistikprogrammi Sceneform. See on mitmeastmeline protsess, mille jaoks peate:

  • Looge kausta „prooviandmed”. Prooviandmed on uus kausta tüüp projekteerimise aja proovide andmete jaoks, mida ei lisata APK-sse, kuid mis on saadaval Android Studio redigeerijas.
  • Lohistage algne .OBJ varafail kausta „prooviandmed”.
  • Tehke Sceneform'i import ja teisendamine .OBJ-failis, mis genereerib .sfa- ja .sfb-failid.

Ehkki see võib tunduda otsesem, ära tee lohistage .OBJ-fail otse oma projekti „res” -kataloogi, kuna see põhjustab mudeli asjatu lisamise teie APK-sse.

Android Studio projektid ei sisalda vaikimisi kausta „prooviandmed”, seetõttu peate selle looma käsitsi:

  • Klõpsake juhtnuppu oma projekti kausta „rakendus”.
  • Valige „Uus> Andmekogu kataloog” ja looge kaust nimega „datadata”.
  • Liikuge varem alla laaditud 3D-mudeli failidele. Leidke lähtekoodifail (.OBJ, .FBX või .glTF) ja lohistage see seejärel näidisandmete kataloogi.
  • Kontrollige, kas teie mudelil on mingeid sõltuvusi (nt failid vormingus .mtl, .bin, .png või .jpeg). Kui leiate mõne neist failidest, siis lohistage need kausta „prooviandmed”.
  • Klõpsake rakenduses Android Studio juhtnuppu 3D-mudeli lähtefailil (.OBJ, .FBX või .glTF) ja valige siis „Sceneform Asset importimine”.

  • Järgnevas aknas kuvatakse teave failide kohta, mida Sceneform genereerib, sealhulgas selle kohta, kuhu saadud .sfa-fail teie projekti salvestatakse; Ma hakkan kasutama “toores” kataloogi.
  • Kui olete sisestatud teabega rahul, klõpsake nuppu Lõpeta.

See import muudab teie projekti mõned muudatused. Kui avate faili build.gradle, näete, et Sceneformi pistikprogramm on lisatud projekti sõltuvusena:

sõltuvused {classpath com.android.tools.build:gradle:3.5.0-alpha06 classpath com.google.ar.sceneform: plugin: 1.7.0 // MÄRKUS. Ärge asetage oma rakenduste sõltuvusi siia; nad kuuluvad // üksikute moodulite build.gradle failidesse //}}

Avage moodulitasemel ehitatav gradientfail ja leiate imporditud 3D-mudeli jaoks uue kande sceneform.asset ().

rakenda pistikprogramm: com.google.ar.sceneform.plugin // Impordi ajal määratud „Source Asset Path” // sceneform.asset (sampledata / dinosaur.obj, // Importimisel täpsustatud „Material Path” // Vaikimisi , // ".sfa-väljundtee", mille määrasite impordi ajal // sampledata / dinosaur.sfa, // ".sfb-väljundtee", mille määrasite impordi ajal // src / main / varad / dinosaurus)

Kui vaatate kaustade „prooviandmed” ja „toores”, näete, et need sisaldavad vastavalt uusi .sfa- ja .sfb-faile.

.Sfa-faili saate eelvaate vaadata Android Studio uues Sceneform Vieweris:

  • Valige Android Studio menüüribalt „Vaade> Tööriistad Windows> Vaatur”.
  • Valige vasakpoolses menüüs oma .sfa-fail. Teie 3D-mudel peaks nüüd ilmuma vaaturi aknasse.

Kuvage oma 3D-mudel

Meie järgmine ülesanne on luua AR-seanss, mis mõistab selle ümbrust ja võimaldab kasutajal paigutada 3D-mudelid laiendatud stseeni.

See nõuab meilt järgmist:

1. Looge ArFragment liikme muutuja

ArFragment täidab suure osa AR-seansi loomisel osalenud raskuste tõstmisest, seega viidame sellele fragmendile kogu oma MainActivity klassis.

Järgmises lõigus loon ArFragment liikme muutuja ja initsialiseerin selle siis meetodil onCreate ():

privaatne ArFragment arCoreFragment; @Kuivata kaitstud tühine onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); ... ... ...} setContentView (R.layout.activity_main); arCoreFragment = (ArFragment) // Leidke fragment fragmendihalduri abil // getSupportFragmentManager (). findFragmentById (R.id.main_fragment);

2. Ehitage ModelRenderable

Nüüd peame oma .sfb-faili muutma ModelRenderable'iks, mis lõpuks muudab meie 3D-objekti.

Loon siin oma projekti res / raw / dinosaurus .sbb-failist mudeli, mida saab taastada:

privaatne ModelRenderable dinoRenderable; ... ... ... ModelRenderable.builder () .setSource (see, R.raw.dinosaur) .build () .thenAccept (renderdatav -> dinoRenderable = renderdatav). Erandkorras (visatav -> {Log.e ( TAG, "Ei saa renderdatavat laadida"); tagasta null;}); }

3. Vastake kasutaja sisendile

ArFragment on sisseehitatud tugi koputamis-, lohistamis-, näppimis- ja keerutamisžeste toetamiseks.

Meie rakenduses lisab kasutaja ARCore Plane 3D-mudeli, andes sellele lennukile kraani.

Selle funktsiooni edastamiseks peame registreerima tagasihelistamise, millele helistatakse iga kord, kui lennukile koputatakse:

arCoreFragment.setOnTapArPlaneListener ((HitResult hitResult, Plane plane, MotionEvent motionEvent) -> {if (dinoRenderable == null) {return;}

4. Ankurdage oma mudel

Selles etapis toome välja ArSceneView ja kinnitame selle AnchorNode'i, mis toimib stseeni vanemsõlmena.

ArSceneView vastutab mitmete oluliste ARCore'i toimingute täitmise eest, sealhulgas seadme kaamerapiltide renderdamise ja Sceneform UX-i animatsiooni kuvamise eest, mis näitab, kuidas kasutaja peaks oma seadet hoidma ja teisaldama, et AR-i kogemus käivitada. ArSceneView tõstab esile ka kõik tuvastatud lennukid, mis on kasutajal valmis 3D-mudelite stseeni paigutamiseks.

Komponendil ARSceneView on lisatud stseen, mis on vanema ja lapse andmestruktuur, mis sisaldab kõiki renderdatavaid sõlme.

Alustame AnchorNode tüüpi sõlme loomisega, mis toimib meie ArSceneView vanemsõlmena.

Kõik ankurdusõlmed jäävad samaks reaalsesse maailma, nii et ankurussõlme loomisega tagame, et meie 3D-mudelid püsivad fikseeritud stseenis kindlalt paigas.

Loome meie ankrusõlme:

AnchorNode anchorNode = uus AnchorNode (ankur);

Seejärel saame ArSceneView rakenduse getArSceneView () abil alla laadida ja selle AnchorNode külge kinnitada:

anchorNode.setParent (arCoreFragment.getArSceneView (). getScene ());

5. Lisage tugi liikumiseks, mõõtmete muutmiseks ja pööramiseks

Järgmisena loon sõlme, mille tüüp on TransformableNode. TransformableNode vastutab kasutaja žestide põhjal sõlmede liigutamise, mõõtmete muutmise ja pööramise eest.

Kui olete loonud teisendusnumbri, saate selle renderdatavaks lisada, mis annab mudelile võimaluse kasutaja interaktsiooni põhjal skaleerida ja liikuda. Lõpuks peate ühendama TransformableNode AnchorNode'iga lapse ja vanema suhetes, mis tagab TransformableNode ja Renderdatav jääb fikseeritud stseenis kindlale kohale.

TransformableNode transformableNode = uus TransformableNode (arCoreFragment.getTransformationSystem ()); // Ühendage transformableNode anchorNode'iga // transformableNode.setParent (anchorNode); muudetavNode.setRenderable (dinoRenderable); // Valige sõlm // transformableNode.select (); }); }

Lõppenud MainActivity

Pärast kõigi ülaltoodud toimingute tegemist peaks teie MainActivity välja nägema umbes selline:

import android.app.Activity; import android.app.ActivityManager; impordi androidx.appcompat.app.AppCompatActivity; import android.content.Context; import android.net.Uri; import android.os.Build; impordi android.os.Build.VERSION_CODES; import android.os.Bundle; import android.util.Log; import android.view.MotionEvent; import androidx.annotation.NõudmineApi; import com.google.ar.core.Anchor; import com.google.ar.core.HitResult; import com.google.ar.core.Plane; impordi com.google.ar.sceneform.AnchorNode; import com.google.ar.sceneform.rendering.ModelRenderable; import com.google.ar.sceneform.ux.ArFragment; import com.google.ar.sceneform.ux.TransformableNode; avaliku klassi MainActivity laiendab AppCompatActivity {privaatset staatilist lõplikku stringi TAG = MainActivity.class.getSimpleName (); privaatne staatiline lõplik kahekordne MIN_OPENGL_VERSION = 3.0; // ModelRenderable liikme muutuja loomine // private ModelRenderable dinoRenderable; // ArFragment liikme muutuja loomine // private ArFragment arCoreFragment; @RequiresApi (api = VERSION_CODES.N) @Korralda kaitstud tühisus onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); if (! checkDevice ((see)))) {return; } setContentView (R.layout.activity_main); arCoreFragment = (ArFragment) // Leidke fragment fragmendihalduri abil // getSupportFragmentManager (). findFragmentById (R.id.main_fragment); if (Build.VERSION.SDK_INT> = VERSION_CODES.N) {// Ehitage ModelRenderable // ModelRenderable.builder () .setSource (this, R.raw.dinosaur) .build () .thenAccept (renvable -> dinoRenderable = renderable) ) erandkorras (// kui ilmneb tõrge ... // visata -> {//... siis printige järgmine teave Logcatisse // Log.e (TAG, "Ei saa renderdatavat laadida"); tagasta null;} ); } // Kuulake onTap sündmusi // arCoreFragment.setOnTapArPlaneListener ((HitResult hitResult, Plane plane, MotionEvent motionEvent) -> {if (dinoRenderable == null) {return;} Ankru ankur = hitResult.createAnchor (); // Ehitage a sõlme tüüp AnchorNode // AnchorNode anchorNode = new AnchorNode (ankur); // Ühendage AnchorNode stseeniga // anchorNode.setParent (arCoreFragment.getArSceneView (). getScene ()); // Looge TransformableNode tüüpi sõlm TransformableNode transformableNode = new TransformableNode (arCoreFragment.getTransformationSystem ()); // Ühendage TransformableNode AnchorNode'iga // transformableNode.setParent (anchorNode); // Lisage Renderable // transformableNode.setRenderable (dinoRenderable); / transformableNode.select ();}); } avalik staatiline boolean checkDevice (lõplik tegevusalane tegevus) {// Kui seadmel töötab Android Marshmallow või varasem versioon ... // if (Build.VERSION.SDK_INT <VERSION_CODES.N) {//...printige siis järgmine Logcat // Log.e (TAG, "Sceneform nõuab Android N või uuemat"); tegevus.finish (); tagastama vale; } String String openGlVersionString = (((ActivityManager) activity.getSystemService (Context.ACTIVITY_SERVICE)) .getDeviceConfigurationInfo () // Kontrollige OpenGL ES versiooni // .getGlEsVersion (); // Kui seadmel töötab midagi muud kui OpenGL ES 3.0 ... // kui (Double.parseDouble (openGlVersionString) <MIN_OPENGL_VERSION) {//... siis printige järgmine teave Logcat // Log.e (TAG, " Vajab OpenGL ES 3.0 või uuemat "); tegevus.finish (); tagastama vale; } tagasta tõene; }}

Valmis projekti saate alla laadida GitHubist.

Google ARCore liitreaalsuse rakenduse testimine

Olete nüüd valmis oma rakendust testima füüsilises toetatud Androidi seadmes. Kui teil ei ole ARCore'i toetavat seadet, siis saate oma AR-i rakendust testida Androidi emulaatoris (natuke lisakonfiguratsiooniga, mida käsitleme järgmises jaotises).

Oma projekti testimiseks a füüsiline Android-seade:

  • Installige rakendus sihtseadmesse.
  • Kui küsitakse, andke rakendusele juurdepääs oma seadme kaamerale.
  • Kui teil palutakse ARCore'i rakendus installida või värskendada, koputage valikut „Jätka” ja lõpetage dialoog, et veenduda, kas kasutate ARCore'i uusimat ja parimat versiooni.
  • Nüüd peaksite nägema kaameravaadet koos animatsiooniga seadme käes hoidvast käest. Suunake kaamera tasasele pinnale ja liigutage seadet ringikujuliselt, nagu näitab animatsioon. Mõne hetke pärast peaks ilmuma rida punkte, mis näitavad, et lennuk on tuvastatud.

  • Kui olete nende punktide positsiooniga rahul, koputage neile - teie 3D-mudel peaks nüüd ilmuma teie valitud lennukile!

  • Proovige mudelis füüsiliselt ringi liikuda; sõltuvalt teie ümbrusest võite selle ümber teha terve 360 ​​kraadi. Samuti peaksite kontrollima, kas objekt heidab varju, mis on kooskõlas reaalse maailma valgusallikatega.

ARCore'i testimine Androidi virtuaalseadmes

ARCore'i rakenduste testimiseks Android-virtuaalseadmes (AVD) vajate Androidi emulaatori versiooni 27.2.9 või uuemat. Samuti peate olema sisse logitud oma AVD-s Google Play poodi ja teil peab olema lubatud OpenGL ES 3.0 või uuem.

Et kontrollida, kas OpenGL ES 3.0 või uuem on teie AVD-s praegu lubatud:

  • Käivitage AVD, nagu tavaliselt.
  • Avage uus terminaliaken (Mac) või käsuviip (Windows).
  • Muutke kataloogi („cd”), nii et terminal / käsuviip osutab teie Androidi SDK programmi „adb” asukohale, näiteks näeb minu käsk välja järgmine:

Cd / Kasutajad / jessicathornsby / Raamatukogu / Android / sdk / platvorm-tööriistad

  • Vajutage klaviatuuril sisestusklahvi.
  • Kopeerige / kleepige järgmine käsk terminali ja vajutage seejärel sisestusklahvi:

./adb logcat | grep eglMakeCurrent

Kui Terminal tagastab „ver 3 0” või kõrgema, siis on OpenGL ES õigesti konfigureeritud. Kui terminalis või käsuviip kuvatakse midagi varasemat kui 3.0, siis peate lubama OpenGL ES 3.0:

  • Lülitage tagasi oma AVD-le.
  • Leidke Androidi emulaatori kõrval hõljuvate nuppude „Laiendatud juhtimine” riba ja valige siis „Seaded> Täpsemad”.
  • Minge jaotisse „OpenGL ES API tase> Maksimaalne renderdaja (kuni OpenGL ES 3.1)”.
  • Taaskäivitage emulaator.

Kopeerige / kleepige aknas Terminal / Command Prompt järgmine käsk ja vajutage siis sisestusklahvi „Enter“

./adb logcat | grep eglMakeCurrent

Nüüd peaksite saama tulemuse “ver 3 0” või kõrgem, mis tähendab, et OpenGL ES on õigesti konfigureeritud.

Lõpuks veenduge, et teie AVD-s töötab ARCore'i uusim versioon:

  • Minge üle ARCore'i GitHubi lehele ja laadige alla emulaatori jaoks uusim ARCore'i väljaanne. Näiteks oli selle kirjutamise ajal uusim väljaanne „ARCore_1.7.0.x86_for_emulator.apk”.
  • Lohistage APK oma töötavale AVD-le.

Projekti testimiseks AVD-l installige oma rakendus ja võimaldage tal siis, kui seda küsitakse, juurdepääs AVD-i kaamerale.

Nüüd peaksite nägema simuleeritud toa kaamerat. Rakenduse testimiseks liikuge selles virtuaalses ruumis ringi, leidke simuleeritud tasane pind ja klõpsake selle pinnale mudeli paigutamiseks.

Virtuaalset kaamerat saate virtuaalses ruumis ümber liigutada, hoides all nuppu „Valik” (macOS) või „Alt” (Linux või Windows) ja kasutades seejärel mõnda järgmistest kiirklahvidest:

  • Liigutage vasakule või paremale. Vajutage nuppu A või D.
  • Liigutage alla või üles. Vajutage Q või E.
  • Liikuge edasi või tagasi. Vajutage nuppu W või S.

Virtuaalses stseenis saate ka "liikuda", vajutades "Optsioon" või "Alt" ja kasutades seejärel hiirt. See võib alguses veidi kohmakas olla, kuid harjutamisega peaksite saama virtuaalset ruumi edukalt uurida. Kui olete simuleeritud tasapinna leidnud, klõpsake valget punkti, et 3D-mudel sellele pinnale asetada.

Pakkimine üles

Selles artiklis lõime lihtsa liitreaalsuse rakenduse, kasutades ARCore'i ja Sceneformi pistikprogrammi.

Kui otsustate kasutada Google ARCore'i oma projektides, siis jagage oma loomingut kindlasti allpool olevates kommentaarides!

Netflix on viimatel aatatel märkimiväärelt laiendanud oma rahvuvahelii pakkumii. Liak uurepäratele Netflixi originaalfilmidele ja -arjadele on Netflixi aadaval hulgalielt uurep...

Hipaania keele õppimine on UA kekkooliõpilate ja kõrgkooliõpilate ea populaarne. ee on ee keel, mida vajate, kui puhkate Mehhiko (või Hipaania). Enamiku puhkute jaok teeb tri...

Uued Väljaanded