チュートリアルは英語だし、
WEBGLの記事ばかりで、やっとoFで噂のShaderを書いて動かす方法が
わかったのでメモ。。
こちらの連載がおすすめです。
oF流に書き直して学んでます。
http://qiita.com/doxas/items/00567758621bb506e584
bin/data/の中に
shadersGL2/shader.frag
shadersGL2/shader.vert
を追加
ofApp.cpp
#include "ofApp.h"
ofShader shader;
//--------------------------------------------------------------
void ofApp::setup(){
// #120のバージョンにします。
shader.load("shadersGL2/shader");
}
//--------------------------------------------------------------
void ofApp::draw(){
// begin()とend()で挟んだ中が適用される
shader.begin();
// timeという変数名で第二引数の値を送れる
shader.setUniform1f("time", ofGetElapsedTimef());
ofRect(0, 0, ofGetWidth(), ofGetHeight());
shader.end();
}
shader.vert
#version 120
void main()
{
gl_Position = ftransform();
}
shader.frag
#version 120
uniform float time;
void main()
{
// oFから来たtimeによって色かえる
float r = abs(sin(time));
float g = abs(cos(time));
float b = (r + g) / 2.0;
gl_FragColor = vec4(r, g, b, 1.0);
// gl_FragColorに最終的な色を突っ込む
}