Изградите Андроид апликацију проширене стварности са Гоогле АРЦоре

Аутор: Laura McKinney
Датум Стварања: 7 Април 2021
Ажурирати Датум: 1 Јули 2024
Anonim
Crypto Pirates Daily News - February 9th, 2022 - Latest Cryptocurrency News Update
Видео: Crypto Pirates Daily News - February 9th, 2022 - Latest Cryptocurrency News Update

Садржај


Увоз 3Д модела, помоћу додатка Сценеформ

Рад са 3Д моделима обично захтева специјалистичко знање, али пуштањем Сценеформ додатка Гоогле је омогућио приказивање 3Д модела користећи Јава - и без мора да учи ОпенГЛ.

Додатак Сценеформ обезбеђује АПИ на високом нивоу који можете да користите за креирање Рендердабле-а из стандардних Андроид видгета, облика или материјала или из 3Д средстава, као што су .ОБЈ или .ФБКС датотеке.

У нашем пројекту користићемо додатак Сценеформ за увоз .ОБЈ датотеке у Андроид Студио. Кад год увезете датотеку помоћу Сценеформ-а, овај додатак ће аутоматски:

  • Претворите датотеку имовине у .сфб датотеку. Ово је бинарни формат Сценеформ-а (.сфб) који је оптимизован током рада и који се додаје вашем АПК-у и затим учитава у време извођења. Користићемо ову .сфб датотеку за прављење Рендерабле-а, који се састоји од мрежа, материјала и текстура и може се поставити било где у дограђеној сцени.
  • Генерисање .сфа датотеке. Ово је датотека с описом имовине, која је текстуална датотека која садржи читљив опис .сфб датотеке. У зависности од модела, изглед ћете моћи променити уређивањем текста у .сфа датотеци.


Имајте на уму да је у време писања додатак Сценеформ још увек био у бета верзији, тако да можете наићи на грешке, грешке или друга чудна понашања када користите овај додатак.

Инсталирање додатка Сценеформ

За додатак Сценеформ потребан је Андроид Студио 3.1 или новији. Ако нисте сигурни коју верзију Андроид студија користите, изаберите „Андроид Студио> О Андроид студију“ на траци са алаткама. Следећи скочни прозор садржи неке основне информације о вашој инсталацији Андроид Студио, укључујући његов број верзије.

Да бисте инсталирали додатак Сценеформ:

  • Ако сте на Мац рачунару, изаберите „Андроид Студио> Преференцес ...“ на траци са алаткама Андроид Студио, а затим изаберите „Плугинс“ са левог менија. Ако сте на рачунару са Виндовс оперативним системом, изаберите „Датотека> Подешавања> Додаци> Прегледајте спремишта“.
  • Потражите "Сценеформ". Када се појави "Гоогле Сценеформ Тоолс", изаберите "Инсталл".
  • Поново покрените Андроид Студио када се то од вас затражи и ваш додатак ће бити спреман за употребу.


Сценеформ УКС и Јава 8: Ажурирање пројектних зависности

Започнимо додавањем зависности које ћемо користити током овог пројекта. Отворите датотеку буилд.градле на нивоу модула и додајте Сценеформ УКС библиотеку, која садржи АрФрагмент који ћемо користити у нашем изгледу:

зависности {имплементација филеТрее (дир: либс, укључују:) имплементација андроидк.аппцомпат: аппцомпат: 1.0.2 имплементација андроидк.цонстраинтлаиоут: цонстраинтлаиоут: 1.1.3 тестИмплицатион јунит: јунит: 4.12 андроидТестИмплементатион андроидк.тест.ект: јунит: 1.1.0 андроидТестИмплементатион андроидк.тест.еспрессо: еспрессо-цоре: 3.1.1 // Сценеформ УКС пружа УКС ресурсе, укључујући АрФрагмент // имплементацију "цом.гоогле.ар.сценеформ.ук: сцеформ-ук: 1.7.0" имплементација "цом. андроид.суппорт:аппцомпат-в7:28.0.0 "}

Сценеформ користи језичке конструкције са Јаве 8, тако да ћемо такође морати да ажурирамо компатибилност извора и циљану компатибилност нашег пројекта на Јава 8:

цомпилеОптионс {соурцеЦомпатибилити ЈаваВерсион.ВЕРСИОН_1_8 таргетЦомпатибилити ЈаваВерсион.ВЕРСИОН_1_8}

На крају, морамо применити додатак Сценеформ:

примените додатак: цом.гоогле.ар.сценеформ.плугин

Довршена датотека буилд.градле требало би да изгледа овако:

примените додатак: цом.андроид.апплицатион андроид {цомпилеСдкВерсион 28 дефаултЦонфиг {апплицатионИд "цом.јессицатхорнсби.арцоредемо" минСдкВерсион 23 таргетСдкВерсион 28 версионЦоде 1 версионНаме "1.0" тестИнструментатионРуннер "андроидк.тест.ру }нернер.Нерм_Серм_Серм_Сермион.АндроидЈУнион_АндроидЈУнион_АндроидЈУнерионАнроидионУнмионЦентралЈУниономАнцероидЈУнионмАнтроидЈУнионмЦом ЈаваВерсион.ВЕРСИОН_1_8} буилдТипес {издање {минифиЕнаблед лажни прогуардФилес гетДефаултПрогуардФиле (прогуард-андроид-оптимизе.ткт), прогуард-рулес.про}}} зависности {имплементација филеТрее (дир: либс, укључују:) имплементација андроидк.аппцомпат: аппцомпат .2 имплементација андроидк.цонстраинтлаиоут: цонстраинтлаиоут: 1.1.3 тестИмплементатион јунит: јунит: 4.12 андроидТестИмплементатион андроидк.тест.ект: јунит: 1.1.0 андроидТестИмплементатион андроидк.тест.еспрессо: еспрессо-цоре: 3.1.1 имплементација "цом.гоогле. ар.сценеформ.ук: сценеформ-ук: 1.7.0 "имплементација" цом.андроид.суппорт:аппцомпат-в7:28.0.0 "} примените додатак: цом.гоогле.ар .сценеформ.плугин

Захтевање дозвола помоћу АрФрамента

Наша апликација ће користити камеру уређаја за анализу окружења и позиционирање 3Д модела у стварном свету. Пре него што наша апликација може да приступи камери, захтева дозволу камере, па отворите Манифест вашег пројекта и додајте следеће:

Андроид 6.0 пружао је корисницима могућност давања, одбијања и опозива дозвола на основу дозволе-по-дозволи. Иако је ово побољшало корисничко искуство, Андроид-програмери сада морају да ручно захтевају дозволе током извођења и да обрађују одговор корисника. Добра вест је да се приликом рада са Гоогле АРЦоре-ом имплементира процес тражења дозволе за камеру и руковање корисниковим одговором. аутоматски.

Компонента АрФрагмент аутоматски проверава да ли ваша апликација има дозволу за камеру и затим је захтева, пре него што креира АР сесију. Пошто ћемо користити АрФрагмент у нашој апликацији, не треба нам писати било какав код да бисмо тражили дозволу камере.

АР обавезан или необавезан?

Постоје две врсте апликација које користе АР функционалност:

1. Потребна АР

Ако се ваша апликација ослања на Гоогле АРЦоре како би пружила добро корисничко искуство, морате да осигурате да се икада преузима само на уређаје који подржавају АРЦоре. Ако означите вашу апликацију као „Обавезан АР“, она ће се појавити у Гоогле Плаи продавници само ако уређај подржава АРЦоре.

Од наше пријаве заиста захтијевају АРЦоре, отворите Манифест и додајте сљедеће:

Постоји и шанса да ваша апликација може бити преузета на уређај који у теорији подржава АРЦоре, али у ствари није инсталиран АРЦоре. Једном када означимо нашу апликацију као „АР потребна“, Гоогле Плаи ће аутоматски преузети и инсталирати АРЦоре уз вашу апликацију, ако она већ није присутна на циљном уређају.

Имајте на уму да чак и ако је ваша апликација андроид: потребна = „истина“, ви ћете још увек треба да проверите да ли је АРЦоре присутан током извођења, јер постоји могућност да корисник може деинсталирати АРЦоре од преузимања ваше апликације или да је њихова верзија АРЦоре застарела.

Добра вест је да користимо АрФрагмент, који аутоматски проверава да ли је АРЦоре инсталиран и ажуриран пре креирања сваки АР сесија - па још једном, ово је нешто што не морамо ручно да применимо.

2. АР Необавезно

Ако ваша апликација укључује АР карактеристике које су лепе за употребу, али које нису неопходне за испоруку њене основне функционалности, онда можете да означите ову апликацију као „АР необавезна“. Ваша апликација тада може да провери да ли је Гоогле АРЦоре присутан током извођења и да га онемогући. АР функције на уређајима који не подржавају АРЦоре.

Ако направите апликацију „АР необавезна“, АРЦоре ће не аутоматски се инсталирају уз вашу апликацију, чак и ако уређај има сав хардвер и софтвер потребан за подршку АРЦоре. Ваша апликација „АР необавезна“ ће тада морати да провери да ли је АРЦоре присутан и ажурна и да преузме последњу верзију по потреби и по потреби.

Ако АРЦоре није пресудан за вашу апликацију, на свој Манифест можете додати следеће:

Док сам отворен Манифест, додајем и андроид: цонфигЦхангес и андроид: сцреенОриентатион, како бих осигурао да се МаинАцтивити ручке оријентационо мења.

Након што све ово додате на свој Манифест, завршена датотека би требала изгледати овако:

Додајте АрФрагмент у свој изглед

Користићу АрЦрагмент АРЦоре-а, јер аутоматски рукује бројним кључним задацима АРЦоре-а на почетку сваке АР сесије. Најважније је да АрФрагмент провјерава да ли је на уређају инсталирана компатибилна верзија АРЦоре-а и да апликација тренутно има дозволу за камеру.

Након што АрФрагмент потврди да уређај може да подржи АР функције ваше апликације, креира сесију АрСценеВиев АРЦоре и АР искуство ваше апликације је спремно за почетак!

Можете додати АрФрагмент фрагмент у датотеку изгледа, баш као и у обичан Андроид Фрагмент, па отворите датотеку Ацтивити_маин.кмл и додајте компоненту „цом.гоогле.ар.сценеформ.ук.АрФрагмент“.

Преузимање 3Д модела коришћењем Гоогле-овог Поли-а

Постоји неколико различитих начина на које можете креирати Рендераблес, али у овом чланку ћемо користити датотеку 3Д средства.

Сценеформ подржава 3Д средства у .ОБЈ, .глТФ и .ФБКС форматима, са или без анимација. Постоји пуно места на којима можете набавити 3Д моделе у једном од ових подржаних формата, али у овом уџбенику ћу користити .ОБЈ датотеку, преузету из Гоогле-овог Поли репозиторија.

Идите на веб локацију Поли и преузмите имовину коју желите да користите у .ОБЈ формату (користим овај модел Т-Рек).

  • Отпакујте мапу која треба да садржи датотеку изворног материјала вашег модела (.ОБЈ, .ФБКС или .глТФ). У зависности од модела, ова мапа може такође садржати неке зависности модела, попут датотека у .мтл, .бин, .пнг или .јпег форматима.

Увоз 3Д модела у Андроид Студио

Једном када набавите имовину, морате да га увезите у Андроид Студио помоћу додатка Сценеформ. Ово је поступак у више корака који захтева да:

  • Креирајте фасциклу „сампледата“. Сампледата је нова врста мапе за узорке података времена дизајнирања која неће бити укључена у ваш АПК, али ће бити доступна у уређивачу Андроид Студио.
  • Превуците и испустите оригиналну .ОБЈ датотеку имовине у мапу „сампледата“.
  • Изведите увоз и конверзију Сценеформ-а на .ОБЈ датотеку, која ће генерисати .сфа и .сфб датотеке.

Иако се може чинити јаснијим, не превуците и испустите .ОБЈ датотеку директно у директоријум „рес“ пројекта, јер ће то непотребно укључити модел у ваш АПК.

Пројекти Андроид Студио не садрже подразумевано фасциклу „сампледата“, па ћете је морати креирати ручно:

  • Кликните контролном типком „апп“ вашег пројекта.
  • Изаберите „Ново> Узорак директорија података“ и креирајте фасциклу под називом „сампледата“.
  • Дођите до датотека са 3Д моделом које сте преузели раније. Пронађите датотеку изворног материјала (.ОБЈ, .ФБКС или .глТФ), а затим је превуците у директориј „сампледата“.
  • Проверите да ли ваш модел има зависности (као што су датотеке у .мтл, .бин, .пнг или .јпег форматима). Ако пронађете неку од ових датотека, повуците их и пребаците у мапу „сампледата“.
  • У Андроид студију, кликните на своју изворну датотеку 3Д модела (.ОБЈ, .ФБКС или .глТФ), а затим изаберите „Импорт Сценеформ Ассет“.

  • Следећи прозор приказује неке информације о датотекама које ће Сценеформ генерисати, укључујући где ће резултирајућа .сфа датотека бити смештена у вашем пројекту; Користићу "сиров" директориј.
  • Када сте задовољни подацима које сте унели, кликните на „Заврши“.

Овај увоз уноси неколико измена у ваш пројекат. Ако отворите датотеку буилд.градле, видећете да је додатак Сценеформ додат као зависност од пројекта:

зависности {цласспатх цом.андроид.тоолс.буилд:градле:3.5.0-алпха06 цласспатх цом.гоогле.ар.сценеформ: плугин: 1.7.0 // НАПОМЕНА: Овде не постављајте зависности своје апликације; они припадају // у појединачном модулу буилд.градле датотеке}}

Отворите датотеку буилд.градле на нивоу модула и пронаћи ћете нови унос сценеформ.ассет () за увежени 3Д модел:

примените додатак: цом.гоогле.ар.сценеформ.плугин // „Пут активног извора“ који сте навели током увоза // сценеформ.ассет (сампледата / диносаур.обј, // „Пут материјала“ који сте навели током увоза // Подразумевано , // ".сфа излазни пут" који сте навели током увоза // сампледата / диносаур.сфа, // ".сфб излазни пут" који сте навели током увоза // срц / маин / средства / диносаура)

Ако погледате своје „сампледата“ и „рав“ мапе, видећете да садрже нове .сфа и .сфб датотеке.

Можете прегледати .сфа датотеку у новом приказивачу сценарија за Андроид Студио:

  • Изаберите „Виев> Тоолс Виндовс> Виевер“ на траци менија Андроид Студио.
  • У левом менију изаберите .сфа датотеку. Ваш 3Д модел би се сада требао појавити у прозору Виевер.

Прикажите свој 3Д модел

Наш следећи задатак је креирање АР сесије која разуме околину и омогућава кориснику да 3Д моделе постави у проширени призор.

То захтева од нас следеће:

1. Креирајте променљиву чланку АрФрагмент

АрФрагмент изводи велики део тешког подизања који је укључен у креирање АР сесије, тако да ћемо овај фрагмент референцирати кроз нашу МаинАцтивити класу.

У следећем исјечку креираћу променљиву члана за АрФрагмент и затим га иницијализирам у методи онЦреате ():

приватни АрФрагмент арЦореФрагмент; @Оверриде заштићен воид онЦреате (Бундле савеИнстанцеСтате) {супер.онЦреате (савеИнстанцеСтате); ... ... ...} сетЦонтентВиев (Р.лаиоут.ацтивити_маин); арЦореФрагмент = (АрФрагмент) // Пронађи фрагмент, користећи управљач фрагмената // гетСуппортФрагментМанагер (). финдФрагментБиИд (Р.ид.маин_фрагмент);

2. Изградите МоделРендерабле

Сада морамо трансформирати нашу .сфб датотеку у МоделРендерабле, који ће на крају донијети наш 3Д објект.

Ево, креирам МоделРендерабле из рес / рав / диносаур датотеке .сфб мог пројекта:

приватни МоделРендерабле диноРендерабле; ... ... ... МоделРендерабле.буилдер () .сетСоурце (ово, Р.рав.диносаур) .буилд () .тхенАццепт (рендерабле -> диноРендерабле = рендерабле) .изузетно (бацајући -> {Лог.е ( ТАГ, "Није могуће учитати преносив"); ретурн нулл;}); }

3. Одговорите на корисников унос

АрФрагмент има уграђену подршку за гестове додиривања, превлачења, притискања и увртања.

У нашој апликацији корисник ће додати 3Д модел авиону АРЦоре тако што ће тај ниво додирнути.

Да бисмо обезбедили ову функцију, морамо да региструјемо повратни позив на који ћемо позвати сваки пут када тапне авион:

арЦореФрагмент.сетОнТапАрПланеЛистенер ((ХитРесулт хитРесулт, Равнина, МотионЕвент мотионЕвент) -> {иф (диноРендерабле == нулл) {ретурн;}

4. Сидри свој модел

У овом кораку проналазимо АрСценеВиев и причврстимо га на АнцхорНоде, који ће служити као родитељски чвор Сцене.

АрСценеВиев је одговоран за обављање неколико важних задатака АРЦоре, укључујући рендерирање слика са камере уређаја и приказивање Сценеформ УКС анимације која показује како корисник треба да држи и помера свој уређај да би покренуо АР искуство. АрСценеВиев ће такође истакнути све авионе које детектира, спремне да корисник постави своје 3Д моделе у сцену.

Компонента АРСценеВиев има прикачену сцену, која је структура података надређени-родитељ која садржи све чворове које је потребно приказати.

Почећемо креирањем чвора типа АнцхорНоде, који ће деловати као родитељски чвор нашег АрСценеВиев.

Сви сидрени чворови остају у истој стварној светској позицији, тако да стварањем чворишта за сидрење осигуравамо да наши 3Д модели остану фиксирани на месту у увећаном призору.

Креирајмо наш сидрени чвор:

АнцхорНоде анцхорНоде = нови АнцхорНоде (сидро);

Затим можемо да добијемо АрСценеВиев, користећи гетАрСценеВиев (), и причврстимо га на АнцхорНоде:

анцхорНоде.сетПарент (арЦореФрагмент.гетАрСценеВиев (). гетСцене ());

5. Додајте подршку за померање, скалирање и ротирање

Затим ћу направити чвор типа ТрансформаблеНоде. ТрансформаблеНоде је одговоран за помицање, скалирање и ротирање чворова на основу гестова корисника.

Једном када направите ТрансформаблеНоде, можете да га додате Рендерабле, што ће моделу омогућити да се скалира и помера, на основу интеракције корисника. Коначно, требате повезати ТрансформаблеНоде на АнцхорНоде, у односу дијете-родитељ који осигурава ТрансформаблеНоде и Испорука остаје фиксна на месту у оквиру повећане сцене.

ТрансформаблеНоде трансформаблеНоде = нови ТрансформаблеНоде (арЦореФрагмент.гетТрансформатионСистем ()); // Повежите трансформаблеНоде са анцхорНоде // трансформаблеНоде.сетПарент (анцхорНоде); трансформаблеНоде.сетРендерабле (диноРендерабле); // Изаберите чвор // трансформаблеНоде.селецт (); }); }

Завршена МаинАцтивити

Након извршавања свега наведеног, ваша МаинАцтивити треба изгледати овако:

импорт андроид.апп.Ацтивити; импорт андроид.апп.АцтивитиМанагер; импорт андроидк.аппцомпат.апп.АппЦомпатАцтивити; импорт андроид.цонтент.Цонтект; импорт андроид.нет.Ури; импорт андроид.ос.Буилд; импорт андроид.ос.Буилд.ВЕРСИОН_ЦОДЕС; импорт андроид.ос.Бундле; импорт андроид.утил.Лог; импорт андроид.виев.МотионЕвент; импорт андроидк.аннотатион.РекуиресАпи; импорт цом.гоогле.ар.цоре.Анцхор; импорт цом.гоогле.ар.цоре.ХитРесулт; импорт цом.гоогле.ар.цоре.Плане; импорт цом.гоогле.ар.сценеформ.АнцхорНоде; импорт цом.гоогле.ар.сценеформ.рендеринг.МоделРендерабле; импорт цом.гоогле.ар.сценеформ.ук.АрФрагмент; импорт цом.гоогле.ар.сценеформ.ук.ТрансформаблеНоде; јавна класа МаинАцтивити проширује АппЦомпатАцтивити {приватни статички коначни Стринг ТАГ = МаинАцтивити.цласс.гетСимплеНаме (); приватни статички коначни двоструки МИН_ОПЕНГЛ_ВЕРСИОН = 3.0; // Креирајте променљиву члану за МоделРендерабле // привате МоделРендерабле диноРендерабле; // Креирајте променљиву чланку за АрФрагмент // приватни АрФрагмент арЦореФрагмент; @РекуиресАпи (апи = ВЕРСИОН_ЦОДЕС.Н) @ Превелика заштићена воид онЦреате (Бундле савеИнстанцеСтате) {супер.онЦреате (савеИнстанцеСтате); иф (! цхецкДевице ((тхис))) {ретурн; } сетЦонтентВиев (Р.лаиоут.ацтивити_маин); арЦореФрагмент = (АрФрагмент) // Пронађи фрагмент, користећи фрагмент манагер // гетСуппортФрагментМанагер (). финдФрагментБиИд (Р.ид.маин_фрагмент); иф (Буилд.ВЕРСИОН.СДК_ИНТ> = ВЕРСИОН_ЦОДЕС.Н) {// Састави МоделРендерабле // МоделРендерабле.буилдер () .сетСоурце (тхис, Р.рав.диносаур) .буилд () .тхенАццепт (рендерабле -> диноРендерабле = рендерабле ) .изузетно (// Ако се догоди грешка ... // бацајући -> {//... онда исписите следеће на Логцат // Лог.е (ТАГ, "Није могуће учитати преносив"); ретурн нулл;} ); } // Слушајте догађаје онТап // арЦореФрагмент.сетОнТапАрПланеЛистенер ((ХитРесулт хитРесулт, Равнина, МотионЕвент мотионЕвент) -> {иф (диноРендерабле == нулл) {ретурн;} Анцхор анцхор = хитРесулт.цреатеАнцхор (); // Изградите а чвор типа АнцхорНоде // АнцхорНоде анцхорНоде = нови АнцхорНоде (сидро); // Повежите анцхорНоде са сценом // анцхорНоде.сетПарент (арЦореФрагмент.гетАрСценеВиев (). гетСцене ()); // Изградите чвор типа ТрансформаблеНоде // ТрансформаблеНоде трансформаблеНоде = нови ТрансформаблеНоде (арЦореФрагмент.гетТрансформатионСистем ()); // Споји ТрансформаблеНоде у АнцхорНоде // трансформаблеНоде.сетПарент (анцхорНоде); // Приложи рендерабле // трансформаблеНоде.сетРендерабле (диноРендерабле); / трансформаблеНоде.селецт ();}); } јавна статичка боолеан цхецкДевице (финална активност активности) {// Ако уређај користи Андроид Марсхмаллов или старији ... // иф (Буилд.ВЕРСИОН.СДК_ИНТ <ВЕРСИОН_ЦОДЕС.Н) {//...додајте следеће на Логцат // Лог.е (ТАГ, "Сценеформ захтева Андроид Н или новији"); ацтивити.финисх (); ретурн фалсе; } Стринг опенГлВерсионСтринг = ((АцтивитиМанагер) ацтивити.гетСистемСервице (Цонтект.АЦТИВИТИ_СЕРВИЦЕ)) .гетДевицеЦонфигуратионИнфо () // Проверите верзију ОпенГЛ ЕС // .гетГлЕсВерсион (); // Ако уређај користи нешто мање од ОпенГЛ ЕС 3.0 ... // иф (Доубле.парсеДоубле (опенГлВерсионСтринг) <МИН_ОПЕНГЛ_ВЕРСИОН) {//...додајте следеће у Логцат // Лог.е (ТАГ, " Захтијева ОпенГЛ ЕС 3.0 или новију верзију "); ацтивити.финисх (); ретурн фалсе; } ретурн труе; }}

Готов пројекат можете преузети са ГитХуб-а.

Тестирање апликације Гоогле АРЦоре проширене стварности

Сада сте спремни да тестирате апликацију на физичком, подржаном Андроид уређају. Ако немате уређај који подржава АРЦоре, могуће је тестирати вашу АР апликацију на Андроид емулатору (са додатном конфигурацијом, коју ћемо покрити у следећем одељку).

Да бисте тестирали свој пројекат на физички Андроид уређај:

  • Инсталирајте апликацију на циљни уређај.
  • Када се то од вас затражи, одобрите приступ апликацији камери свог уређаја.
  • Ако се од вас затражи да инсталирате или ажурирате АРЦоре апликацију, додирните „Настави“ и затим довршите дијалог да бисте били сигурни да покрећете најновију и највећу верзију АРЦоре.
  • Сада би требало да видите приказ камере, употпуњен анимацијом руке која држи уређај. Усмјерите камеру на равну површину и помичите свој уређај кружним покретима, што показује и анимација. Након неколико тренутака требало би да се појави низ тачкица, које указују на то да је детектиран авион.

  • Након што сте задовољни положајем ових тачака, додајте им додир - ваш 3Д модел би се сада требао појавити у одабраном авиону!

  • Покушајте се физички кретати по моделу; зависно од вашег окружења, можда ћете моћи радити пуних 360 степени око ње. Такође треба проверити да предмет баца сенку која је у складу са стварним светлосним изворима.

Тестирање АРЦоре на Андроид виртуелном уређају

Да бисте тестирали своје АРЦоре апликације на Андроид виртуелном уређају (АВД), требаће вам Андроид Емулатор верзије 27.2.9 или новије верзије. Такође морате бити пријављени у Гоогле Плаи продавницу на вашем АВД-у и имати омогућен ОпенГЛ ЕС 3.0 или новији.

Да бисте проверили да ли је ОпенГЛ ЕС 3.0 или новији тренутно омогућен на вашем АВД-у:

  • Покрените свој АВД као нормално.
  • Отворите нови прозор терминала (Мац) или командни редак (Виндовс).
  • Промените директоријум („цд“) тако да Терминал / Цомманд Промпт показује на локацију „адб“ програма вашег Андроид СДК-а, на пример моја наредба изгледа овако:

Цд / Корисници / јессицатхорнсби / Библиотека / Андроид / сдк / платформ-тоолс

  • Притисните тастер “Ентер” на тастатури.
  • Копирајте / залепите следећу команду у терминал, а затим притисните тастер „Ентер“:

./адб логцат | греп еглМакеЦуррент

Ако терминал враћа „вер 3 0“ или новији, тада је ОпенГЛ ЕС исправно конфигурисан. Ако Терминал или Цомманд Промпт прикажу нешто раније од 3.0, тада ћете морати да омогућите ОпенГЛ ЕС 3.0:

  • Пребаците се назад на свој АВД.
  • Пронађите траку дугмета „Ектендед Цонтрол“ која плута поред Андроид емулатора, а затим изаберите „Подешавања> Напредно“.
  • Идите до „ОпенГЛ ЕС АПИ ниво> Рендерер максимум (до ОпенГЛ ЕС 3.1).“
  • Поново покрените емулатор.

У прозору Терминал / Цомманд Промпт копирајте / залепите следећу наредбу, а затим притисните тастер „Ентер“

./адб логцат | греп еглМакеЦуррент

Сада би требало да добијете резултат „вер 3 0“ или новији, што значи да је ОпенГЛ ЕС правилно подешен.

На крају, проверите да ли ваш АВД покреће најновију верзију АРЦоре:

  • Идите на ГитХуб страницу АРЦоре-а и преузмите најновије издање АРЦоре-а за емулатор. На пример, у време писања последњег издања објављено је „АРЦоре_1.7.0.к86_фор_емулатор.апк“
  • Превуците и испустите АПК на свој трчање АВД.

Да бисте тестирали свој пројекат на АВД-у, инсталирајте апликацију и одобрите јој приступ АВД-овој „камери“.

Сада би требало да видите приказ камере симулиране собе. Да бисте тестирали апликацију, помичите се по овом виртуелном простору, пронађите симулирану равну површину и кликните да бисте на тај површину поставили модел.

Можете померати виртуелну камеру по виртуелној соби притиском и држањем тастера „Оптион“ (мацОС) или „Алт“ (Линук или Виндовс), а затим помоћу било које од следећих пречица на тастатури:

  • Померите се лево или десно. Притисните А или Д.
  • Померите се надоле или горе. Притисните К или Е.
  • Померите се напред или назад. Притисните В или С.

Такође се можете „кретати“ по виртуелној сцени притиском на „Оптион“ или „Алт“, а затим помоћу миша. У почетку се то може осећати помало неспретно, али са вежбањем би требало да будете у могућности да успешно истражите виртуелни простор. Када пронађете симулирану равнину, кликните на беле тачке да бисте на ову површину поставили свој 3Д модел.

Окончање

У овом смо чланку направили једноставну апликацију проширене стварности, користећи АРЦоре и додатак Сценеформ.

Ако одлучите да користите Гоогле АРЦоре у својим пројектима, онда поделите своје креације у коментарима испод!

Прво смо погледали надолазеће кинеске брендове телефона у 2015. години, покривајући лике Ксиаоми, Оппо и ОнеПлус. Наравно, неки од ових брендова од тада постају и имена домаћинстава....

Бити незапослен може бити права досада, чак и ако вам све остало угодно задовољство. Али бити незапослен без паметног телефона или чак и приступа интернету? То мора бити апсолутно смркнуто....

Данас Је Посегнуо