Yeqa uye kokuyinhloko
Izifundo ze-AI

Yakha futhi Uhlole i-Tokyo ye-3D Eyenziwa Ngenqubo Esipheqululini

Lesi sifundo sethula i-Procedural Tokyo, ukuboniswa kwe-3D okusekelwe esipheqululini, okwakhiwe kusetshenziswa idatha ye-PLATEAU, OpenStreetMap, ne-GSI. Uzofunda ukuyisebenzisa endaweni yangakini, ukulanda nokuhlanganisa idatha yedolobha, ukuhlola izilawuli zayo, ukuqonda inqubo yama-tile, nokulungiselela ukuyifaka.

Yakha futhi Uhlole i-Tokyo ye-3D Eyenziwa Ngenqubo Esipheqululini

Yini i-Procedural Tokyo?

I-Procedural Tokyo iyimodeli ye-3D yesikhathi sangempela yase-Tokyo esebenza esipheqululini. Ihlanganisa izakhiwo zangempela, imigwaqo, indawo ephakeme, ojantshi, nezici zendawo nezinto ezenziwa ngezinqubo ezifana nama-facade, amafasitela, impahla yasemgwaqweni, izimoto, ukukhanya, amanzi, isimo sezulu, nezinyoni.

Le phrojekthi isebenzisa idatha yomphakathi evela ku-Project PLATEAU, OpenStreetMap, kanye ne-Geospatial Information Authority of Japan. I-compiler esebenza ngaphandle kwe-inthanethi iguqula amarekhodi omthombo abe ama-tile amancane kanambambili, kanti isiphequluli sisakaza futhi sihlanganisa ama-tile aseduze nekhamera.

Ungazama inguqulo esingethwe ku-jeantimex.github.io/tokyo. Lokhu okuhlangenwe nakho kwenzelwe iziphequluli zamakhompyutha futhi akunconyelwe iziphequluli zeselula.

Hlola Izigcawu Ezitholakalayo

Isigcawu ngasinye sihlanganisa indawo ecishe ibe ngamakhilomitha angu-3.4 ngo-2.8. Izindawo ezifakiwe yilezi:

  • Tokyo: Isiteshi sase-Tokyo, i-Marunouchi, nemisele ye-Imperial Palace.
  • Shiba: I-Tokyo Tower, i-Zojo-ji, ne-Shiba Park.
  • Shibuya: I-Scramble Crossing, i-Shibuya Station, nomgwaqo omkhulu.
  • Shinjuku: I-Shinjuku Station, isifunda sezakhiwo ezinde, i-Kabukicho, ne-Shinjuku Gyoen.
  • Chiyoda: I-Akihabara, i-Kanda, ne-Ochanomizu.
  • Chuo: I-Tsukiji, i-Kachidoki, i-Tsukishima, i-Harumi, izindawo ezingasemanzini, nemisele.
  • Fujinomiya: Idolobha eliseduze neNtaba i-Fuji elinendawo engemuva engamakhilomitha angu-60.

I-PLATEAU ihlanganisa amakhulu amadolobha ase-Japan, nakuba izinga lemininingwane elitholakalayo lihluka. Izikhungo zamadolobha zingaba nezimo zophahla ezinemininingwane kanye nokwakheka kwezithombe zasemoyeni, kanti amadolobhana amancane angasebenzisa amabhulokhi ezakhiwo alula.

Izici Eziyinhloko

Izakhiwo Nomhlaba Okubukeka Kwangempela

Izakhiwo zisebenzisa izindawo ezihlala kuzo zangempela, ukuphakama, izitezi, nolwazi lokusetshenziswa. Lapho i-PLATEAU inikeza amagobolondo anemininingwane nezithombe zophahla, lezo zimpahla zisetshenziswa ngqo. Ama-facade akhiqiziwe, amafasitela, amabhalkhoni, ama-parapet, impahla ephezu kophahla, namabhande ezimpawu zezitolo kwengeza imininingwane uma useduze.

Umhlaba usebenzisa imodeli yokuphakama yamamitha amahlanu, izithombe zasemoyeni, izindawo zemigwaqo, ama-kerb, amapaki, amahlathi, namanzi. Izimpawu zomgwaqo zihlanganisa imigqa yemizila, izindawo zokuwela ezinemigqa, imigqa yokuma, imicibisholo, izimpawu zesi-Japanese 止まれ, nemikhawulo yejubane ependiwe.

Impilo Yedolobha Ehambayo

Izimoto zilandela inethiwekhi yangempela yemigwaqo, zishayela kwesokunxele, zilandela imigwaqo enendlela eyodwa nezimpawu zokulawula, zima emigceni ezimpambanweni, futhi zisebenzisa imigwaqo emikhulu nezindawo zokungena nokuphuma. Izitimela zihamba kojantshi bangempela. Isigcawu sihlanganisa namapali ezinsiza, izintambo, izibani zasemgwaqweni, izimpawu zethrafikhi, imishini yokuthengisa, ama-torii, amapulatifomu eziteshi, amabhuloho abahamba ngezinyawo, izihlahla, nezimoto ezipakiwe.

Isikhathi, Isimo Sezulu, Nokubonakala Kwezinto

Isilayida sesikhathi noma iwashi lase-Tokyo elibukhoma lilawula ilanga, inyanga, isibhakabhaka, izithunzi, nokuchayeka kokukhanya. Njengoba kuhlwa, izibani zedolobha ziyakhanya ngaphambi kokuba ubumnyama bungene ngesikhathi sokuhwalala. I-renderer iphinde isekele amafu anevolumu, ukubonakala komkhathi, amanzi anamagagasi, ukubonakala kwamafasitela, izimpawu ezikhanyayo, izibani zangaphambili, nokukhanya kwe-Tokyo Tower.

Imihlambi yezinyoni ingahlala ezihlahleni bese iphinda indize. Esigcawini sase-Fujinomiya, indawo engemuva yomhlaba engakhiqiziwe kakhulu ibeka iNtaba i-Fuji ngemuva kwedolobha futhi ihlanganisa izithombe zasemoyeni nekhephu phezulu.

Faka Futhi Usebenzise Le Phrojekthi

Clone i-repository bese ufaka okuncikile kuyo nge-npm:

npm install

Landa ama-texture e-CC0 asetshenziswa yiphrojekthi. Lesi sinyathelo sidingeka kanye futhi sigcina cishe u-14 MB ku-public/textures/:

node tools/assets/fetch_textures.mjs

Okulandelayo, landa idatha eluhlaza yendawo. Isibonelo esilandelayo silanda idatha yomthombo yase-Tokyo:

npm run fetch -- --area=tokyo

Hlanganisa amarekhodi alandiwe abe ama-tile alungele isiphequluli:

npm run compile -- --area=tokyo

Ekugcineni, qalisa iseva yokuthuthukisa:

npm run dev

Vula i-http://localhost:5280 esipheqululini sedeskithophu. Amafayela edolobha ahlanganisiwe awafakwa ku-repository, ngakho indawo ngayinye kufanele yakhiwe kabusha kusuka kudatha yayo yomthombo.

Qonda Inqubo Yedatha

Inqubo inezigaba ezimbili eziyinhloko. Umyalo we-fetch ulanda amafayela omthombo ku-data/raw/<area>/ nezithombe zasemoyeni ku-public/ortho/<area>/. Umyalo we-compile uguqula lawo marekhodi abe ama-tile asakazwayo ngaphansi kwe-public/tiles/<area>/.

Qalisa yonke inqubo yendawo ekhethiwe ngalo myalo:

npm run fetch -- --area=shibuya
npm run compile -- --area=shibuya

Okulandiwe okuluhlaza kungaba kukhulu ngoba kufakiwe izithombe zezakhiwo ze-PLATEAU. I-README ibala cishe u-3.6 GB e-Tokyo, u-3.0 GB e-Shiba, u-1.3 GB e-Shibuya, no-0.2 GB e-Fujinomiya. Ukuhlanganisa kuthatha imizuzwana kuya emizuzwini embalwa kuye ngendawo.

Hlola Futhi Uvivinye Idatha Ehlanganisiwe

Dala ukubuka kuqala kwendawo kusuka phezulu ngalo myalo:

npm run preview -- --area=tokyo

Qalisa izivivinyo zephrojekthi ukuze uhlole ukujikeleza kwama-tile nokuvuleka kwezimpawu zomgwaqo:

npm test

Lezi zivivinyo ziwusizo ikakhulukazi ekuqondaniseni umhlaba. Izindawo zemigwaqo, izimpawu zemizila, nezimpawu zihlukaniswa ngokulandela onxantathu bemesh yomhlaba ukuze zihlale ngaphezu komhlaba otshekile futhi zingacwili emingceleni yama-tile.

Sebenzisa Izilawuli Zesiphequluli

  • Hudula ukuze uhambise ukubuka.
  • Hudula ngenkinobho yesokudla ukuze uzungezise.
  • Sebenzisa isondo legundane ukuze usondeze noma uhlehlise.
  • Sebenzisa i-WASD ukuze uhambe.
  • Bamba i-Shift ngesikhathi uhamba ukuze uhambe ngokushesha.
  • Cindezela u-N ukuze ushintshe phakathi kwemini nobusuku.
  • Chofoza isakhiwo ukuze usihlole.

Iphaneli ethi Settings ekhoneni eliphezulu kwesokudla ikuvumela ukuthi ushintshe izindawo futhi ulungise isikhathi, isiminyaminya, amafu, ukukhanya, kanye nekhwalithi yokunikezwa kwezithombe. Izilungiselelo zigcinwa esipheqululini.

Vula Isigcawu Ngamapharamitha E-URL

Amapharamitha e-URL awusizo ekwabelaneni ngokubuka okuthile noma ekuhloleni ukucushwa kokunikezwa kwezithombe. Isibonelo:

https://jeantimex.github.io/tokyo/?area=shibuya&time=18.5&traffic=0

Amapharamitha asekelwayo afaka:

  • area=tokyo|shiba|shibuya|shinjuku|chiyoda|chuo|fujinomiya ikhetha indawo.
  • time=18.5 isetha ihora lendawo lase-Tokyo.
  • night=1 ishintshela kumodi yasebusuku.
  • cam=x,z,distance,azimuth,elevation isetha ikhamera.
  • radius=900 ilawula ibanga lokubuka elisebenzayo.
  • traffic=0 ikhubaza isiminyaminya.
  • cars=600 ishintsha inani lezimoto.
  • birds=150 ishintsha inani lezinyoni.
  • clouds=0.25 ilawula ubuningi bamafu.
  • ortho=0 ikhubaza imodi ye-orthographic.

Ikhasi elivulwe ngamapharamitha e-URL alibhali phezu kwezilungiselelo ezigciniwe esipheqululini.

Indlela Ama-Tile Ahlanganisiwe Asebenza Ngayo

Ikhasimende lisebenzisa uhlelo lwendawo lwamamitha olusendaweni, olunesiqalo maphakathi nendawo. I-eksisi ye-x ikhomba empumalanga, i-eksisi ye-y ikhomba phezulu, kanti i-eksisi ye-z ikhomba eningizimu. Ama-tile ayizikwele ezingamamitha angu-256 futhi ahlanganiswa kuma-Web Worker ngesikhathi isayithi lisakaza ama-tile aseduze nokubuka kwamanje.

Indawo ehlanganisiwe iqukethe amafayela alandelayo:

  • manifest.json igcina isiqalo, imingcele, uhlu lwama-tile, igridi yendawo, izitezi zamabhuloho, kanye nolwazi lokubonga imithombo.
  • t_<x>_<z>.bin igcina i-tile eyodwa yezakhiwo, izindawo ezingaphansi, upende wemigwaqo, izinto eziseceleni, izintambo, kanye nezimpawu.
  • terrain.bin igcina igridi yokuphakama kwendawo ye-Float32 enezikhala zamamitha amahlanu.
  • roads.json igcina igrafu yemigwaqo, amazinga amaphuzu, kanye nezimpambanomgwaqo ezinezimpawu.
  • rails.json kanye ne-structures.json kugcina imigqa yezitimela, amapulatifomu, izembozo, kanye namabhuloho abantu abahamba ngezinyawo.
  • backdrop.bin igcina indawo ekhethiwe enesinqumo esiphansi ezungeze indawo.

Engeza Noma Lungisa Indawo

Ukuze ungeze elinye idolobha elimbozwe yi-PLATEAU, chaza okufakiwe ku-tools/pipeline/config.mjs. Indawo ichaza iphoyinti eliphakathi kanye nezikwele zegridi ze-PLATEAU ezizocutshungulwa. Ingachaza futhi usayizi ongemuva ongakhethwa kanye nokubuka kwekhamera ekuvuleni.

Yonke imibhalo ye-pipeline yamukela inketho yendawo efanayo:

npm run fetch -- --area=my-area
npm run compile -- --area=my-area
npm run preview -- --area=my-area

Amafayela e-PLATEAU alandwa nge-API yekhathalogi yedatha ye-PLATEAU. I-pipeline isusa amarekhodi aphindaphindiwe ngokusebenzisa i-gml:id, okubalulekile lapho isikwele sedathasethi yase-Tokyo sivela ngaphansi kwewadi engaphezu kweyodwa. Ukumbozwa kuyehluka phakathi kwamadolobha, ngakho ikhasimende lisebenzisa imininingwane ekhiqiziwe njengesipele lapho amagobolondo anemininingwane, ukwakheka kwezithombe, noma ifenisha yasemgwaqweni kungatholakali.

Imininingwane Yobuchwepheshe Ethuthukile

Indawo, Imigwaqo, Namabhuloho

Idatha ye-PLATEAU, OpenStreetMap, kanye ne-GSI ifakwa kugridi eyodwa yendawo esebenzisa amamitha. Igridi yokuphakama eyabiwe enezikhala zamamitha amahlanu inikeza ama-tile angomakhelwane ukuphakama okufanayo emaphethelweni awo. Izisekelo zezakhiwo ziqhathaniswa nendawo ngesikhathi sokuhlanganiswa, futhi umehluko uyarekhodwa.

Imingcele yemigwaqo engenamininingwane ihlukaniswa ibe imigwaqo yezimoto kanye nemigwaqo yabahamba ngezinyawo kusetshenziswa imigqa emaphakathi ye-OpenStreetMap. Amabhuloho kanye nemigwaqo ephakeme bathola amaphrofayela ahlukene: amabhuloho asemgwaqweni alinganiswa ukusuka kolunye uhlangothi kuya kolunye, imigwaqo emikhulu iphakanyiswa ngokwesendlalelo, kanti amarampu alungiswa ngobude ukuze axhumeke kahle.

Ukukhanya Nokubonakala Kwezinto

Esikhundleni sokudala ukukhanya okuguqukayo okuhlukile kwesibani ngasinye, izibani zasemgwaqweni kanye nezibani zangaphambili zidwetshwa kumephu yokukhanya. Imithombo egqagqene igcina inani elikhanya kakhulu, kanti idatha yokuphakama kwesibani ivimbela izibani ezingaphansi kwebhuloho eliphakeme ekukhanyiseni isitezi salo.

Ukubonakala kwamanzi kudweba idolobha futhi okwesibili ngaphansi kobuso bamanzi. Amagagasi ahlanekezela umphumela, kanti ukubonakala kwamafu kusampula imephu yesimo sezulu. Ingilazi yamafasitela imakwa esiteshini se-alpha sesigcinalwazi sombala bese icutshungulwa esigabeni sokubonakala kwezinto esikhaleni sesikrini.

Ukunikezwa Kwezithombe Nokusebenza

Isinikezi sisebenzisa i-three.js kanye ne-composer ye-postprocessing ye-pmndrs. Imiphumela yaso ihlanganisa i-n8ao ambient occlusion, ukubonakala kwezinto, umkhathi, amafu, i-bloom, kanye ne-tone mapping. Izinyoni zibekwa ku-vertex shader, okwenza imihlambi emikhulu isebenzise isikhathi esincane kakhulu se-CPU.

Ukuze kuthuthukiswe ukusebenza, gcina ibanga elisebenzayo lilinganiselwe, yehlisa inani lezimoto nezinyoni, khubaza amafu, noma wehlise ikhwalithi yokunikezwa kwezithombe kuphaneli ethi Settings. Imodi yokusakaza ezenzakalelayo ilayisha ama-tile aseduze; inketho ethi whole city ilayisha wonke ama-tile atholakalayo futhi ingadinga inkumbulo eningi kakhulu.

Sabalalisa Isayithi Elihlanganisiwe

Ngemva kokuhlanganisa izindawo ofuna ukuzishicilela, sebenzisa:

npm run deploy

Lokhu kwakha ukusatshalaliswa bese kuphushela ngenkani i-dist/ njenge-commit eyodwa egatsheni le-gh-pages le-origin yenqolobane. Ukusatshalaliswa kufaka noma yimaphi amadolobha ahlanganiswe kulowo mshini. I-README ilinganisela cishe ku-650 MB ezindaweni eziyisikhombisa ezifakiwe.

Ukubonga Imithombo Yedatha Namalayisense

Ikhodi ikhishwa ngaphansi kweLayisensi ye-MIT, kodwa idatha yedolobha isalokhu ingaphansi kwemigomo yemithombo yayo yokuqala. I-Project PLATEAU inikeza amamodeli amadolobha e-3D, izithombe zophahla, amabhuloho, kanye nefenisha yasemgwaqweni. I-GSI inikeza idatha yokuphakama kanye nezithombe zasemoyeni. Abanikeli be-OpenStreetMap banikeza imigwaqo, ojantshi, nezindawo ngaphansi kwe-ODbL. Izinto zokwakha ze-Poly Haven ziyi-CC0, izihlahla zisebenzisa i-ez-tree ngaphansi kwe-MIT, kanti izingxenye zomkhathi namafu zivela ku-three-geospatial ngaphansi kwe-MIT.

Isiphetho

I-Procedural Tokyo ikhombisa ukuthi amasethi edatha omphakathi ezendawo angaguqulwa kanjani abe yinto ecebile nenyakazayo esipheqululini. Ukuze uyisebenzise, faka okuncikile, landa izinto zokwakha nedatha yendawo, hlanganisa idatha ibe amathayela, bese uqala iseva yokuthuthukisa. Kusukela lapho, amapharamitha e-URL, ukumiswa kwepayiphi, izivivinyo, nemiyalo yokushicilela kunikeza izindlela ezisebenzayo zokuhlola nokwandisa iphrojekthi.