#はじめに
glfwを使えば,クロスプラットフォームでOpenGLのオフスクリーンレンダリングができるということがわかりましたので,その方法を簡単にまとめます.WindowsやMesaではやる方法があったのですが,GLFWを使えばどこでも簡単にできるようになりました.
使い方としては,ウィンドウを出さずに済むので,サーバー側でバッチ処理とかに使えそうです.図を固定した視点でレンダリングして,画像にするという使い方を考えています.修論で,法線マップを画像に書き出して以来気にしていたのですが,できる方法が確立されてスッキリです.
#方法
::glfwWindowHint( GLFW_VISIBLE, 0 )
を入れればokです.入れるタイミングは,以下のあたりです.画像の取得は,glReadPixels()などを使えばできます.
int width = 640;
int height = 480;
if ( ::glfwInit() == GL_FALSE ) return false;
::glfwWindowHint( GLFW_VISIBLE, 0 );
GLFWwindow* win = ::glfwCreateWindow( width, height, "tmp", NULL, NULL );
#ラッパー
C++のラッパーを作成しました.サンプルプログラムや,他のクラス,関数(gluUnproject()などの代替,カメラクラスなど)もあります.