Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GLSLでVJをした話

Avatar for がむ がむ
November 14, 2025

 GLSLでVJをした話

レイトレ合宿11のセミナーでGLSLライブコーディングによるVJについて話しました。
セミナーのテーマの分散を増やすことができました(意訳: レイトレとの関連は薄い内容です)。

Google Slides版
https://docs.google.com/presentation/d/1sz0vy8PFXYt1glvGIbGwJN8T8HusQhzgnt21Md0ztPk/edit?slide=id.gbd0ef54b81_0_79#slide=id.gbd0ef54b81_0_79

Avatar for がむ

がむ

November 14, 2025
Tweet

More Decks by がむ

Other Decks in Programming

Transcript

  1. 今年2回VJをやった • draw(tokyo); #2 ‣ 2025/3/22 渋谷Circus Tokyo ‣ DJ

    とうふおさおい(@toufu0301) ‣ ※VJデビュー • draw(tokyo); #3 ‣ 2025/10/12 渋谷clubasia ‣ DJ さだきち(@sadakkey) 5 2回ともほぼ同じシステム構成(後述)でVJ
  2. 8

  3. 9

  4. Sh4derJockey • GLSLライブコーディングのVJ専用ソフトウェア ‣ Rust実装🦀 ‣ https://github.com/slerpyyy/sh4der-jockey • GLSLファイルのホットリロードと描画機能 ‣

    テキストエディター機能はない ‣ 任意のテキストエディタと組み合わせて使う • 特徴 ‣ マルチパスのFragment ShaderとComputeShader ‣ 任意のテクスチャ使用可能 ‣ MIDIコンをuniformとして渡せる ‣ FFTで音楽の波形を解析 10
  5. 音楽とBPM同期する仕組み • 課題:対応するプロトコルが違う ‣ Sound2Light • OSC(OpenSound Control)でBPM情報を出力 • TCP上でデータをやとりするプロトコル

    ‣ Sh4derJockey • MIDIコントローラー経由でしか値を取得できない • 解決策:OSCからMIDIに変換するツールをnode.jsで実装 ‣ https://github.com/gam0022/osc-to-midi.js ‣ MIDIだと7bitの値しか送れないので、2チャンネルにpacking • 127を超えるBPMに対応(14bitの整数) 12
  6. MIDIコンのレイアウト 15 0 キック 1 2D反転 2 2D合成 3 激

    4 輪郭 5 赤黒 6 7 8 9 S2D 10 S3D 11 Sメーター 12 宇宙 13 14 15 TC Wall 16 TC Shader 17 TC Warning 18 WH TUNNEL 19 WH SEA 20 WH SNOW 21 CAM1 22 CAM2 23 CAM3 24 鏡X 25 鏡Y 26 万華 27 鏡円 28 UV clamp 29 TC AUTO 1 30 TC AUTO 2 31 TC AUTO 3 0 点滅 1 BPM 調整 2 残像 3 時間Glitch 4 Glitch Mute 5 PRM1 6 PRM2 7 PRM3 8 glitch 9 voronoi 10 cyclic 11 slice 12 xshift 13 invert 14 lens 15 END UV加工系 ポストエフェクト シーン切り替え カメラ 切り替え ポスト エフェクト 特殊シーン 切り替え 色収差系ポストエフェクト シーンごとに意味が変わる パラメーター 赤:スライダー 青:ボタン
  7. MIDIコンのレイアウト 16 0 キック 1 2D反転 2 2D合成 3 激

    4 輪郭 5 赤黒 6 7 8 9 S2D 10 S3D 11 Sメーター 12 宇宙 13 14 15 TC Wall 16 TC Shader 17 TC Warning 18 WH TUNNEL 19 WH SEA 20 WH SNOW 21 CAM1 22 CAM2 23 CAM3 24 鏡X 25 鏡Y 26 万華 27 鏡円 28 UV clamp 29 TC AUTO 1 30 TC AUTO 2 31 TC AUTO 3 0 点滅 1 BPM 調整 2 残像 3 時間Glitch 4 Glitch Mute 5 PRM1 6 PRM2 7 PRM3 8 glitch 9 voronoi 10 cyclic 11 slice 12 xshift 13 invert 14 lens 15 END 赤:スライダー 青:ボタン
  8. 困ったこと② • FPSが出ない😨 ‣ 原因:VJソフトの多重起動 • きなこもちさんのノートPCレンタルしていた • それぞれでのユーザでログインしてVJソフトを起動していた •

    GPUリソースを奪い合うことに ‣ 解決策 • その場で内部解像度を下げた そもそもPCのスペック不足もあった 2回目のVJのときはシェーダーを最適化 19