iOSDC 2016で発表した際のスライドです。スマートフォンのVR対応についてお話です。
˃ࣸਅɺಈըΛ༻͍ͨ73ରԠΞϓϦͷ։ൃํ๏:VLJOBHB"[VNB!ZVLZ@B[J04%$+BQBO
View Slide
ࣗݾհ:VLJOBHB"[VNB ʢզ࠺ʣJ04ΤϯδχΞ3%େֶͷݚڀһɺϝʔΧʔۈɺϓϩάϥϛϯάߨࢣɺϑϦʔϥϯεΛܦͯɺ%VDLMJOHTגࣜձࣾͰεϚϗ͚73"*Λ։ൃத!ZVLZ@B[TBJJMBCDPNਓೳɺਓੜ໋ɺੜֶɺϓϩάϥϛϯάڭҭɺ ϒϥδϦΞϯॊज़ଞͷڵຯͷର
ൃදͷྲྀΕεϚʔτϑΥϯʹΑΔ73ʹ͍ͭͯˠҰൠɺɺΞϓϦͷཁٻϥΠϒετϦʔϛϯάΞϓϦͷ։ൃྫˠΧϝϥରԠɺ).%ରԠɺ࣮ํ๏
όʔνϟϧϦΞϦςΟʔ(VR)ͱʁޒײ૾ྗΛܹ͠ɺͦ͜ʹͳ͍ͷΛ࡞Γग़͢
VRʹඞཁͳཁૉྟײˠө૾Իͱମײ֮ͷҰகʹΑΓɺຊʹͦͷʹ͍ΔΑ͏ͳͷࡨ͕֮ى͖Δշదੑˠө૾Իͱମײ֮ͷෆҰகʹΑΓɺ73ਲ͍͕ൃੜ͢Δ ͷͰɺ͜ΕΛݮ͢Δ
εϚʔτϑΥϯʹΑΔVRೋ؟ϔουϚϯτσΟεϓϨΠ ).%ʹεϚϗΛணσόΠεͷ͖ͱө૾ͷ͖ΛҰகͤ͞Δ
εϚʔτϑΥϯVRͷಛϋΠΤϯυσόΠε0DVMVT3JGUɺ)5$7JWFɺ1MBZ4UBUJPO73ɺFUDˠ1$ͱͷଓ͕ඞཁɺϦιʔεେɺମҠಈͷݕ͕ՄೳεϚʔτϑΥϯJ1IPOFɺ"OESPJEεϚϗɺFUDˠ1$ͱͷଓෆཁɺϦιʔεখɺମҠಈͷݕ͕͍͠
ΞϓϦͷཁٻྟײˍշదੑͷͨΊʹˠߴ͍ϑϨʔϜϨʔτͱɺटͷಈ͖ʹର͢Δө૾ͷैੑڑͷݕ΄΅ෆՄ ˠମͷҠಈͷݕ͍͠ɻମҐஔΛݻఆͯ͠༻͕લఏϦιʔεʹ༨༟͕ͳ͍ ˠ$16ɺ(16ɺϝϞϦͷແବݣ͍Λۃྗ͑Δ
˃ϥΠϒετϦʔϛϯάΞϓϦͷ։ൃྫ)6(73EFHSFFMJWF˃ϥΠϒಈըΛࢹௌɺ).%ରԠϦΞϧλΠϜͰίϛϡχέʔγϣϯ༻࣮ ˠԻָϥΠϒɺΧϯϑΝϨϯεɺFUD ͔ࠃͰͷར༻
ΞϓϦͷཁٻϥΠϒதɺϦΞϧλΠϜͰҎԼͷॲཧ͕ൃੜಈըͷड৴ɺϐΫηϧόοϑΝͷॲཧɺΧϝϥରԠɺ%ඳըɺϝοηʔδͷૹड৴ɺϞʔγϣϯηϯαɺFUDJ1IPOFͷੑೳΛϑϧʹҾ͖ग़͢͜ͱ͕ඞཁ
࣮ํ๏ͷબఆ(PPHMF734%,ˠ࣮͕؆୯͕ͩɺΧελϚΠζੑ͕͍6OJUZ ˠϢχόʔαϧͳ։ൃڥͷͨΊɺJ1IPOFͷੑೳΛϑϧʹҾ͖ग़͢ͷ͍͠
࣮ํ๏ͷબఆ4DFOF,JUˠߴϑϨʔϜϨʔτͰͷಈը࠶ੜ͕͍͠ɻ0QFO(-&4(-,JU ˠѻ͍͕͍͕͠ɺύϑΥʔϚϯεΧελϚΠζੑ͕ߴ͍ADOPTED
ॲཧͷྲྀΕͷུ֓ϥΠϒσʔλͷड৴J1IPOFεΫϦʔϯʹඳը಄ͷ͖ͷݕग़֤ॲཧϚϧνεϨουͰ࣮ߦ͞ΕΔٿͷ໘ʹςΫενϟΛషΓ͚Ұఆִ࣌ؒؒͰ࣮ߦࢹઢϕΫτϧͷճస
ςΫενϟͷషΓ͚,PEBL41,%มΛߦ͍ ٿͷ໘ʹషΓ͚Δx = R * sin(φ) * cos(θ)y = R * cos(φ)z = R * sin(φ) * sin(θ)Γൈ͖࠲ඪมݩը૾4JOHMFpTIFZFD8BMUFSθφ
ςΫενϟͷషΓ͚3JDPI5IFUB4ݩը૾%VBMpTIFZF%มΛߦ͍ɺͦΕͧΕ ٿͷ໘ʹషΓ͚Δx = R * sin(φ) * cos(θ)y = R * sin(φ) * sin(θ)z = R * cos(φ)Γൈ͖ճస࠲ඪม
಄ͷ͖ͷݕग़MFUNPUJPO.BOBHFS$..PUJPO.BOBHFS NPUJPO.BOBHFSEFWJDF.PUJPO6QEBUF*OUFSWBMNPUJPO.BOBHFSTUBSU%FWJDF.PUJPO6QEBUFT5P2VFVF /40QFSBUJPO2VFVF \ EFWJDF.BOBHFS FSSPSJOMFUZBXEFWJDF.BOBHFSBUUJUVEFZBXMFUQJUDIEFWJDF.BOBHFSBUUJUVEFSPMMMFUSPMMEFWJDF.BOBHFSBUUJUVEFQJUDI^$PSF.PUJPOΛར༻ͯ͠σόΠεͷ͖ ಄ͷ͖Λऔಘ
ࢹઢϕΫτϧͷճసD+VBOTFNQFSFΨ = yawθ = pitchΦ = rollࢹઢϕΫτϧΛճస͠ࢹઢͷઌΛεΫϦʔϯʹඳը͢ΔΫΥλʔχΦϯʢ࢛ݩʣͷར༻͕ඞཁ
ϚϧνεϨουઃܭ༷ʑͳॲཧΛฒྻͰߦ͍ɺϘτϧωοΫ͕ੜ͡ͳ͍Α͏ʹ͢Δಈըσʔλͷड৴ϐΫηϧόοϑΝͷॲཧςΫενϟͷషΓ͚಄ͷ͖ͷݕग़ࢹઢϕΫτϧͷઃఆεΫϦʔϯʹඳըγϦΞϧΩϡʔ༏ઌը໘ͷϦϑϨογϡͱಉظ௨৴ͱಉظγϦΞϧΩϡʔ༏ઌߴϞʔγϣϯηϯαͱಉظ
GPUͷνϡʔχϯά%FCVHOBWJHBUPS'14*OTUSVNFOUT0QFO(-&4"OBMZTJTෛՙͷେ͖͍ॲཧແ͍͔ʁϝογϡͷܗঢ়ద͔ʁFUD
࣮ԋಈը -ѱ͍ྫ-ϚϧνεϨουͷઃܭ͕ෆదύϑΥʔϚϯεͷνϡʔχϯά͕ेͰͳ͍ྟײ͕͍ɺ73ਲ͍͕ൃੜɺ͕ߴԹ
࣮ԋಈը -ྑ͍ྫ-ϚϧνεϨουͷઃܭ͕దύϑΥʔϚϯεͷνϡʔχϯά͕ेྟײ͕ߴ͍ɺ73ਲ͍͕ൃੜ͠ͳ͍ɺ͕ߴԹʹͳΒͳ͍
·ͱΊύϑΥʔϚϯεͷ্ˠ$16ɺ(16ͷ࠷దԽ%ඳըˠඳ͖͍ͨΠϝʔδΛࣜԽ͢Δྟײ͕͋ΓɺշదͳεϚʔτϑΥϯ73ͷͨΊʹϚϧνεϨουˠෳͷॲཧΛฒߦͯ͠ߦ͍ɺಛఆͷεϨου͕ϘτϧωοΫʹͳΔͷΛ͙