toge's diary

コンピュータ関連の趣味をつらつらと。

[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を使わざるえないってところか。
うーん、嫌だなぁ。無用なベンダ依存の拡張使いたくない。