GLSLã§VJãã©ã¤ãã³ã¼ãã£ã³ã°ãã§ããAtomããã±ã¼ã¸ãä½ãã¾ããã
ãã®åã VEDA !!!
ãã®è¨äºã§ã¯ãVEDAã®ä½¿ãæ¹ãæ©è½ã説æãã¾ãã
ç®æ¬¡
ãã®ããã±ã¼ã¸ã§ã§ãããã¨
Atomã§ãããªVJãã§ãã¡ããã¾ãï¼
My first VJ live coding pic.twitter.com/j66MFGZfFO
— amagi (@amagitakayosi) 2017å¹´7æ31æ¥
ãã®åç»ã¯ãå
æ¥åã VEDA ã使ã£ã¦VJããæã®ãã®ã§ãã
åç»ç´ æãç»åç´ æããã¼ããã¤ã¤ãGLSLã§å å·¥ãããåããä»ããããã¦ãã¾ãã
åç»ç´ æããã¼ããã¦MIDIã³ã³ããã¼ã©ã¼ã§æä½ããã®ã§ãã³ã¼ããã»ã¼æ¸ããã«VJãããã¨ãå¯è½ã§ãã
GLSLã¯OpenGLãWebGLã¨ãã£ã3Dã°ã©ãã£ãã¯ã§ç¨ããããè¨èªã§ãã
GPUã§å®è¡ããããããé«ç»è³ªãªã°ã©ãã£ãã¯ããªã¢ã«ã¿ã¤ã ã«æç»ã§ããã¨ããç¹é·ãããã¾ãã
Atomã«ã¯TidalCyclesçãã©ã¤ãã³ã¼ãã£ã³ã°ã§é³æ¥½ãæ¼å¥ããããã±ã¼ã¸ãããã¤ãåå¨ãã¦ããã®ã§ãçµã¿åãããã¨ä¸äººã§DJ/VJ両æ¹ã§ãããããã¾ãã
TidalCyclesã«ã¤ãã¦ã¯ä»¥åè¨äºãæ¸ãã¾ããã
æ©è½ä¸è¦§
VEDAã¯ãGLSLãã¡ã¤ã«ãå®è¡ãã¦Atomã®èæ¯ã«è¡¨ç¤ºããããã±ã¼ã¸ã§ãã
linterãautocompleteã¨ãã£ãæ¢åã®ããã±ã¼ã¸ãå©ç¨ããå¿«é©ãªã³ã¼ãã£ã³ã°ç°å¢ãå®ç¾ãã¦ãã¾ãã
GLSLå®è¡ç°å¢ã¨ãã¦ã¯ã以ä¸ã®ãããªæ©è½ããã£ã¦ãã¾ãã
- GLSL Sandboxäºæã®
uniform
å¤æ° - é³å£°å ¥å対å¿
- MIDIå ¥å対å¿
- ä»»æã®ç»å/åç»ããã¼ãã§ãã
ã¤ã³ã¹ãã¼ã«
glslangValidatorã®ã¤ã³ã¹ãã¼ã«
VEDA ã®åä½ã«ã¯ glslangValidator
ãå¿
è¦ã§ãã
å
ã«ã¤ã³ã¹ãã¼ã«ãã¾ãããã
macOSã®å ´å
macã®å ´åã¯homebrewã§ã¤ã³ã¹ãã¼ã«ã§ãã¾ãã
homebrewãå
¥ã£ã¦ããªãå ´åã¯ãã¾ã以ä¸ã®ãã¼ã¸ã«å¾ã£ã¦ã¤ã³ã¹ãã¼ã«ãã¦ãã ããã
Homebrew — The missing package manager for macOS
ãã®å¾ãã¿ã¼ããã«ã§ brew install glslang
ãå®è¡ãã㨠glslangValidator
ã³ãã³ãã使ããããã«ãªãã¾ãã
glslangValidatorãèªåã§ãã«ãããå ´åã¯ã21-3ããã®è¨äºãåèã«ãã¦ãã ããã
(21-3ãããããã¨ããããã¾ãï¼)
glslangValidator
ã¯Vulkan SDKã«å«ã¾ãã¦ãã¾ãã
ãã¡ãããVulkan SDKãã¤ã³ã¹ãã¼ã«ãã¾ãããã
LunarG® Vulkan™ SDK - What's in the SDK - Where to Download
Windowsã®å ´å㯠C:/VulkanSDK/(ãã¼ã¸ã§ã³çªå·)/Bin/
ã« glslangValidator
ãã¤ã³ã¹ãã¼ã«ãããã®ã§ããã¡ãã«ç°å¢å¤æ°PATHãéãã¦ãã ããã
VEDAæ¬ä½ã®ã¤ã³ã¹ãã¼ã«
Atomã®è¨å®ç»é¢ãã¾ã㯠apm ãã veda
ãã¤ã³ã¹ãã¼ã«ãã¾ãã
Failed to require...
ã¨ããã¨ã©ã¼ãåºãæ
å ´åã«ãã£ã¦ã¯ä»¥ä¸ã®ãããªã¨ã©ã¼ã表示ãããããããã¾ããã
Failed to require the main module of 'glsl-livecoder' because it requires an incompatible native module. Run `apm rebuild` in the package directory to resolve.
ãã®å ´åã¯ãç»é¢ä¸é¨ã®è«ã¢ã¤ã³ã³ãã¯ãªãã¯ãã Rebuild Packages
ãå®è¡ãã¦ãã ããã
使ãæ¹
VEDAãã¤ã³ã¹ãã¼ã«ããã¨ãAtomã«ä»¥ä¸ã®ã³ãã³ãã追å ããã¾ãã
Veda:Toggle
- VEDA ãèµ·å/åæ¢ãã
Veda:Load Shader
(key:ctrl-enter
)- ç¾å¨ã®ã¿ãã®GLSLãã¡ã¤ã«ãå®è¡ãã
Veda:Watch Shader
(key:ctrl-shift-enter
)- ç¾å¨ã®ã¿ããç£è¦ããå 容ãå¤æ´ããããèªåã§å®è¡ãã
Veda:Watch Active Editor
(key:ctrl-alt-enter
)- ã¢ã¯ãã£ããªã¿ããç£è¦ãã
watch-shader
ãå®è¡ãã
- ã¢ã¯ãã£ããªã¿ããç£è¦ãã
Veda:Stop Watching
(key:ctrl-.
)watch-shader
ã¨watch-active-editor
ãåæ¢ãã
å®éã«ãµã³ãã«ã³ã¼ããæå ã§åããã¦ã¿ã¾ãããã
ã¾ããglsl-livecoder-examplesãcloneããAtomã§éãã¾ãã
git clone https://github.com/fand/glsl-livecoder-examples
cd glsl-livecoder-examples
atom .
ã³ãã³ããã¬ãããéããVeda:Toggle
ãå®è¡ãã¦ãã ããã
VEDAãèµ·åããããã©ã«ãã®GLSLã³ã¼ããè©ä¾¡ããã¾ãã
ãã®ãã£ã¬ã¯ããªã«ã¯ãµã³ãã«ã³ã¼ãã沢山å
¥ã£ã¦ãã¾ãã
試ãã« sample2.frag
ãéãã ctrl-enter
ã§å®è¡ãã¦ã¿ã¾ãããã
GLSLãå®è¡ããã次ã®ãããªç»é¢ã«ãªãã¯ãã§ãã
GLSLãæ¸ãæãã¦å®è¡ããã¨ãããã«åæ ããããã¨ãã§ãã¾ãã
ä¾ãã°ã7è¡ç®ã« p *= fract(time);
ã追å ãã¦å®è¡ããã¨ãç»é¢å
¨ä½ãã¢ãã¡ã¼ã·ã§ã³ããããã¨ãã§ãã¾ãã
次ã¯åç»ã®ãã¼ãã試ãã¦ã¿ã¾ãããã
video.frag
ãéã㦠ctrl-enter
ã§å®è¡ããã¨ãè¤æ°ã®åç»ãããã¯ã¹ãããç»é¢ã表示ããã¾ãã
åç»ã®ãã¹ã¯ .liverc
ã§æå®ãã¦ãã¾ãã
.liverc
ãç·¨éãããã¨ã§ãä»»æã®ç»åãåç»ããã¼ããããã¨ãã§ãã¾ãã
.liverc
ãä¿åããã¨å³åæ ãããã®ã§ãåç»ã®å
¥ãæ¿ããç°¡åã«è¡ãªãã¾ãã
// .liverc { "IMPORTED": { // åç»ãã¡ã¤ã«ã¯ videos/ å ã«ã«ä¿åããã¦ãã "video1": { "PATH": "./videos/1.mp4", }, "video2": { "PATH": "./videos/2.mp4", }, "video3": { "PATH": "./videos/3.mp4", }, }, }
ãã¡ãããåç»ãGLSLã§å å·¥ãããã¨ãã§ãã¾ãï¼
21è¡ç®ã® // uv *= uv;
ã®ã³ã¡ã³ããå¤ãã¦ãå度 ctrl-enter
ãã¦ãã ããã
ç»é¢å
¨ä½ãå·¦å³å¯¾è±¡ã«ã°ãã£ãã¨æªãã§è¡¨ç¤ºãããã¨æãã¾ãã
以ä¸ãããã¾ããªä½¿ãæ¹ãç´¹ä»ãã¾ããã
é³å£°å
¥åãMIDIå
¥åã®ä½¿ãæ¹ã«é¢ãã¦ã¯ããããã audio.frag
㨠midi.frag
ãåèã«ãã¦ãã ããï¼
ä»å¾ã®éçº
ä»å¾ã¯ä»¥ä¸ã®issueã«åãçµãã§ãããã¨æãã¾ãã
- ããã©ã¼ãã³ã¹åä¸
- ã«ã¡ã©å ¥å対å¿
- glslify対å¿
ä»ã«æ©è½ã®ãªã¯ã¨ã¹ãããã°å ±åãããã°ãTwitterãGitHubã§ãæ°è»½ã«ãé£çµ¡ãã ããï¼
ããã§ã¯ãããVJã©ã¤ããï¼
ä¿®æ£å±¥æ´
- 2017/12/20: ããã±ã¼ã¸åãVEDAã«å¤æ´ãããããä¿®æ£ãã¾ããã