Poli API: 3D aktīvu izgūšana jūsu VR un AR Android lietotnēm

Autors: Peter Berry
Radīšanas Datums: 14 Augusts 2021
Atjaunināšanas Datums: 8 Maijs 2024
Anonim
Poli API: 3D aktīvu izgūšana jūsu VR un AR Android lietotnēm - Progr
Poli API: 3D aktīvu izgūšana jūsu VR un AR Android lietotnēm - Progr

Saturs


Vai jums ir lieliska virtuālās realitātes (VR) vai paplašinātās realitātes (AR) mobilās lietotnes ideja, bet nav idejas, kā savu redzējumu atdzīvināt?

Ja vien jūs neesat Android izstrādātājs, kurš arī ir pieredzējis 3D mākslinieks, tad visu līdzekļu radīšana, kas nepieciešami, lai sniegtu ieskaujošu, 360 grādu pieredzi, var būt biedējošs process.

Tikai tāpēc, ka jums nav laika, resursu vai pieredzes, kas nepieciešama 3D modeļu izveidošanai, nav nozīmē, ka jūs nevarat izveidot lielisku VR vai AR mobilo lietotni! Tīmekļa tīklā ir brīvi pieejams plašs 3D resursu klāsts, kā arī visas API, ietvari un bibliotēkas, kas jums ir nepieciešami, lai lejupielādētu un atveidotu šos līdzekļus savās Android lietojumprogrammās.

Lasīt tālāk: Tagad varat apmeklēt jebkuru vietni, izmantojot Daydream VR. Pat tas viens.

Šajā rakstā mēs aplūkosim Poly - tiešsaistes krātuvi un API, kas ir jūsu rokai tūkstošiem 3D līdzekļu. Šī raksta beigās būsit izveidojis lietotni, kas izlaiduma laikā iegūst 3D poli aktīvu un pēc tam atveido to, izmantojot populāro bibliotēku Processing for Android.


3D aktīvu parādīšana, izmantojot Poly

Ja jūs kādreiz esat aizrāvies ar Vienotības attīstību, tad Poli krātuve ir līdzīga Unity Asset Store - izņemot to, ka Poli viss ir bez maksas!

Daudzi Poly 3D modeļi ir publicēti saskaņā ar Creative Commons licenci, tāpēc jūs varat brīvi izmantot, modificēt un remiksēt šos aktīvus, ja vien piešķirat radītājam atbilstošu kredītu.

Visi Poly 3D modeļi ir veidoti tā, lai būtu saderīgi ar Google VR un AR platformām, piemēram, Daydream un ARCore, taču jūs varat tos izmantot visur, kur un kā vēlaties - potenciāli, jūs pat varētu tos izmantot kopā ar Apple ARKit!

Poli aktīvu izguvei un parādīšanai jums ir divas iespējas. Pirmkārt, jūs varat lejupielādēt aktīvus savā datorā un pēc tam tos importēt Android Studio, lai tie tiktu piegādāti kopā ar jūsu lietojumprogrammu un palielinātu tā APK lielumu, vai arī šos resursus varat izgūt izpildes laikā, izmantojot Poly API.

Starpplatformu un uz REST balstītā Poly API nodrošina programmētu piekļuvi tikai lasāmai Poly milzīgajai 3D modeļu kolekcijai. Tas ir sarežģītāk nekā aktīvu apvienošana ar APK, taču poli aktīvu izgūšanai izpildlaikā ir vairākas priekšrocības, īpaši tas, ka tas palīdz kontrolēt jūsu APK lielumu, un tas var ietekmēt to, cik cilvēku lejupielādē jūsu lietojumprogrammu.


Varat arī izmantot Poly API, lai lietotājiem sniegtu lielāku izvēli, piemēram, ja jūs izstrādājat mobilo spēli, jūs varētu ļaut lietotājiem izvēlēties no dažādiem rakstzīmju modeļiem.

Tā kā jūs varat modificēt poli modeļus, jūs pat varat ļaut lietotājiem pielāgot izvēlēto raksturu, piemēram, mainot matu vai acu krāsu vai apvienojot to ar citiem poli aktīviem, piemēram, dažādiem ieročiem un bruņām. Šādā veidā Poly API var palīdzēt jums piegādāt iespaidīgu 3D līdzekļu klāstu, ar daudz iespēju pieredzes personalizēšanai - un tas viss ir paredzēts salīdzinoši mazam darbam. Jūsu lietotāji būs pārliecināti, ka esat pavadījis tonnu laika, rūpīgi izstrādājot visus šos 3D modeļus!

3D modelēšanas projekta izveidošana

Mēs izveidosim lietojumprogrammu, kas izgūst noteiktu poli aktīvu, kad tā tiek palaista pirmo reizi, un pēc lietotāja pieprasījuma parādīs šo līdzekli pilnekrāna režīmā.

Lai palīdzētu mums iegūt šo līdzekli, es izmantošu Fuel, kas ir HTTP tīkla bibliotēka Kotlin un Android. Sāciet ar jauna projekta izveidi ar izvēlētajiem iestatījumiem, bet pēc uzaicinājuma izvēlieties “Iekļaut Kotlin atbalstu”.

Visos zvanos uz Poly API jāietver API atslēga, kuru izmanto, lai identificētu jūsu lietotni un ieviestu lietošanas ierobežojumus. Izstrādes un testēšanas laikā bieži izmantojat neierobežotu API atslēgu, taču, ja plānojat izlaist šo lietotni, jums jāizmanto Android ierobežota API atslēga.

Lai izveidotu ierobežotu atslēgu, jums jāzina sava projekta SHA-1 paraksta sertifikāts, tāpēc iegūsim šo informāciju tagad:

  • Atlasiet Android Studio cilni “Gradle” (kur kursors ir novietots nākamajā ekrānuzņēmumā). Tādējādi tiek atvērts panelis “Gradle projekti”.

  • Panelī “Gradle projekti” veiciet dubultklikšķi, lai izvērstu projekta sakni, un pēc tam atlasiet “Uzdevumi> Android> Parakstīšanas ziņojums.” Tas atver jaunu paneli Android Studio loga apakšdaļā.
  • Atlasiet pogu Pārslēgt uzdevumu izpildi / teksta režīmu (kur kursors ir novietots nākamajā ekrānuzņēmumā).

Panelis “Palaist” tagad tiks atjaunināts, lai parādītu daudz informācijas par jūsu projektu, ieskaitot tā SHA-1 pirkstu nospiedumu.

Izveidojiet Google Cloud Platform kontu

Lai iegūtu nepieciešamo API atslēgu, jums būs nepieciešams Google Cloud Platform (GPC) konts.

Ja jums nav konta, varat reģistrēties uz 12 mēnešu bezmaksas izmēģinājumu, dodoties uz bezmaksas izmēģināšanas platformas izmēģināšanas lapu un sekojot norādījumiem. Ņemiet vērā, ka nepieciešama kredītkarte vai debetkarte, taču saskaņā ar lapu Bieži uzdotie jautājumi tā tiek izmantota tikai, lai pārbaudītu jūsu identitāti, un “bezmaksas izmēģinājuma laikā no jums netiks iekasēta samaksa vai rēķins.”

Iegūstiet savu Poly API atslēgu

Kad esat reģistrējies, varat iespējot Poly API un izveidot atslēgu:

  • Dodieties uz GSP konsoli.
  • Augšējā kreisajā stūrī atlasiet izklāto ikonu un izvēlieties “API un pakalpojumi> Informācijas panelis”.
  • Atlasiet “Iespējot API un pakalpojumus”.
  • Kreisajā pusē esošajā izvēlnē izvēlieties “Cits”.
  • Atlasiet karti “Poly API”.
  • Noklikšķiniet uz pogas “Iespējot”.
  • Pēc dažiem mirkļiem jūs tiksit atvērts jaunā ekrānā; atveriet sānu izvēlni un izvēlieties “API un pakalpojumi> akreditācijas dati”.

  • Nākamajā uznirstošajā logā atlasiet “Ierobežot atslēgu”.
  • Piešķiriet atslēgai atšķirīgu vārdu.
  • Sadaļā “Lietojumprogrammu ierobežojumi” atlasiet “Android lietotnes”.
  • Atlasiet “Pievienot pakotnes nosaukumu un pirkstu nospiedumus”.
  • Kopējiet / ielīmējiet projekta SHA-1 pirkstu nospiedumu laukā “Parakstīšanas sertifikāta pirkstu nospiedums”.
  • Ievadiet projekta paketes nosaukumu (tas parādās manifestā un katras klases faila augšpusē).
  • Noklikšķiniet uz Saglabāt.

Tagad jūs tiksit novirzīts uz jūsu projekta ekrānu “Akreditācijas dati”, kurā ir visu jūsu API atslēgu saraksts, ieskaitot tikko izveidoto API iespējoto atslēgu.

Projekta atkarības: Degvielas, P3D un Kotlin paplašinājumi

Lai izgūtu un parādītu poli aktīvus, mums būs nepieciešama palīdzības palīdzība no dažām papildu bibliotēkām:

  • Degviela. Poly pašlaik nav oficiāla Android rīku komplekta, tāpēc jums būs jāstrādā ar API tieši, izmantojot tā REST saskarni. Lai padarītu šo procesu vienkāršāku, es izmantošu Fuel HTTP tīkla bibliotēku.
  • Apstrāde operētājsistēmai Android. Poli aktīva parādīšanai izmantošu šīs bibliotēkas P3D renderētāju.

Atveriet sava projekta build.gradle failu un pievienojiet šīs divas bibliotēkas kā projekta atkarības:

atkarības {ieviešanas failsTrija (iekļaujiet:, dir: libs) ieviešanas "org.jetbrains.kotlin: kotlin-stdlib-jre7: $ kotlin_version" ieviešana com.android.support:appcompat-v7:27.1.1 // Pievienot degvielas bibliotēku / / implementācija com.github.kittinunf.fuel: android: 1.13.0 // Pievienojiet Android motora apstrādes procesu // implementācija org.p5android: apstrādes kodols: 4.0.1}

Lai mūsu kods būtu kodolīgāks, es izmantošu arī Kotlin Android paplašinājumus, tāpēc pievienosim šo spraudni, kamēr mums būs atvērts build.gradle fails:

lietot spraudni: kotlin-android-extensions

Visbeidzot, tā kā mēs izgūstam īpašumu no interneta, mūsu lietotnei ir nepieciešama interneta atļauja. Atveriet manifestu un pievienojiet šo:

API atslēgas pievienošana

Katru reizi, kad mūsu lietotne pieprasa aktīvu no Poly, tajā jāiekļauj derīga API atslēga. Es izmantoju vietturu tekstu, bet jūs obligāti nomainiet šo vietturi ar savu API atslēgu, ja lietojumprogramma kādreiz darbosies.

Es pievienoju arī čeku, lai lietojumprogramma parādītu brīdinājumu, ja aizmirstat aizstāt tekstu “INSERT-YOUR-API-KEY”:

importa android.os.Bundle importa android.support.v7.app.AppCompatActivity klase MainActivity: AppCompatActivity () {pavadošais objekts {const val APIKey = "INSERT-YOUR-API-KEY"} ignorē izklaidi onCreate (savedInstanceState: Bundle?) { super.onCreate (savedInstanceState) setContentView (R.layout.activity_main) // Ja API atslēga sākas ar “INSERT” ... // if (APIKey.startsWith (“INSERT”)) {// tad parādiet šādu grauzdiņu… .// Toast.makeText (tas "Jūs vēl neesat atjauninājis savu API atslēgu", Toast.LENGTH_SHORT) .show ()} else {... ... ...

Īpašuma izgūšana

Vietnē Google Poly varat izvēlēties jebkuru aktīvu, bet es izmantošu šo Zemes planētas modeli.

Jūs izgūstat aktīvu, izmantojot tā ID, kas parādās URL loga beigās (izcelts iepriekšējā ekrānuzņēmumā). Mēs apvienojam šo īpašuma ID ar Poly API resursdatoru, kas ir “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 comcomithith.kittinunf.fuel .httpDownload import com.github.kittinunf.fuel.httpGet importa kotlinx.android.synthetic.main.activity_main. * importa java.io.Faila klase MainActivity: AppCompatActivity () {papildu objekts {const val APIKey = "INSERT-YOUR-API -KEY "val assetURL =" https://poly.googleapis.com/v1/assets/94XG1XUy10q "} ignorē jautru onCreate (savedInstanceState: Bundle?) {Super.onCreate (savedInstanceState) setContentView (R.layout.activity_main) if ( APIKey.startsWith ("INSERT")) {Toast.makeText (tas, "Jūs vēl neesat atjauninājis savu API atslēgu", Toast.LENGTH_SHORT) .show ()} else {

Tālāk mums ir jāveic GET pieprasījums aktīva vietrādim URL, izmantojot metodi httpGet (). Es arī precizēju, ka atbildes veidam jābūt 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 comcomithith.kittinunf.fuel .httpDownload import com.github.kittinunf.fuel.httpGet importa kotlinx.android.synthetic.main.activity_main. * importa java.io.Faila klase MainActivity: AppCompatActivity () {papildu objekts {const val APIKey = "INSERT-YOUR-API -KEY "val assetURL =" https://poly.googleapis.com/v1/assets/94XG1XUy10q "} ignorē jautru onCreate (savedInstanceState: Bundle?) {Super.onCreate (savedInstanceState) setContentView (R.layout.activity_main) if ( APIKey.startsWith ("INSERT")) {Toast.makeText (tas, "Jūs vēl neesat atjauninājis savu API atslēgu", Toast.LENGTH_SHORT) .show ()} else {// Veiciet servera zvanu un pēc tam pārsūtiet datus, izmantojot Metode “listOf” // assetURL.httpGet (listOf (APIKey “atslēga”)). ResponseJson {pieprasījums, atbilde, rezultāts -> // Dariet kaut ko ar atbildi // rezultāts.fold ({val kā komplekts = it.obj ()

Šim aktīvam var būt vairāki formāti, piemēram, OBJ, GLTF un FBX. Mums jānosaka, ka aktīvs ir OBJ formātā.

Šajā solī es arī izgūstu visu lejupielādējamo failu nosaukumus un URL,
ieskaitot īpašuma primāro failu (“sakne”), kā arī visus saistītos materiāla un tekstūras failus (“resursi”).

Ja mūsu lietojumprogramma nevar pareizi izgūt īpašumu, tajā tiks parādīts grauzdiņš, kas informē lietotāju.

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 comcomithith.kittinunf.fuel .httpDownload import com.github.kittinunf.fuel.httpGet importa kotlinx.android.synthetic.main.activity_main. * importa java.io.Faila klase MainActivity: AppCompatActivity () {papildu objekts {const val APIKey = "INSERT-YOUR-API -KEY "val assetURL =" https://poly.googleapis.com/v1/assets/94XG1XUy10q "} ignorē jautru onCreate (savedInstanceState: Bundle?) {Super.onCreate (savedInstanceState) setContentView (R.layout.activity_main) if ( APIKey.startsWith ("INSERT")) {Toast.makeText (tas, "Jūs vēl neesat atjauninājis savu API atslēgu", Toast.LENGTH_SHORT) .show ()} else {// Izveidot GET pieprasījumu aktīva vietrādim URL // assetURL. httpGet (listOf (APIKey "atslēga")). responseJson {pieprasījums, atbilde, rezultāts -> // Dariet kaut ko ar atbildi // rezultāts.fold ({val asset = it.obj () var objectURL: String?) = null var materialLibraryName: virkne? = null var materialLibraryURL: virkne? = nulle // Pārbaudiet aktīva formātu, izmantojot masīvu “formāti” // val assetFormats = asset.getJSONArray (“formats”) // Pārliecinieties par visiem formātiem // for (i ir 0, līdz assetFormats.length ()) { val currentFormat = assetFormats.getJSONObject (i) // Izmantojiet formatType, lai identificētu šī resursa formāta tipu. Ja formāts ir OBJ… .// if (currentFormat.getString ("formatType") == "OBJ") {//...tad izgūstiet šī resursa saknes failu, ti, OBJ failu // objectURL = currentFormat. getJSONObject ("root") .getString ("url") // Ielādēt visas saknes faila atkarības // materialLibraryName = currentFormat.getJSONArray ("resursi") .getJSONObject (0) .getString ("reliaPath") materialLibraryURL = currentFormat.getJSON ("resursi") .getJSONObject (0) .getString ("url") break}} objectURL !!. httpDownload (). Destination {_, _ -> File (filesDir, "globeAsset.obj")} .response {_ , _, rezultāts -> rezultāts.kārts ({}, {// Ja nevarat atrast vai lejupielādēt OBJ failu, parādiet kļūdu // Toast.makeText (tas, “Nevar lejupielādēt resursu”, Toast.LENGTH_SHORT ) .show ()})} materialLibraryURL !!. httpDownload (). galamērķis {_, _ -> File (filesDir, materialLibraryName)} .response {_, _, rezultāts -> rezultāts.fold ({}, {Toast. makeText (tas ir "Nevar lejupielādēt resursu", Toast.LENGTH_SHORT) .show ()})}}, { Toast.makeText (tas, "Nevar lejupielādēt resursu", Toast.LENGTH_SHORT) .show ()})}}}}

Šajā brīdī, ja instalējat projektu savā Android viedtālrunī vai planšetdatorā vai Android virtuālajā ierīcē (AVD), resurss tiks lejupielādēts veiksmīgi, taču lietotne to faktiski nerādīs. Labosim tagad!

Otra ekrāna izveidošana: navigācijas pievienošana

Mēs parādīsim īpašumu pilnekrāna režīmā, tāpēc atjaunināsim failu main_activity.xml, lai tajā iekļautu pogu, kas, piesitot, atvērs pilnekrāna darbību.

Tagad pievienosim onClickListener faila MainActivity.kt beigām:

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 comcomithith.kittinunf.fuel .httpDownload import com.github.kittinunf.fuel.httpGet importa kotlinx.android.synthetic.main.activity_main. * importa java.io.Faila klase MainActivity: AppCompatActivity () {papildu objekts {const val APIKey = "INSERT-YOUR-API -KEY "val assetURL =" https://poly.googleapis.com/v1/assets/94XG1XUy10q "} ignorē jautru onCreate (savedInstanceState: Bundle?) {Super.onCreate (savedInstanceState) setContentView (R.layout.activity_main) if ( APIKey.startsWith ("INSERT")) {Toast.makeText (tas ir "Jūs neesat atjauninājis savu API atslēgu", Toast.LENGTH_SHORT) .show ()} else {assetURL.httpGet (listOf (APIKey "atslēga")). responseJson {pieprasījums, atbilde, rezultāts -> rezultāts.reiz ({val asset = it.obj () var objectURL: String? = null var materialLibraryName: String? = null var materialLibraryURL: Str ing? = nulles vērtībaFormats = asset.getJSONArray ("formāti") for (i in 0 līdz assetFormats.length ()) {val currentFormat = assetFormats.getJSONObject (i) if (currentFormat.getString ("formatType") == "OBJ" ) {objectURL = currentFormat.getJSONObject ("root") .getString ("url") materialLibraryName = currentFormat.getJSONArray ("resursi") .getJSONObject (0) .getString ("reliaPath") materialLibraryURL = currentFormat.getJSONArray ) .getJSONObject (0) .getString ("url") break}} objectURL !!. httpDownload (). galamērķis {_, _ -> File (filesDir, "globeAsset.obj")} .response {_, _, rezultāts -> rezultāts.kārtas ({}, {Toast.makeText (šis, "Nevar lejupielādēt resursu", Toast.LENGTH_SHORT) .show ()})} materialLibraryURL !!. httpDownload (). galamērķis {_, _ -> fails (filesDir, materialLibraryName)} .response {_, _, rezultāts -> rezultāts.reizējs ({}, {Toast.makeText (šis, "Nevar lejupielādēt resursu", Toast.LENGTH_SHORT) .show ()})}}, {Toast.makeText (tas "Nevar lejupielādēt resursu", Toast.LENGTH_SHORT) .sh ow ()})} // Iedarbiniet pogu // displayButton.setOnClickListener {val intent = Intent (this, SecondActivity :: class.java) startActivity (intent); }}}

3D audekla veidošana

Izveidosim darbību, kurā mēs parādīsim savu īpašumu pilnekrāna režīmā:

  • Ar vadības taustiņu noklikšķiniet uz projekta MainActivity.kt faila un atlasiet “Jauns> Kotlin fails / klase”.
  • Atveriet nolaižamo izvēlni “Kind” un atlasiet “Class”.
  • Piešķiriet šai klasei vārdu “SecondActivity” un pēc tam noklikšķiniet uz “OK”.

Lai uzzīmētu 3D objektu, mums ir nepieciešams 3D audekls! Es izmantošu operētājsistēmas Android bibliotēkas P3D renderētāju Processing, kas nozīmē PApplet klases paplašināšanu, iestatījumu () metodes ignorēšanu un pēc tam P3D kā argumenta nodošanu pilnekrāna () metodei. Mums arī jāizveido īpašums, kas attēlo Poli aktīvu kā PShape objektu.

privāts jautri displayAsset () {val canvas3D = objekts: PApplet () {var polyAsset: PShape? = null ignorēt izklaides iestatījumus () {fullScreen (PConstants.P3D)}

Pēc tam jāinicializē objekts PShape, ignorējot iestatīšanas () metodi, izsaucot metodi loadShape () un pēc tam nolaižot .obj faila absolūto ceļu:

ignorēt jautru iestatīšanu () {polyAsset = loadShape (fails (filesDir, "globeAsset.obj"). absolūts ceļš)}

Zīmējums uz P3D audekla

Lai zīmētu uz šī 3D audekla, mums ir jānovērš zīmēšanas () metode:

ignorēt jautru izlozi () {fona (0) forma (polyAsset)}}

Pēc noklusējuma daudzi no Poly API iegūtie aktīvi ir mazākā pusē, tāpēc, ja jūs palaižat šo kodu tagad, iespējams, ka aktīvu pat neredzēsit, atkarībā no ekrāna konfigurācijas. Veidojot 3D ainas, parasti izveidosit pielāgotu kameru, lai lietotājs varētu izpētīt ainu un apskatīt jūsu 3D resursus no visām 360 grādiem. Tomēr tas neatrodas šajā rakstā, tāpēc es mainīšu aktīva lielumu un pozīciju manuāli, lai pārliecinātos, ka tas ērti iederas ekrānā.

Varat palielināt aktīva lielumu, novirzot negatīvu vērtību uz skalas () metodi:

skala (-10f)

Varat pielāgot aktīva atrašanās vietu virtuālajā 3D telpā, izmantojot tulkošanas () metodi un šādas koordinātas:

  • X. Aktīvu novieto gar horizontālo asi.
  • Y. Aktīvu novieto gar vertikālo asi.
  • Z. Šī ir “dziļuma / augstuma” ass, kas 2D objektu pārveido 3D objektā. Pozitīvas vērtības rada iespaidu, ka objekts nāk pret jums, un negatīvās vērtības rada iespaidu, ka objekts attālinās no jums.

Ņemiet vērā, ka pārvērtības ir kumulatīvas, tāpēc viss, kas notiek pēc funkcijas, uzkrāj efektu.

Es izmantoju šādus datus:

tulkot (-50f, -100f, 10f)

Šis ir aizpildītais kods:

ignorēt izklaides zīmēšanu () {fona (0) skala (-10f) tulkot (-50f, -100f) // Uzzīmējiet aktīvu, izsaucot formu () metodi // forma (polyAsset)}}

Tālāk mums jāizveido atbilstošais izkārtojuma fails, kurā mēs pievienosim 3D audekls kā logrīku FrameLayout:

  • Ar vadības taustiņu noklikšķiniet uz projekta mapes “res> izkārtojums”.
  • Atlasiet “Izkārtojuma resursa fails”.
  • Piešķiriet šim failam nosaukumu “activity_second” un pēc tam noklikšķiniet uz “OK”.

Tagad mums ir savs “asset_view” FrameLayout, mums par to jāinformē mūsu SecondActivity! Pārejiet atpakaļ uz failu SecondActivity.kt, izveidojiet jaunu PFragment instanci un norādiet to uz mūsu logrīka “asset_view” virzienu:

importa android.os.Bundle importa android.support.v7.app.AppCompatActivity importa kotlinx.android.synthetic.main.activity_second. * importēšana processing.android.PFragment importa processing.core.PApplet importēšana processing.core.PConstants importēšana processing.core .Savu importa java.io.Faila klase SecondActivity: AppCompatActivity () {ignorēt fun onCreate (savedInstanceState: Bundle?) {Super.onCreate (savedInstanceState) setContentView (R.layout.activity_second) displayAsset ()} privāts izklaides displejsAsset () {val. canvas3D = objekts: PApplet () {var polyAsset: PShape? = null ignor fun fun settings () {fullScreen (PConstants.P3D)} override fun setup () {polyAsset = loadShape (File (filesDir, "globeAsset.obj"). absolūtsPath)} ignorēt fun fun () {fona (0) skala (-10f) tulkot (-50f, -100f) formu (polyAsset)}} // Pievienojiet šo tekstu // val assetView = PFragment (canvas3D) assetView.setView (asset_view, this)}}

Pēdējais solis ir SecondActivity pievienošana jūsu manifestam:

// Pievienojiet šo tekstu //

Projekta pārbaude

Mēs tagad esam gatavi pārbaudīt gatavo projektu! Instalējiet to savā Android ierīcē vai AVD un pārliecinieties, vai jums ir aktīvs interneta savienojums. Tiklīdz lietotne tiks palaista, tā tiks lejupielādēta un varēsit to apskatīt, pieskaroties pogai “Display Asset”.

Šo pilnu projektu varat lejupielādēt no GitHub.

Iesaiņošana

Šajā rakstā mēs apskatījām, kā izmantot Poly API, lai izpildlaikā iegūtu 3D aktīvu, un kā šo aktīvu parādīt, izmantojot bibliotēku Processing for Android. Vai jūs domājat, ka Poly API ir potenciāls padarīt VR un AR attīstību pieejamu vairāk cilvēku? Paziņojiet mums komentāros zemāk!

Saistīts

  • Google 2018. gadā piegādās AR lietotnes “simtiem miljonu” Android ierīču
  • Google bez maksas iemācīs AI un mašīnu apguvi
  • 15 labākās VR spēles Google kartonam
  • 10 labākās VR lietotnes Google kartonam
  • Kas ir Google Fuksija? Vai šī ir jaunā Android?
  • Kas ir Google Duplex? - funkcijas, izlaišanas datums un daudz kas cits
  • Kā izveidot VR lietotni Android tikai 7 minūtēs
  • Mobilās VR austiņas - kādas ir jūsu labākās iespējas?

Apple ir vien no lielākajiem tālruņu ražotājiem paaulē. Tā iPhone, ka darboja ar iO, konkurē ar augtākā klae Android tālruņiem par patērētāju uzmanību un naudu. Mē to zinām laītāji zina daudz par Goo...

Iepējam, ka vēl divi lielākie tehnoloģiju pēlētāji - Verizon un Amazon - iekļū jau pārpildītajā uzņēmumu araktā, ka plāno ākt mobilo pēļu traumēšana pakalpojumu. akaņā ar The Verge, Verizon Wirele jau...

Interesanti Šodien