GLSL出力ツール(グラフィック用+音楽用)公開。

GLSLで描画するためのツール

ツール自作しました。
GLSLを書いてパラメータ調整を行うためのツールです。

できることはShadertoyやGLSLSandboxとそれほど変わりませんが、
実行ファイルのバージョンと合わせたりパラメータ調整を行うのに役立つかと思います。
これOpenGL3で動く想定だったりしますし。(内部では2も動くっぽい)

必要であればソースコードも公開したいのですがそれは別の機会に。

ダウンロードURL:
http://machiaworx.s351.xrea.com/tools/GLSLmakeTool.zip

下記のような画面が出ます。
(カラフルなのはGLSLでレイマーチングした結果で、重要なのは右側のGUIになります)

これは、GLSLのコード上にフックした変数を変更するためのGUIを表示して、
ベストな配置や角度・各種パラメータを定義するのがメインの使い方になります。

あとソースコードを書いて即座に反映する機能も備えており、
イテレーションを回すのに有効なツールになっております。

曲書くためのツール

ついでにGLSLで曲を書くためのツールも公開しておきます。

ダウンロードURL:
http://machiaworx.s351.xrea.com/musics/GLSL_synth_make.zip

急ぎ実装しただけなので上記のツールよりは機能が少ないですが、
イテレーションできるのは重要かと思います。

特にGLSLでシンセを作るのはノウハウがなさすぎるので、こういうところで情報を残しておくのがいいかな、と。

そもそもこれらのツールで何やってんの

デモシーンにおいて4k introを作る上であったほうが良いものを揃えました。
(GPUでグラフィックとサウンドを用意する想定。他の方法は別途ツールを作る必要がある)

今の主流としてレイマーチングで描画するケースが存在する(VRChatでもシェーダ芸のひとつとして定義されてるそうで)
で、シェーダでわざわざ描画をする人がソースコードを書きちらかせるようにツールを作るというニッチにも程があるものを作りました。
というか自分が4k introで最低限必要なツールを作った感じですね。

このツールを使って即座に画面出力したりパラメータいじったり、
果ては音楽までGPUで作ったりしていたというわけですね。

(注意:GPUは本来なら描画に使うのがメインで音楽に使うのは様々な面で難しいと言われてます)

今なんで公開するの

本来ならTokyoDemoFest終わって公開しても良かったんですが、
その後音楽活動とゲーム制作とシンセ開発をタスクとして載っけてしまったので、
完全にツール公開が後回しになってたというお恥ずかしい経緯です。

描画ツールの存在意義は、「Windowsでの実行環境に沿った動作確認ができる」「パラメータをGUIで調整できる」という点です。
Shadertoyは基本的にブラウザのバージョンに依存して動くので、
4k intro作るときレイマーチングの下書きをShadertoyとかGLSLSandboxで行うと、
実行ファイルに落としたときに、割と再生できませーんって状態になります。

それを回避する意味合いでまずオフラインでの作業ができるツールを開発した感じですね。
あと結果をすぐ出力できるようにリロードボタンをつけたりエラー出力も適当につけてます。

もうひとつはコード上でパラメータを書いてしまうと「GLSLは文字列として保存される」ので、
最終的な実行ファイル内で縮む要素にはなりづらいんですね。
よって、パラメータをCPU制御に落とし込むための手段ではあります。
(CPU-GPU転送のためのコードは存在するので、それを削除するという選択肢もある)

ちなみに音楽ツールのほうは単純にGLSL描画ツールの副産物です。
ブラウザ上でShadertoyを動かして終わったらプログラムに書き込んで、という作業が面倒だったので、
まずイテレーションできる環境がほしいとさっさと作ったものです。(よってGUIも使いまわして機能も適当)

他に似たようなツールはあるの?

まぁあまりないですね。
軽い実装にコード書いてしまったほうが早いですもの。

よっしんさんが作成されたツール
ビルドまで用意されてるのが便利。

yosshin4004/minimal_gl: PC 4K Intro Editor (github.com)

結構前にHoleさんが作成されたツール

http://kagamin.net/hole/lc/index.htm

Holeさんのツールのほうが高機能ではあります。