Sh4der Jockey: a tool for realtime visual performances using Rust and OpenGL

Описание к видео Sh4der Jockey: a tool for realtime visual performances using Rust and OpenGL

slide: https://docs.google.com/presentation/...

Sh4der Jockey というリアルタイムVJツールを紹介します。このツールはDJの音楽に合わせて映像を出力するためのツールですが、一般的なVJツールのResolumeやVDMXのようにVJ素材を利用のではなく、リアルタイムCGを使って映像をシェーダーと呼ばれるGPUプログラムで定義して、その場でレンダリングします。シェーダーを使った映像表現に取り組んでいるコミュニティはすでにいくつか存在しており、Algoraveやデモシーンといった区分けで存在しています。そのようなコミュニティに参加している背景から、VRChatでのVJ表現を行うためにその用途に特化したシェーダーコーディング環境を製作しました。

その結果生まれた仕様として複数のシェーダーを組み合わせてひとつのレンダリングパイプラインを構築する、といったパラダイムがこのツールの中心にあります。複数のシェーダーを組み合わせることで頂点情報を利用した絵とレイマーチングなどのスクリーンスペース表現を組み合わせて利用することが可能になったり、Compute Shaderを使ってパーティクルの情報などを計算して頂点シェーダーで描画する、またはレイトレーシング時に途中計算の蓄積と表示を分ける、など様々な表現が可能になります。他にもステレオオーディオ入力、NDIを用いたリアルタイム映像入力、MIDIの動的バインディング等のVJ用の機能を搭載しています。

このようなニッチな機能を実装していると、技術的な問題に頻繁に衝突します。欲しい機能を満たすcrateが存在しなかったり、パイプラインの構築を非同期にすることでフレームレートを維持しなければいけなかったり、フレームレートを維持するためにマルチスレッド化を随所で頑張ったりしています。そういった開発時の苦労面も紹介できたらと思います。

Комментарии

Информация по комментариям в разработке