LoginSignup
16
16

More than 5 years have passed since last update.

oFでShader(GLSL)を使うメモ

Last updated at Posted at 2015-06-09

チュートリアルは英語だし、
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に最終的な色を突っ込む
}
16
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
16