Palette

ritocoのクリエイティブコーディング記録

ProcessingでGLSLを実行してみた






はじめに


ritocoです。
今回はProcessingでGLSLを実行してみました!

自分がまとめるにあたって
以下のサイトを参考にさせていただきました。

https://solo-p5.tumblr.com/post/126177663372/processing%E3%81%A7%E3%82%B7%E3%82%A7%E3%83%BC%E3%83%80%E3%83%BC%E6%9B%B8%E3%81%8F%E3%81%9E
solo-p5.tumblr.com
thebookofshaders.com



画像はすべて2019年1月1日のものです。







早速やってみる


到達目標はこんな感じです。

f:id:ritocopalette:20190102221525p:plain



1 Processingに以下のソースコードをコピー


PShader shader;

void setup() {
  size(640, 360, OPENGL);                              //Open_GL対応した横640px * 縦360pxのカンバスを生成
  noStroke();                                            
}

void draw() {
 
  shader = loadShader("shader.frag");             //shader.frag(シェーダーファイル)を読み込む。
  shader.set("resolution", float(width), float(height));
  shader.set("mouse", float(mouseX), float(mouseY));
  shader.set("time", millis() / 10000.0);                    //shaderの速度
  shader(shader);
  rect(0,0,width,height);                                 
}



f:id:ritocopalette:20190102225847p:plain
貼り付けたらこんな感じになると思います。



やってて気づいたのですが

  shader.set("resolution", float(width), float(height));
  shader.set("mouse", float(mouseX), float(mouseY));
  shader.set("time", millis() / 10000.0);



The Book of Shadersからそのままコピーしてしまうと
この3行の"resolution"、"mouse"、"time"が原因で動かない…みたいなことがありました。
u_mouseなどになっているので"u_"の部分を消しました。




2 Processingファイルを名前つけて保存する



f:id:ritocopalette:20190102221455p:plain

コピーしたProcessingのスケッチ(ソースコード)をそのままの名前で、必ず自分がわかる場所に保存。



3 GLSL Sandboxにアクセス


f:id:ritocopalette:20190102221501p:plain



4 タイトルのすぐ下の「creative new effect」をクリック


f:id:ritocopalette:20190102221505p:plain



5 デモ画面のソースコードをすべて選択してコピー


f:id:ritocopalette:20190102221509p:plain

全部しっかりコピーしないとエラー出るので注意です。
私は一番最後のカッコをコピーせずにやらかしました。確認大事。



6 テキストエディタにコピー


f:id:ritocopalette:20190102221515p:plain

私は今回Atomを使用しています。



7 「shader.frag」で2で作ったProcessingフォルダに名前を付けて保存



f:id:ritocopalette:20190102221519p:plain


8 Processingを開いて実行(再生ボタン)を押す


f:id:ritocopalette:20190102221522p:plain
ドキドキ。



9 できた!


f:id:ritocopalette:20190102221525p:plain






おわりに


自分での覚書でもあるので、ざっくりまとめてみました。
このshader.fragのファイルの中に自分で制作したGLSLを書くと、それがProcessingでも動きます。

閲覧ありがとうございました!