Poly API: Načítanie prostriedkov 3D pre vaše aplikácie VR a AR Android

Autor: Peter Berry
Dátum Stvorenia: 14 Lang L: none (month-012) 2021
Dátum Aktualizácie: 4 Smieť 2024
Anonim
Poly API: Načítanie prostriedkov 3D pre vaše aplikácie VR a AR Android - Aplikácie
Poly API: Načítanie prostriedkov 3D pre vaše aplikácie VR a AR Android - Aplikácie

Obsah


Máte skvelý nápad pre mobilnú aplikáciu Virtuálna realita (VR) alebo Augmented Reality (AR), ale nemáte predstavu, ako oživiť svoju víziu?

Ak nie ste vývojár systému Android, ktorý sa tiež stane skúseným umelcom v oblasti 3D, môže byť vytvorenie všetkých prostriedkov potrebných na dosiahnutie pôsobivého 360-stupňového zážitku skľučujúcim procesom.

Len preto, že nemáte čas, zdroje ani skúsenosti potrebné na vytvorenie 3D modelov, nie je znamená, že nemôžete vytvoriť vynikajúcu mobilnú aplikáciu VR alebo AR! Na webe je k dispozícii široká škála zdrojov 3D a všetky rozhrania API, rámce a knižnice, ktoré potrebujete na stiahnutie a vykreslenie týchto prostriedkov vo svojich aplikáciách pre Android.

Čítať ďalej: Teraz môžete navštíviť ľubovoľnú webovú stránku pomocou Daydream VR. Aj ten.


V tomto článku sa zameriame na online úložisko Poly a rozhranie API, ktoré vám dá na dosah tisíce 3D prostriedkov. Na konci tohto článku si vytvoríte aplikáciu, ktorá za behu načíta diela 3D Poly a potom ho vykreslí pomocou populárnej knižnice Spracovanie pre Android.

Zobrazovanie 3D diel pomocou Poly

Ak ste sa niekedy venovali vývoju Unity, úložisko Poly je podobné úložisku Unity Asset Store - okrem toho, že všetko v službe Poly je zadarmo!

Mnohé z 3D modelov Poly sú publikované pod licenciou Creative Commons, takže môžete tieto prostriedky používať, upravovať a remixovať, pokiaľ autorovi poskytnete primeraný kredit.

Všetky 3D modely Poly sú navrhnuté tak, aby boli kompatibilné s platformami VR a AR od spoločnosti Google, ako sú napríklad Daydream a ARCore, ale môžete ich používať kdekoľvek a kdekoľvek chcete - potenciálne ich môžete dokonca použiť s ARKit od spoločnosti Apple!


Pokiaľ ide o vyhľadávanie a zobrazovanie položiek Poly, máte dve možnosti. Najprv si môžete položky prevziať do svojho počítača a potom ich importovať do Android Studio, aby sa dodávali s vašou aplikáciou a prispievali k jej veľkosti súboru APK, alebo ich môžete získať za behu pomocou rozhrania Poly API.

Rozhranie Poly API založené na REST poskytuje programový prístup k obrovskej kolekcii 3D modelov Poly, ktorý je len na čítanie. Je to komplikovanejšie ako spájať diela s vaším súborom APK, ale existuje niekoľko výhod pri získavaní prostriedkov Poly za behu, najmä to, že pomáha udržať veľkosť súboru APK pod kontrolou, čo môže ovplyvniť, koľko ľudí stiahne vašu aplikáciu.

Môžete tiež použiť rozhranie Poly API, aby ste svojim používateľom poskytli väčší výber, napríklad ak vyvíjate mobilnú hru, mohli by ste si nechať svojich používateľov vybrať si z radu znakových modelov.

Keďže máte možnosť modifikovať modely Poly, mohli by ste dokonca nechať svojich používateľov vyladiť ich vybraný charakter, napríklad tak, že zmeníte farbu vlasov alebo očí alebo ich kombinujete s inými aktívami Poly, ako sú rôzne zbrane a brnenie. Týmto spôsobom vám rozhranie Poly API môže pomôcť dodať pôsobivú škálu 3D prostriedkov s veľkým priestorom na prispôsobenie zážitkov - a to všetko pre pomerne malú prácu. Vaši používatelia budú presvedčení, že ste strávili veľa času a starostlivo si vymýšľate všetky tieto 3D modely!

Vytvorenie projektu 3D modelovania

Pri prvom spustení aplikácie vytvoríme aplikáciu, ktorá pri prvom spustení aplikácie načíta konkrétnu položku Poly a na žiadosť používateľa ju zobrazí v režime celej obrazovky.

Na pomoc pri získavaní tohto diela používam Fuel, čo je sieťová knižnica HTTP pre Kotlin a Android. Začnite vytvorením nového projektu s nastaveniami podľa vášho výberu, ale keď sa zobrazí výzva, vyberte možnosť Zahrnúť podporu Kotlin.

Všetky hovory, ktoré uskutočňujete na rozhraní Poly API, musia obsahovať kľúč rozhrania API, ktorý sa používa na identifikáciu vašej aplikácie a presadzovanie obmedzení používania. Počas vývoja a testovania často používate neobmedzený kľúč API, ale ak máte nejaké plány na vydanie tejto aplikácie, musíte použiť kľúč API s obmedzením Android.

Ak chcete vytvoriť obmedzený kľúč, musíte poznať podpisový certifikát SHA-1 vášho projektu, takže získajte tieto informácie teraz:

  • Vyberte kartu „Gradle“ aplikácie Android Studio (kde je kurzor umiestnený na nasledujúcej snímke obrazovky). Tým sa otvorí panel „Gradle projects“.

  • Na paneli Projekty odstupňovania dvakrát kliknite a rozbaľte koreň projektu a potom vyberte položku Úlohy> Android> Správa o podpise. Týmto sa otvorí nový panel v dolnej časti okna aplikácie Android Studio.
  • Vyberte tlačidlo „Prepnúť vykonávanie úloh / režim textu“ (kde je kurzor umiestnený na nasledujúcej snímke obrazovky).

Panel „Spustiť“ sa teraz aktualizuje a zobrazuje množstvo informácií o vašom projekte vrátane jeho odtlačku prsta SHA-1.

Vytvorte si účet platformy Google Cloud Platform

Na získanie potrebného kľúča API budete potrebovať účet Google Cloud Platform (GPC).

Ak nemáte účet, môžete sa zaregistrovať na 12-mesačnú bezplatnú skúšobnú verziu tak, že prejdete na stránku Vyskúšajte cloudovú platformu zadarmo a postupujte podľa pokynov. Upozorňujeme, že je vyžadovaná kreditná karta alebo debetná karta, ale podľa stránky Často kladené otázky sa používa iba na overenie vašej totožnosti a „počas bezplatného skúšobného obdobia vám nebudeme účtovať ani fakturovať.“

Získajte kľúč Poly API

Keď sa všetci zaregistrujete, môžete povoliť rozhranie Poly API a vytvoriť svoj kľúč:

  • Choďte do konzoly GCP.
  • V ľavom hornom rohu vyberte ikonu vložky a vyberte položku API a služby> Informačný panel.
  • Vyberte možnosť „Povoliť rozhrania API a služby“.
  • V ponuke naľavo vyberte možnosť „Iné“.
  • Vyberte kartu „Poly API“.
  • Kliknite na tlačidlo „Povoliť“.
  • Po chvíli sa dostanete na novú obrazovku; otvorte bočnú ponuku a vyberte položku API a služby> poverenia. “

  • V nasledujúcom rozbaľovacom zozname vyberte položku Obmedziť kláves.
  • Zadajte svoj kľúč výrazný názov.
  • V časti Obmedzenia aplikácií vyberte možnosť Aplikácie pre Android.
  • Vyberte možnosť „Pridať názov balíka a odtlačok prsta“.
  • Skopírujte alebo vložte odtlačok prsta SHA-1 projektu do poľa „Otlačok prsta podpisového osvedčenia“.
  • Zadajte názov balíka projektu (zobrazí sa v manifeste a na začiatku každého súboru triedy).
  • Kliknite na tlačidlo Uložiť.

Teraz sa dostanete na obrazovku „Poverenia“ vo vašom projekte, ktorá obsahuje zoznam všetkých vašich kľúčov API - vrátane kľúča rozhrania API, ktorý ste práve vytvorili.

Závislosti projektu: Rozšírenia paliva, P3D a Kotlin

Na získanie a zobrazenie diel Poly potrebujeme pomocnú ruku od niektorých ďalších knižníc:

  • Palivá. Poly v súčasnosti nemá oficiálnu súpravu nástrojov pre Android, takže s rozhraním API budete musieť pracovať priamo pomocou rozhrania REST. Na zjednodušenie tohto procesu používam sieťovú knižnicu Fuel HTTP.
  • Spracováva sa pre Android. Na zobrazenie položky Poly použijem vykresľovač P3D tejto knižnice.

Otvorte súbor build.gradle projektu a pridajte tieto dve knižnice ako závislosti projektu:

závislosti {implementácia fileTree (zahŕňajú:, dir: libs) implementácia "org.jetbrains.kotlin: kotlin-stdlib-jre7: $ kotlin_version" implementácia com.android.support:appcompat-v7:27.1.1 // Pridať knižnicu Fuel / / implementácia com.github.kittinunf.fuel: Fuel-android: 1.13.0 // Pridať procesor pre Android engine // implementácia org.p5android: processing-core: 4.0.1}

Aby bol náš kód stručnejší, budem používať aj rozšírenia Kotlin pre Android, takže pridáme tento doplnok, kým bude otvorený súbor build.gradle:

apply plugin: kotlin-android-extensions

Akonáhle získavame diela z internetu, naša aplikácia potrebuje povolenie na internet. Otvorte svoj manifest a pridajte nasledujúce:

Pridanie kľúča API

Vždy, keď si naša aplikácia vyžiada diela od spoločnosti Poly, musí obsahovať platný kľúč API. Používam zástupný text, ale vy musieť Ak aplikácia niekedy bude fungovať, nahraďte tento zástupný symbol vlastným kľúčom API.

Pridávam tiež šek, aby aplikácia zobrazila upozornenie, ak zabudnete nahradiť text „VLOŽIŤ-VAŠE-API-KĽÚČ“:

import android.os.Bundle import android.support.v7.app.AppCompatActivity class MainActivity: AppCompatActivity () {companion object {const val APIKey = "INSERT-YOUR-API-KEY"} prepíše zábavu onCreate (uloženáInstanceState: Bundle?) { super.onCreate (uloženýInstanceState) setContentView (R.layout.activity_main) // Ak kľúč API začína „INSERT“ ... // if (APIKey.startsWith („INSERT“)) {// potom zobrazte nasledujúci prípitok… .// Toast.makeText (toto „Svoj kľúč API ste aktualizovali“, Toast.LENGTH_SHORT) .show ()} else {... ... ...

Načítanie aktíva

Na webe Google Poly si môžete vybrať ľubovoľné dielo, ale budem používať tento model planéty Zem.

Dáta získate pomocou svojho ID, ktoré sa objaví na konci slučky URL (zvýraznené na predchádzajúcej snímke obrazovky). Toto ID diela skombinujeme s hostiteľom rozhrania Poly API, ktoré je „https://poly.googleapis.com/v1“.

import android.content.Intent import android.os.Bundle import android.support.v7.app.AppCompatActivity import android.widget.Toast import com.github.kittinunf.fuel.android.extension.responseJson import com.github.kittinunf.fuel .httpDownload import com.github.kittinunf.fuel.httpZískajte import kotlinx.android.synthetic.main.activity_main. * import java.io.File class MainActivity: AppCompatActivity () {companion object {const val APIKey = "INSERT-YOUR-API -KEY "val assetURL =" https://poly.googleapis.com/v1/assets/94XG1XUy10q "} prepíše zábavu onCreate (uloženéInstanceState: Bundle?) {Super.onCreate (uloženéInstanceState) setContentView (R.layout.activity_main) if ( APIKey.startsWith ("INSERT") {Toast.makeText (this, "Svoj kľúč API ste aktualizovali", Toast.LENGTH_SHORT) .show ()} else {

Ďalej musíme zadať žiadosť GET na adresu URL diela pomocou metódy httpGet (). Ďalej uvádzam, že typ odpovede musí byť JSON:

import android.content.Intent import android.os.Bundle import android.support.v7.app.AppCompatActivity import android.widget.Toast import com.github.kittinunf.fuel.android.extension.responseJson import com.github.kittinunf.fuel .httpDownload import com.github.kittinunf.fuel.httpZískajte import kotlinx.android.synthetic.main.activity_main. * import java.io.File class MainActivity: AppCompatActivity () {companion object {const val APIKey = "INSERT-YOUR-API -KEY "val assetURL =" https://poly.googleapis.com/v1/assets/94XG1XUy10q "} prepíše zábavu onCreate (uloženéInstanceState: Bundle?) {Super.onCreate (uloženéInstanceState) setContentView (R.layout.activity_main) if ( APIKey.startsWith ("INSERT") {Toast.makeText (this, "Aktualizovali ste kľúč API", Toast.LENGTH_SHORT) .show ()} else {// Uskutočnite hovor servera a potom údaje odovzdajte pomocou Metóda „listOf“ // assetURL.httpGet (listOf („key“ pre APIKey)). ResponseJson {request, response, result -> // Urobte niečo s odpoveďou // result.fold ({val as set = it.obj ()

Diela môžu mať niekoľko formátov, napríklad OBJ, GLTF a FBX. Musíme zistiť, či je dielo vo formáte OBJ.

V tomto kroku tiež vyhľadávam názov a adresu URL všetkých súborov, ktoré musíme stiahnuť,
vrátane primárneho súboru diela („root“) a všetkých súvisiacich súborov s materiálmi a textúrami („zdroje“).

Ak naša aplikácia nedokáže správne načítať dané dielo, zobrazí sa prípitok informujúci používateľa.

import android.content.Intent import android.os.Bundle import android.support.v7.app.AppCompatActivity import android.widget.Toast import com.github.kittinunf.fuel.android.extension.responseJson import com.github.kittinunf.fuel .httpDownload import com.github.kittinunf.fuel.httpZískajte import kotlinx.android.synthetic.main.activity_main. * import java.io.File class MainActivity: AppCompatActivity () {companion object {const val APIKey = "INSERT-YOUR-API -KEY "val assetURL =" https://poly.googleapis.com/v1/assets/94XG1XUy10q "} prepíše zábavu onCreate (uloženéInstanceState: Bundle?) {Super.onCreate (uloženéInstanceState) setContentView (R.layout.activity_main) if ( APIKey.startsWith ("INSERT")) {Toast.makeText (toto: "Svoj kľúč API ste aktualizovali", Toast.LENGTH_SHORT) .show ()} else {// Požiadajte o GET na webovú adresu diela // assetURL. httpGet (listOf ("key" to APIKey)). responseJson {request, response, result -> // Urobte niečo s odpoveďou // result.fold ({val asset = it.obj () var objectURL: String? = null var materialLibraryName: String? = null var materialLibraryURL: String? = null // Skontrolujte formát diela pomocou poľa „formáty“ // val assetFormats = asset.getJSONArray ("formates") // Slučka cez všetky formáty // pre (i v 0 do assetFormats.length ()) { val currentFormat = assetFormats.getJSONObject (i) // Na identifikáciu typu formátu tohto prostriedku použite formatType. Ak je formát OBJ ... .// if (currentFormat.getString ("formatType") == "OBJ") {//...then načíta tento súbor 'root', tj súbor OBJ // objectURL = currentFormat. getJSONObject ("root") .getString ("url") // Načítanie všetkých závislostí koreňového súboru // materialLibraryName = currentFormat.getJSONArray ("resources") .getJSONObject (0) .getString ("relatedPath") materialLibraryURL = currentFormat.getJSONArray ("resources") .getJSONObject (0) .getString ("url") break}} objectURL !!. httpDownload (). destination {_, _ -> File (filesDir, "globeAsset.obj")} .response {_ , _, result -> result.fold ({}, {// Ak nemôžete vyhľadať alebo stiahnuť súbor OBJ, potom sa zobrazí chyba // Toast.makeText (toto „Nedá sa stiahnuť zdroj“, Toast.LENGTH_SHORT) ) .show ()})} materialLibraryURL !!. httpDownload (). destination {_, _ -> File (filesDir, materialLibraryName)} .response {_, _, result -> result.fold ({}, {Toast.). makeText (toto „Nedá sa stiahnuť zdroj“, Toast.LENGTH_SHORT) .show ()})}}, { Toast.makeText (toto „Nedá sa stiahnuť zdroj“, Toast.LENGTH_SHORT) .show ()})}}}

Ak teraz nainštalujete projekt na svoj smartfón alebo tablet s Androidom alebo virtuálne zariadenie s Androidom (AVD), bude sa diela úspešne sťahovať, ale aplikácia ho v skutočnosti nezobrazí. Vyriešime to teraz!

Vytvorenie druhej obrazovky: Pridanie navigácie

Chystáme sa zobraziť dielo v režime na celú obrazovku, takže aktualizujme náš súbor main_activity.xml tak, aby obsahoval tlačidlo, ktoré po klepnutí spustí aktivitu na celej obrazovke.

Teraz pridajme onClickListener na koniec súboru MainActivity.kt:

import android.content.Intent import android.os.Bundle import android.support.v7.app.AppCompatActivity import android.widget.Toast import com.github.kittinunf.fuel.android.extension.responseJson import com.github.kittinunf.fuel .httpDownload import com.github.kittinunf.fuel.httpZískajte import kotlinx.android.synthetic.main.activity_main. * import java.io.File class MainActivity: AppCompatActivity () {companion object {const val APIKey = "INSERT-YOUR-API -KEY "val assetURL =" https://poly.googleapis.com/v1/assets/94XG1XUy10q "} prepíše zábavu onCreate (uloženéInstanceState: Bundle?) {Super.onCreate (uloženéInstanceState) setContentView (R.layout.activity_main) if ( APIKey.startsWith ("INSERT") {Toast.makeText (this, "Aktualizovali ste svoj kľúč API", Toast.LENGTH_SHORT) .show ()} else {assetURL.httpGet (listOf ("key" to APIKey))). responseJson {request, response, result -> result.fold ({val asset = it.obj () var objectURL: String? = null var materialLibraryName: String? = null var materialLibraryURL: Str ing? = null val assetFormats = asset.getJSONArray ("formates") pre (i v 0 do assetFormats.length ()) {val currentFormat = assetFormats.getJSONObject (i) if (currentFormat.getString ("formatType") == "OBJ" ) {objectURL = currentFormat.getJSONObject ("root") .getString ("url") materialLibraryName = currentFormat.getJSONArray ("resources") .getJSONObject (0) .getString ("relatedPath") materialLibraryURL = currentFormat.getJSONArray ("resources" ) .getJSONObject (0) .getString ("url") break}} objectURL !!. httpDownload (). destination {_, _ -> File (filesDir, "globeAsset.obj")} .response {_, _, result -> result.fold ({}, {Toast.makeText (this, "Nedá sa stiahnuť zdroj", Toast.LENGTH_SHORT) .show ()})} materialLibraryURL !!. httpDownload (). destination {_, _ -> File (filesDir, materialLibraryName)} .response {_, _, result -> result.fold ({}, {Toast.makeText (this, "Nedá sa stiahnuť zdroj", Toast.LENGTH_SHORT) .show ()})}}, {Toast.makeText (toto „Nedá sa stiahnuť zdroj“, Toast.LENGTH_SHORT) .sh ow ()})} // Implementácia tlačidla // displayButton.setOnClickListener {val záměr = zámer (tento, SecondActivity :: class.java) startActivity (úmysel); }}}

Vytvorenie 3D plátna

Teraz vytvorme aktivitu, v ktorej zobrazíme naše diela v celoobrazovkovom režime:

  • Kliknite pravým tlačidlom myši na súbor MainActivity.kt vášho projektu a vyberte položku Nový> Súbor / trieda Kotlin. “
  • Otvorte rozbaľovaciu ponuku Druh a vyberte možnosť Trieda.
  • Túto triedu pomenujte „SecondActivity“ a potom kliknite na „OK“.

Aby sme mohli nakresliť 3D objekt, potrebujeme 3D plátno! Budem používať vykresľovač P3D z knižnice Spracovanie pre Android, čo znamená rozšírenie triedy PApplet, prepísanie metódy settings () a potom odovzdanie P3D ako argumentu metódy fullScreen (). Potrebujeme tiež vytvoriť vlastnosť, ktorá predstavuje aktívum Poly ako objekt PShape.

private fun displayAsset () {val canvas3D = objekt: PApplet () {var polyAsset: PShape? = null prepísať nastavenie zábavy () {fullScreen (PConstants.P3D)}

Ďalej musíme inicializovať objekt PShape prepísaním metódy setup (), vyvolaním metódy loadShape () a následným odovzdaním absolútnej cesty k súboru .obj:

override fun setup () {polyAsset = loadShape (File (filesDir, "globeAsset.obj"). absolutePath)}

Kreslenie na plátne P3D

Ak chcete kresliť na tomto 3D plátne, musíme prepísať metódu draw ():

prepísať zábavný remíza () {tvar pozadia (0) (polyAsset)}}

Veľa predvolených nastavení je veľa prostriedkov získaných z rozhrania Poly API na menšej strane, takže ak teraz spustíte tento kód, v závislosti od konfigurácie obrazovky sa toto dielo nemusí zobraziť. Pri vytváraní 3D scén zvyčajne vytvoríte vlastný fotoaparát, aby si používateľ mohol prezrieť scénu a zobraziť svoje 3D diela z plných 360 stupňov. Toto však presahuje rámec tohto článku, takže veľkosť a polohu diela upravím manuálne, aby sa zaistilo, že sa zmestí pohodlne na obrazovku.

Veľkosť diela môžete zväčšiť odovzdaním zápornej hodnoty do metódy scale ():

meradlo (-10f)

Pozíciu diela vo virtuálnom 3D priestore môžete upraviť pomocou metódy translate () a nasledujúcich súradníc:

  • X. Pozícia aktíva pozdĺž horizontálnej osi.
  • Y. Pozícia aktíva pozdĺž vertikálnej osi.
  • Z. Toto je os „hĺbka / výška“, ktorá transformuje 2D objekt na 3D objekt. Pozitívne hodnoty vytvárajú dojem, že objekt k vám prichádza, a záporné hodnoty vytvárajú dojem, že sa objekt pohybuje od vás.

Všimnite si, že transformácie sú kumulatívne, takže všetko, čo sa stane po funkcii, akumuluje účinok.

Používam nasledujúce:

prekladať (-50f, -100f, 10f)

Tu je vyplnený kód:

prepísať fun draw () {background (0) scale (-10f) translate (-50f, -100f) // Nakreslite aktívum vyvolaním metódy shape () // shape (polyAsset)}}

Ďalej musíme vytvoriť zodpovedajúci súbor rozloženia, do ktorého pridáme 3D plátno ako miniaplikáciu FrameLayout:

  • Control-kliknite na priečinok „res> layout“ vášho projektu.
  • Vyberte položku „Rozloženie zdroja“.
  • Tento súbor pomenujte „activity_second“ a potom kliknite na „OK“.

Teraz máme náš „asset_view“ FrameLayout, musíme o tom informovať našu SecondActivity! Prejdite späť do súboru SecondActivity.kt, vytvorte novú inštanciu PFragmentu a namierte ju v smere k nášmu widgetu „asset_view“:

import android.os.Bundle import android.support.v7.app.AppCompatActivity import kotlinx.android.synthetic.main.activity_second. * import processing.android.PFragment import processing.core.PAp import import processing.core.PStart import import processing.core .PShape import java.io.File class SecondActivity: AppCompatActivity () {override fun onCreate (uloženéInstanceState: Bundle?) {Super.onCreate (uloženéInstanceState) setContentView (R.layout.activity_second) displayAsset ()} súkromná zábava displayAsset () {val canvas3D = objekt: PApplet () {var polyAsset: PShape? = null prepísať zábavné nastavenia () {fullScreen (PConstants.P3D)} prepísať zábavné nastavenie () {polyAsset = loadShape (Súbor (filesDir, "globeAsset.obj"). absolutePath)} prepíše zábavné kreslenie () {background (0) scale (-10f) preložiť (-50f, -100f) tvar (polyAsset)}} // Pridajte nasledujúci // val assetView = PFragment (canvas3D) assetView.setView (asset_view, this)}}

Posledným krokom je pridanie SecondActivity k vášmu manifestu:

// Pridajte nasledujúce //

Testovanie vášho projektu

Sme pripravení vyskúšať hotový projekt! Nainštalujte ho do svojho zariadenia s Androidom alebo AVD a uistite sa, že máte aktívne pripojenie k internetu. Ihneď po spustení aplikácie sa dané dielo stiahne a potom ho môžete zobraziť tak, že klepnete na tlačidlo Zobraziť obsah.

Tento kompletný projekt si môžete stiahnuť z GitHubu.

Zabalenie

V tomto článku sme sa zamerali na to, ako použiť rozhranie Poly API na načítanie prostriedku 3D za behu a ako ho zobraziť pomocou knižnice Spracovanie pre Android. Myslíte si, že Poly API má potenciál sprístupniť vývoj VR a AR viacerým ľuďom? Dajte nám vedieť v komentároch nižšie!

súvisiace

  • Spoločnosť Google prinesie aplikácie AR na „stovky miliónov“ zariadení s Androidom v roku 2018
  • Spoločnosť Google vás naučí zadarmo o strojových zariadeniach a strojovom učení
  • 15 najlepších VR hier pre Google Cardboard
  • 10 najlepších VR aplikácií pre Google Cardboard
  • Čo je Google Fuchsia? Je to nový Android?
  • Čo je Google Duplex? - funkcie, dátum vydania a ďalšie
  • Ako vytvoriť aplikáciu VR pre Android za 7 minút
  • Slúchadlá s mobilným VR - aké sú vaše najlepšie možnosti?

Google I / O 2019 je vzdialený necelý týždeň, to však nezabráni poločnoti ilicon Valley, aby nám nahliadla do toho, čo má príť. Po prvé, poločnoť Google plá...

Čo je LTE Advanced?

John Stephens

Smieť 2024

V účanoti je 4G LTE bezpochyby de facto štandardom pre operátorov na celom vete, pokiaľ ide o mobilné širokopámové rýchloti, pričom 3G a ďalšie taršie technológie a ...

Fascinujúce Príspevky