[OpenGL]Framebuffer ObjectはGL_TEXTURE_2Dでは使えない?
先週はまったFBOなんですけど、こんなページを発見。
http://openvidia.sourceforge.net/fbo.shtml
サンプルコードもあるので実行してみました。...あっさり動くよ。
うーん、何が違うのかと調べたら、GL_TEXTURE_RECTANGLE_NVを使ってますよ。
// こっちはOK! glBindTexture(GL_TEXTURE_RECTANGLE_NV, tex); glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_RGBA, 256,256, 0, GL_RGBA, GL_UNSIGNED_BYTE,NULL); glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_RECTANGLE_NV, tex, 0); // こっちはNG glBindTexture(GL_TEXTURE_2D, tex); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 256,256, 0, GL_RGBA, GL_UNSIGNED_BYTE,NULL); glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, tex, 0);
うーんGL_TEXTURE_2Dではやっぱり動かないな。
FBO使うならGL_TEXTURE_RECTANGLE_NVを使わざるえないってところか。
うーん、嫌だなぁ。無用なベンダ依存の拡張使いたくない。