gsls sandboxのコードを「とりあえず」PureDataに移植して動かす方法

スポンサーリンク
スポンサーリンク



おはようございます^ – ^

ナカジ(@cp_nakajun)です。

以前「PureDataもまだまだ捨てたもんじゃない!GEMを使った映像表現が想像以上」
という記事を書きました。

なぜかと言うと、PureDataはもともと音楽寄りに開発された経緯もあってか、あまり映像表現に強くありません。

この手のプロトタイピング開発環境ですと、最近は「vvvv」や「TouchDesigner」といった映像特化の環境があるのであまりPureDataでの映像表現は特に注目度はない感じではあります。

が…

今までプリミティブ(原始的)な図形表現や動画再生だけだと思ってたPureData環境でもGSLSが使えるとわかったのでもう少しの可能性を感じた訳です。

まぁ、どんな表現をするかにもよりますが

たとえ、「vvvv」や「TouchDesigner」を利用するにしてもGSLS等を学習しておくことに損はないと思います。

GLSL (OpenGL Shading Language) はGLslangとしても知られ、C言語をベースとした高レベルシェーディング言語である。

※「vvvv」はHLSLが使えます。

High Level Shading Language(ハイレベル シェーディング ランゲージ、略称: HLSL)はマイクロソフトによって開発された、Direct3D (DirectX) で使われるプログラマブルシェーダーのためのプロプライエタリなシェーディング言語である。

HLSLはOpenGLで使われるシェーディング言語であるGLSLと(機能的には)類似の物である。

スポンサーリンク

gsls sandboxのコードをPDに移植する

先にことわっておきます。

タイトルで「とりあえず」移植するとしたのは

シェーダー言語には2つの要素、頂点シェーダーとフラグメントシェーダーがあって
今回は頂点シェーダーの方は理解もせずにフラグメントシェーダーだけを移植してきてます。

まずは、gsls sandboxにアクセスします。



gsls sandboxとはウェブ上でGLSL言語によるシェーダ開発・実行ができて、その作品の公開・共有・派生までできるWEBサービスです。

その中から好きな物を選ぶと、glslが実行されつつコードが表示されます。



コードをコピーし、テキストエディタなどに貼り付け、「ファイル名.frag」として保存します。

PureDataからのインプットを受け取る為の変数をglslコードに追加します。



上記の赤で囲った部分に「uniform float inputval1;」と追記します。
インプットが2つなら「uniform float inputval1, inputval2;」と続けて記載します。


続いて、「inputval」で受け取った値でどのパラメーターを変化させるかです。

今回は試しに「scale」、大きさに当てはめてみました。


あとは、コレを保存しPureDataのパッチに読み込んで実行します。

上の赤で囲った部分で読み込んで、下の「inputval」に接続したスライダーで変化させます。



今回はgsls sandboxからの移植ということでPureDataパッチの詳細説明は割愛しますが

上記のパッチは以下のリンクからダウンロードできるようにしておきますので
参考にでもなれば、遊んでみてください。

201705-gem-glsl-sample.zip

スポンサーリンク
PROFILE
ブログ著者

運営者:ナカジ
クリエイティブをプラスする = 工夫して楽しむ
音楽、コンピューター、スポーツとマンガを愛する自由人。
モノをあまり所有せずシンプルに旅人・スナフキンのような生き方を大切にしてます。
>>プロフィール詳細
スポンサーリンク