Presented at TOPLAP Japan Vol.2 workshop at Kyoto
amagitakayosiGLSL LivecodingWorkshop
View Slide
͡Ί·ͯ͠ʂʜʜͷલʹ
ߨٛͷ४උΛ͓ئ͍͠·͢w ͜ͷεϥΠυͷ63-IUUQTCJUMZS"MEFw αϯϓϧϑΝΠϧΛμϯϩʔυͯ͠Լ͍͞IUUQTCJUMZ)[H#Sw ࣍ʹɺ7&%"ͷΞοϓσʔτΛ͓ئ͍͠·͢
7&%"ͷΞοϓσʔτ w $NE Ͱઃఆը໘Λ։͘
7&%"ͷΞοϓσʔτ w 6QEBUFϘλϯΛԡ͢
7&%"ͷΞοϓσʔτ w "UPNΛ࠶ىಈ
7&%"Λىಈͯ͠ΈΑ͏w $NE4IJGU1ˠlWFEBUPHHMFzΛ࣮ߦ
w $NE4IJGU1ˠlWFEBUPHHMFzΛ࣮ߦ
Α͋͘ΔΤϥʔw lHMTMBOH7BMJEBUPSOPUGPVOEzΈ͍ͨͳౕw HMTMBOH7BMJEBUPSͷΠϯετʔϧΛ͓ئ͍͠·͢w IUUQTWFEBHMJOTUBMM MBOHKBHMTMBOHWBMJEBUPSw ӈԼʹϚʔΫ͕ͰͯΔ࣌w ϚʔΫΛΫϦοΫͯ͠ɺ3FCVJME࠶ىಈ͢ΔͱΔͣ
@amagitakayosi
GLSLͰVJͯ͠·͢https://twitter.com/mactkg/status/944246499818422272
(-4-ྺw (-4-ʹΑΔ7+ΛݟͯিܸΛड͚Δw 7&%"࡞։࢝w ϥΠϒίʔσΟϯά7+σϏϡʔw ౦ژ/PEFֶԂࡇw "MHPSBWF5PLZP
(-4-ྺw (-4-ʹΑΔ7+ΛݟͯিܸΛड͚Δw 7&%"࡞։࢝w ϥΠϒίʔσΟϯά7+σϏϡʔw ౦ژ/PEFֶԂࡇw "MHPSBWF5PLZPͬͯΈΕҙ֎ͱ͙͢ग़དྷΔΑ͏ʹͳΓ·͢ʂ
ࠓͷϝχϡʔw (-4-֓આw ϑϥάϝϯτγΣʔμʔجૅw ಈըʹΤϑΣΫτΛ͔͚Δw γΣʔμʔͱͷ߹ͤw ͕࣌ؒ͋ΕԻೖྗ
εϩʔΨϯΘ͔Βͳͯ͘ؾʹ͠ͳ͍w ࡉ͔͍ܭࢉͱ͔ޙͰࢿྉݟΕ͍͍Ͱ͢w ʮϥΠϒίʔσΟϯάͰ͜Μͳ͜ͱ͕ग़དྷΔΜͩͳʙʯΈ͍ͨͳࣄΛײ͡Δͷ͕େࣄ
GLSL
(-4-ͱw 0QFO(-8FC(-ͷγΣʔμʔݴޠw ϒϥβ্Ͱը૾ॲཧͨ͠Γw 7+ιϑτͷΤϑΣΫτͱͯ͠ར༻͞ΕͨΓw ϥΠϒίʔσΟϯά7+ͰΑ͘ΘΕΔ
γΣʔμʔͱw %άϥϑΟοΫʹ͓͍ͯɺମͷҐஔ ϥΠςΟϯάɺ৭ͳͲΛܭࢉ͢ΔϓϩάϥϜw γΣʔμʔݴޠଞʹ)-4- %JSFDU9 .FUBM J04w ߦྻͳͲɺը૾ॲཧʹศརͳ͕ؔଟ͍w (16ʹΑΔߴͳॲཧ͕Մೳ
γΣʔμʔΞʔτw (-4-(16ͷύϫʔΛϑϧ׆༻Ͱ͖Δw ʮ(-4-͚ͩͰෳࡶͳάϥϑΟοΫදݱΛ ɹඳըͰ͖ΔͷͰʁʯw ͳ͔ͥ୯ମͰΞχϝʔγϣϯΛ࡞ͬͨΓ ϥΠϒίʔσΟϯά7+͢Δਓ͕ݱΕΔ
ࢀߟLJOUSPl&MFWBUFEzIUUQTXXXZPVUVCFDPNXBUDI WK#W#NJ5SP
γΣʔμʔͷछྨw γΣʔμʔw ςοηϨʔγϣϯγΣʔμʔʢࠓΒͳ͍ʣw δΦϝτϦγΣʔμʔʢࠓΒͳ͍ʣw ϑϥάϝϯτγΣʔμʔ
γΣʔμʔw ϞσϧͷͷҐஔΛܭࢉ͢ΔγΣʔμʔw ΧϝϥͷҐஔɺΩϟϥΫλʔͷҐஔ͔Β ͕ը໘ͷͲ͜ʹདྷΔ͔Λܭࢉ͢Δw ҰͭҰͭʹର࣮͠ߦ͞ΕΔ
ϑϥάϝϯτγΣʔμʔw ໘ͷ৭Λܭࢉ͢ΔγΣʔμʔw ޫݯͷҐஔใ͔ΒӨΛܭࢉͨ͠Γw ςΫενϟΛషͬͨΓw ϐΫηϧҰͭҰͭʹର࣮͠ߦ͞ΕΔw 'VMM)% GQTͩͱճඵ
ɹɹ7&%"w "UPNΤσΟλʔ্Ͱಈ࡞͢Δ (-4-ϥΠϒίʔσΟϯάڥw ฤूதͷ(-4-ίʔυΛධՁͯ͠ ΤσΟλʔͷഎܠʹඳը͢Δw γΣʔμʔϑϥάϝϯτγΣʔμʔʹରԠ
ୈҰষϑϥάϝϯτγΣʔμʔجૅ
͜ͷষͷඪw ϑϥάϝϯτγΣʔμʔ͚ͩͰਤܗΛඳ͘w (-4-ͷجૅจ๏ΛֶͿ
௨ৗͷ%$(w ઍʙສݸͷͰཱମΛදݱ͠ɺ ϑϥάϝϯτγΣʔμʔͰ৭Λ͋ͯΔ
ϑϥάϝϯτγΣʔμʔΞʔτw ࡾ֯ܗݸγΣʔμʔͰશͯͷମΛදݱ ʢ൘ϙϦʣ
αϯϓϧϑΝΠϧΛ։͜͏
TUFQGSBHΛ࣮ߦͯ͠ΈΑ͏w $USM&OUFSͰ࣮ߦ
ίϝϯτΛ֎࣮ͯ͠ߦw $USMͰɺͦͷߦͷίϝϯτPOP⒎Ͱ͖·͢
͜ͷลΛͻͱͭͣͭίϝϯτ֎࣮ͯ͠ߦNBD$NEXJO$USM
ͷछྨw JOUw qPBUුಈখw WFDdWFDϕΫτϧ
JOUw $ݴޠͳͲͰ͓ͳ͡Έw AJOUBAͱॻ͘w ͋Μ·ΘΜw GPSϧʔϓͷΠϯσοΫε͘Β͍
qPBUුಈখw AqPBUBAຢɹɹɹɹɹɹͱͱॻ͘w ϑΝΠϧઌ಄ͷɹɹɹɹɹ qPBUͷਫ਼Λࢦఆ͍ͯ͠Δw MPXQ NFEJVNQ IJHIQͷॱʹਫ਼͕ߴ͘ͳΔw ͍͍ͩͨNFEJVNQͰे
WFD WFD WFDϕΫλʔw AqPBUBɹɹɹɹPSw ͱॻ͍ͯ0, ʢத͕JOUʹͳΔ༁Ͱͳ͍ʣw ɹɹɹɹɹɹɹɹͱ͢Δͱ CWFD ʹͳΔ TXJ[[MF
ϑϥάϝϯτγΣʔμʔͷྲྀΕw γΣʔμʔϐΫηϧຖʹ࣮ߦ͞ΕΔw [email protected]'SBH$PMPSʹɺͦͷϐΫηϧͷ৭Λ WFD S H C BܗࣜͰೖΕͯ͋͛Δ
7&%"Ͱ͑Δมw [email protected]'SBH$PPSEϐΫηϧͷҐஔw VOJGPSNมw qPBUUJNF7&%"ىಈ͔Βͷܦա࣌ؒ ඵw WFDSFTPMVUJPOΟϯυͷαΠζ
TUFQGSBHΛ࣮ߦͯ͠ΈΑ͏
ୈೋষಈըʹΤϑΣΫτΛ͔͚Δ
͜ͷষͷඪw ಈըΛ࠶ੜ͠ΤϑΣΫτΛ͔͚Δํ๏Λ֮͑Δw (-4-ͰԿΛͲ͏ͨ͠ΒͲ͏ͳΔͷ͔ɺ ͳΜͱͳ͘ײ֮Λ͔ͭΉ
WJEFPGSBHΛ࣮ߦͯ͠ΈΑ͏w ͭͷಈըΛςΫενϟʹಡΈࠐΜͰ͍Δ
TBNQMFS%ςΫενϟw ɹɹɹɹɹɹɹɹɹJOUBAͱॻ͘ͱ ςΫενϟͷ࠲ඪVWͷΛऔಘͰ͖Δw VW ʙ ͷൣғ
ಈըͷΓସ͑ํखಈw *.1035&%ΛίϝϯτΞτͰΓସ͑w ۂͷ͍͍ײ͡ͷͱ͜Ͱ$USM&OUFSw Ұ൪͍͍ͧ͢ʂʂʂ
ಈըͷΓସ͑ํࣗಈw UJNFΛͬͯྑ͍ײ͡ʹΓସ͑Δw lJG NPE UJNF zͨ͠Γw [email protected]'SBH$PMPSTJO UJNFzͨ͠Γw WJEFPGSBH͜ͷύλʔϯͰ͢Ͷ
ಈըͷΓସ͑ํ֎෦ೖྗw Իʹ߹ΘͤͨΓɺ .*%*04$ೖྗΛͬͨΓw ্ख͘Ͱ͖Δͱ͔͍͍ͬͧ͜ʂʂʂ
GYGSBHΛ࣮ߦͯ͠ΈΑ͏
7+ͰΑ͋͘ΔΤϑΣΫτw ճసw Ώ͕Έw ສ՚ڸͬΆ͍ͭw 3(#ͣΒ͠w ࠲ඪͣΒ͠
σΟεϓϨΠεϝϯτϚοϓw WJEFPͷͰɺWJEFPͷදࣔҐஔΛ·ͤΔ
ୈࡾষγΣʔμʔ
͜ͷষͷඪw γΣʔμʔͷॻ͖ํΛ֮͑Δw ઢʹΑΔॳาతͳදݱΛֶͿ
γΣʔμʔʹΑΔγΣʔμʔΞʔτw IUUQTWFSUFYTIBEFSBSUDPN͕ൃʁw %σʔλΛ༻͍ͣɺγΣʔμʔ͚ͩͰ ͷҐஔΛܭࢉ͢Δw WBSZJOHWFDDPMPSͰͷ৭Λઃఆw WBSZJOHมγΣʔμʔ͔ΒϑϥάϝϯτγΣʔμʔͤΔม
WFSUWFSUΛ࣮ߦͯ͠ΈΑ͏
γΣʔμʔͷྲྀΕw [email protected]ʹɺͦͷͷ࠲ඪΛ WFD Y Z [ XܗࣜͰೖΕͯ͋͛Δw Xؾʹ͠ͳͯ͘ྑ͍Ͱ͢ʢৗʹͰʣw [email protected][Fʹɺͷେ͖͞ΛೖΕΔ
γΣʔμʔͰԁΛඳ͘w WFSUFY*Eͷ൪߸w WFSUFY$PVOUͷ૯w WFSUFY*E͔Β֯Λܭࢉͯ͠ɺTJODPTͰ ࠲ඪΛܭࢉ͢Εྑ͍w WFSUFY*EWFSUFY$PVOUʙͱͳΔ
WFSUWFSU͕ԁΛඳ͘
ϓϦϛςΟϒλΠϓw ίϝϯτͰWFSUFY.PEFΛมߋͰ͖Δw 10*/54 -*/&4 53*"/(-&4ͳͲw งғؾ͕ΨοͱมΘͬͯΓ্͕Δͧʂʂ
WFSUWFSU࠷ऴܗଶ
QBSUJDMFGSBHղઆw γΣʔμͰਤܗΛඳ͍ͯ ϑϥάϝϯτγΣʔμͰΤϑΣΫτ͔͚ͯΔw WFSUFY.PEFͰඳըϞʔυΓସ͑w 53*"/(-&4Ҏ֎ͷͱ͖WFSUFY$PVOUΛ ૿͠·͠ΐ͏ʢຯͳͷͰʣ
ୈ࢛ষԻೖྗΛར༻͢Δ
͜ͷষͷඪw ԻʹԠ͢ΔΞχϝʔγϣϯΛֶͿw ֎෦ೖྗΛ༗ޮ׆༻͢Δํ๏Λߟ͑Δ
7&%"Ͱ֎෦ೖྗΛ͏w ϑΝΠϧͷઌ಄ʹ ͳͲΛՃw NJEJͷ࣌w Χϝϥͷ࣌
Իೖྗw ҎԼͷVOJGPSN͕͑·͢w qPBUWPMVNFϘϦϡʔϜw TBNQMFS%TBNQMFTܗw TBNQMFS%TQFDUSVNपଳຖͷڧ͞
BVEJPGSBHΛ࣮ߦ
BVEJPGSBHΛ࣮ߦVolumeSpectrumSamples: ܗ
PCKNUMGSBHશ෦Γ
ͦͷଞͷೖྗw ϚεɺΩʔϘʔυɺ.*%* 04$ 8FCΧϝϥɺήʔϜύουʹରԠ
ԋशλΠϜ
࠷ޙʹw (-4-ͷָ͠͞ɺϥΠϒίʔσΟϯάͷָ͕͠͞ΘΕ͍͍ͳͱࢥͬͯ·͢⚡w ͥͻ7+ʹઓͯ͠Έ͍ͯͩ͘͞ʂw 7&%"ͷ࣭ײɺ৽ػೳͷϦΫΤετ5XJUUFSPS(JU)VCͰ͓ؾܰʹͲ͏ͧʂ
ࢀߟϦϯΫw 7&%" IUUQTWFEBHMw 5IF#PPL0G4IBEFST IUUQTUIFCPPLPGTIBEFSTDPN MBOKQw XHMEPSHc(-4- IUUQTXHMEPSHEHMTM