シンプルなDomain WarpingをopenFrameworksに移植するサンプル。
openFrameworksのapps/myApps
以下にこのディレクトリが存在することを前提とする。
テクスチャ画像はGit管理下に入れていないので、bin/data
以下にpen_1.jpg
を手動で配置する。
テクスチャの画素数が2の累乗ではない場合、ofApp.cpp
のofApp::setup()
にはofDisableArbTex();
を記載せず、Fragment Shaderでもsampler2D
, texture2D
の代わりにsampler2DRect
, texture2DRect
を使用すれば良いらしい。
ただし、その場合は以下の2点に注意が必要。
- テクスチャ座標が0から1ではなくピクセル単位(テクスチャの画素に対応)になる
ofApp::setup()
にimage.getTexture().setTextureWrap(GL_REPEAT, GL_REPEAT);
を記載してもGL_REPEAT
が有効にならない
後者に関しては、test.frag
に実装したmirror()
関数を利用することで対処した。