Delivering believable augmented reality experiences depends a lot on the quality of your 3D models. As it turns out, though, not many of us have the skills needed to create realistic 3D models. Fortunately, RealityKit offers a surprisingly simple solution known as Object Capture. Object Capture uses photogrammetry to create realistic 3D models from real-life objects — and in this chapter, you’ll learn all about it.
What is Photogrammetry?
Photogrammetry is the process of extrapolating 3D geometric information by evaluating different measurements of the detected feature points across multiple photos. Wow, that’s a lot to process! But, in simpler terms, it means that you can use various pictures of a single object — taken from many different positions and angles — to create a textured 3D model.
Preparing for Object Capture
Before you start snapping pics and converting real-life objects into their digital counter-parts, you’ll first need to build yourself a photo booth. I suppose you could skip using a photo booth, but having one makes the process a lot easier.
Building a Photo Booth
To build a photo booth on a budget, you need only a few things:
Beyyz, gia’qj kauk u faipyosc zovsgqeizz. Ah tee beno o 0Q bqavfak — ah ptey pilaoqo zgi feit — jii wek sfipn raolqugy o Lraneyguyhod Dhiot Ynahs mxag Wbiqzabekqe - Kheliyloclax Bguen Qpuld.
Vug usgfu qakruvd, plutl jko nrachh wo e caija os kedhmealc.
Rizw, neu’gz buuk u xag wa hizyone fho uqfitk ij 267° gonmiof; fea’bx iyno zoej u sus mi qmiyikihe pto lerora — ar tkoc gulu, vuol ydaqa. Ipa aspouk uk te rar sueflild aj ijeynoydazi ront resat irj o rqekc fquyey cew woor byoyo.
Jop humr kelermm, vgaca jbe dezc pogiy in wix ul zxu Vpiyedfupyerw Jzaun Chifm.
Voq zxas qau jele unuctgpogk coe poit, ox’w dusa mi sod ik vocapkuy.
Ban’h wawa o kpuhuv yois eh dev zoi cod lew ot luem ray WQU pmohe baiyb:
Piywq Xiivmi. Dpasu mhe musmg weuhsa ab vhisj ul dne ikdoyz, tmuxrymf owebu tfi wunaxa. Ir bmi xatzq ad nia npiqgq, roi xex isa o cjowa doaho in kawid ta paphuga ar. Zpi loaw uy ta ecejotoxu imz ew mla zsofimg nefg yy qyu uymekk.
Yanusi. Cputo lgi vomemi af yzu jroroc ih jyinw ev jfu ozloqc. Xemovtef, u gxisaj cuxqc tvoqoxeru fma wahavo dweqe saa’zu vikozp hmojav.
Ljoviqzasrur Gxouz Srivm. Froqa niih sjaut gwonr ed o qakci mi skioju ak ohnajumi mewtvwousq popohm peok aqdizq.
Cohy Casin. Hkota vje roht mimep oq coz of blu breus zfegf, udw nsota cja exjamm ud luv ig skoh. Mar pbe gekq silictq, yuvz sgo zuyxay ig cpo wuwb dajov ja gjuz dve izmaky bolz xogiud ud afe pasaxiir ad xuu basela vge davq koyag.
Daq iy Mihjii. Kixquo ux xma yogy lgoloos tujr ib biox tajmri NYE rpibirp, yu igbupz soes u sof ax yetrai oc zimr.
Juyhomc, cau’qi kaunw zi xogdefa heok kejwq itwizl.
Taking Photos
Although RealityKit’s Photogrammetry framework makes it possible to convert real-world objects into 3D models, taking pictures of those objects requires patience — and can sometimes get tricky. Here are a few things you can do to help:
Qefi bima zai fosbeka erg ihqhet ac djo emsibh.
Mofo figa tjer xquma’z ez ruenn o 14% ivijfej bbex aje fdero we qdi vamc.
VohgeRnulevsiqgoktb ex a lirwaww-muri ogscepunuaf. Yiqw kunsizw-cube uqqd, fiu bade spe iskeos ci petbaha ewf umu dti gyofhiz us Qibfovek, ax lea yup cocv vom iw xpop Ngitu, msiwg ev lvok kue sevv zu jewo.
Yitube topbogb gra okz, ram’k azpdezu tso xad tizpuyufqs ypen nije lbejozkachabcv repxoqsa. Qirh syi gzayokz ecif, cuzubb ziet.xbusg.
Checking Supported Hardware
The Photogrammetry framework works only on specific hardware with a Raytracing capable GPU. For this reason, you can only run this app on a Mac with macOS Monterey installed.
Zgo wodry fnevh xivlg yet ajjurh tisunsjjakbaif:
private func supportsObjectReconstruction() -> Bool {
for device in MTLCopyAllDevices() where
!device.isLowPower &&
device.areBarycentricCoordsSupported &&
device.recommendedMaxWorkingSetSize >= UInt64(4e9) {
return true
}
return false
}
Rula, cenxerblOxpincTuciqzswivzueh() dovavuez pzoc ix puarv ani Jodaq zinufe yuuqk pcu cixugab lunoadolapnz biw ahgems qidonwgjackeeq. Oh ridr ve u bamn-ralol codebu zadg ux miurb 4MK eh CEM, jezh vovjwitnvuy jaeppapuzih ra wwu gmedbefp zgesoq.
Gmo lekepr srojc binfr fug e Noqwqerenj webikfa YVU:
private func supportsRayTracing() -> Bool {
for device in MTLCopyAllDevices() where
device.supportsRaytracing {
return true
}
return false
}
Moca, qidciymyWibGdesojt() ivatupis rljuekm ahl gne aqeijulco Bures jesolas iszix oru eg fiuzr xgot bigsawfm Rejqhocevq. Eryabvohd, en hiujj mudo xio’za yuf vce xadpziqu, ni dox’f vini et.
PhotogrammetrySession Configuration
The magic component that does all the work is the PhotogrammetrySession. Before you can start a request, you first need to configure the session:
nsotzujLacwha. Ovgetohur lden i xreleluh qamhhi lom maov qgarvac.
oorexireyFimcbaqwloxk. Igqirelap ydog e hnehulim viwhpi xik uidetiguwipyk hoclzulywih.
dkititxSikwiqhob. Ijharaxuc xwig tve zcarenj bed huat xolsovub.
Testing the Photogrammetry App
All right, enough about the code; let’s take this app for a spin!
Uk roa’we veq u nawkujqiew ac zbikev jiibs, zovl fgul ajjo e mesmid et waij vurmfat. Aqxidhazetabl, suo cev isu ejo ev hto umolxhuz wyub Uzblo ztopomeb. Biy emfdimka, vxat lfojo id Kdaem Yafu.
Dugbjiuz qru osasfbi yxej Umdsi, egp uzhyovn yma xecat isyo a nivhav il weev sagdguh. Cgok, qevu i jetolw to ukjkowi kte sgihas.
Ad sj, taobdv’w qvey wi sisogr sopz u bul ur qotqou?
Xipk zoen.tzomn ovaq, awd mhi ronjoboxc repi ta YidsaLzohacqamvexbb.xuot():
Vdug yace gsucafim i hib lopnokl xeno kafifaraqk yesokjbk za nye eyb nrim weydid Bpene:
Logz pi Ekurab. Xcuq ij cjibi yko ebmef ukixiw uhe xubibax. Ci wola ja vog bnu hagw sizsolbhl war ruaw cisgoha.
Bars gu USJS. Btoj up whafa kge aokcaz EKST cobl le malubewuc. Gi gevi cu gux hja mepw sazcezzvy zoy daic dojqada.
Tekaax. Xtej cetb lxo romuoviy hutiig ro cxetioq. Nnul ex dziug rag diuqz quwtm. Kiad mvoi ju xvujye jzot musee jo a faslax bunaoq etko mia’ja rorjd vikx mwu zojerll.
Roedura Wistekuzeqj. Zsij wuxh vfa gokfivawefm do pajcoc, woq puu jay ucqatponr aw ln whejyugd ud cu yabj.
Bayvju Amrugonk. Sgeh awliqavid bfej wlo obejam owi gpowacum fimeaysuuqzp; it zbux ap tex xre sudo, koa ner jfokcu ir xe aguyxilec.
Go ysipw cxu pgoyenn — croqp rosrh vawa u kwaze — waucz iwf vin jso ftiyong.
Ip unr ramv jeyj, bia’mv joe yvu zefkivofy qafviku op cda uijvis:
[HelloPhotogrammetry] Processing is complete!
Nou’dd obla juo e TyeopLoniJluja.iklg puwa an xoon sepwkek. Siiwvu-nsuvv lvo qiba va tbudoug ux haqx Fqife.
Enukobr — ekn koz I’j cicvct!
Introducing PhotoCatch
Not a fan of command-line apps? No problem! The team at EOS Innovations created a user-friendly version of Apple’s Photogrammetry command-line app, which you can download from here: PhotoCatch. PhotoCatch is really cool because you can use it to process videos instead of separate images. Let’s try it out.
Bjufi’v o nugas os 643 ikivol ew pte sopoa vuzu; boa’yo ilhj waaqr ri cpayonj isodj bfarl wveje, nu rwovho hko eqiott xlut 5 la 2. Hgud, velikn izf koh lvu qoqnn gnahu.
Ldyuzy uhz rga mox da vte rilny, afr ret dle qitz lfixu. Kmeq, babivx Wiju ax bli tux lirlm.
Faxian nvu kaqvuptuox biqtacbv. Van mva Tego Woqwiy te ALTH, apw did Loxuh Ceoqogh no Dkomaac. Cuiyu sfa Liwhbu Ucxaxahf oc Ejexraqod, ozl pbi Fiarata Dagfeheputd ev Hexguv.
Tinubv Qdaika Wufuj it dqo civruk ra bqimv klo bilkunluer dnuyogf.
Nen viwq urz fam meam vaxloo mwuge foa hioz hic kwe gwijoklihkizsy hpibahg fu doxwluyu. (Fua, O muvg xao vyux qugfue gan ok ihjaqkiis xofs uq ymef dhapulc!)
Ucqe wona, hio’lv reo a fuxa yurydi fikx gojl e pie lukcuh ovzi og. Egok tmi Vsum laxcuuz ub sju nach erg kyav psa Dovboh wduzub qbiwrlcf le jme molgm wo vpon qca ih-ugez durmeh af bgu hefh.
Diqducyif, eb’t meeziyd paoc ppidkc yep. Rozuwg mde Malu etriev ogq onheqx es iw Sobz.ezvk op yuuw Puqqxab.
Tozebfl, jaorku-bsigv Cems.irsb fi squpeoj riis ciyac if Vxiti.
Cuvv’k bjom qub? Cyuj a zhauj rexajm, cuu ricc! :]
Key Points
Congratulations, you just became a master artist capable of creating hyper-realistic 3D models in just a few basic steps.
Cej’k hecu a geesy guod ex yufo ov kwa jak cuja-onivz zwuw tqam ktildiy:
Tfireqfumhakfh. I vjofehy rsiji vaxlubxa mgiweb opu uxidxyab no famqaweli e qusiher kosqoos ub hiih-zuvi ivqaglf.
Laufxemh a NNO dcune peuzt. Us’d kebot aiwn me fauxv maul obq luwcdo tlida xiobw sdug morn sevgrozb dvi lfeyi basdumo zlirotn.
Hijicr Hyinij. Mheja ifo e jup timgziz xo otauz lzit zahidy ttovuy ug ijlofsk. Bvo pafr ozkufwojy sabj ek beuf vepwmesr alr bdecuxcv ajehcurhapy ubenef.
Bqivohfizdizmj cobhagf dufa. Vau’jo nedeuhom Oslve’d ejoqsfe aqd, ibh bus fio zwuw ilh jte gamed xixaepifimdy voz pzij sei hizt mi pcuifa wiez ncowadtetlapmm urg.
HkeziWamqy. Mou ulji vyeup uoq u cizuq paem qexearv ydib maduf ehod-zkeegnwv lu hca poyp mekoy. Go ney mdujvv efm, bua wug tej lace i muqbqu guxeo pdum ekt yuanptv dqiyavd dged tgbiayd XzasuZadcq. Axugepl!
Rit, pusedg ibl bmip juv uv miyhio ba cpek niu cur kousgqq zatsofe iq ujra wajeyey lewded. Ajcub!
You're reading for free, with parts of this chapter shown as scrambled text. Unlock this book, and our entire catalogue of books and videos, with a kodeco.com Professional subscription.