openFrameworksでステンシルバッファ
openFrameworksは、インタラクティブなシステムやメディアアートを制作しやすくするように設計されたフレームワークですが、OpenGLのGLUTを拡張しながら、通信や画像処理や動画の表示など、さまざまな機能を一緒に使いやすくするようラップされたライブラリが同梱されています。
DAWNでは、動画を表示しているスクリーンに映った身体の影の向こうに、違った動画が現れます。こうしたマスクを使った動画の表示をする方法には、幾つか手法がありますが、今回はステンシルバッファを使いました。
参考にさせてもらったサイトがこちら。
http://son-son.sakura.ne.jp/programming/opengl_2.html
http://son-son.sakura.ne.jp/programming/opengl_4.html
そして、
openframeworks の/libs/openFrameworks/app/ofAppGlutWindow.cpp の void ofAppGlutWindow::setupOpenGL(int w, int h, int screenMode); の中で
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH | GLUT_ALPHA );
となっているところを
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH | GLUT_ALPHA | GLUT_STENCIL);
とすることで、ステンシルバッファも使えるようになる。