最終更新: mikk_ni3_92 2009年12月05日(土) 16:59:08履歴
現在地:メニュー >> NVIDIA_SDK >> NVIDIA_SDK_07
NVIDIA SDKの中には、
これを使うと、比較的簡単にFBOとRBOの設定を行う事ができる。
「FramebufferObjectクラス」と「Renderbufferクラス」用意してそれぞれアタッチメントをするだけでよい。
あとは、内部で勝手にやってくれる。
【例】
あとは、「Bindメンバ関数」と、「FramebufferObject::Disable()」で出力先を切り替える。
【例】
NVIDIA SDKの中には、
- 「framebufferObject.h」、「framebufferObject.cpp」(FBOに関するもの)
- 「renderbuffer.h」「renderbuffer.cpp」(RBOに関するもの)
これを使うと、比較的簡単にFBOとRBOの設定を行う事ができる。
「FramebufferObjectクラス」と「Renderbufferクラス」用意してそれぞれアタッチメントをするだけでよい。
あとは、内部で勝手にやってくれる。
【例】
std::pair<int,int> TextureWH(512,512);//テクスチャのサイズ unsigned int texID[1]; … … … どこかでテクスチャメモリを確保 … fbo = new FramebufferObject(); rbo = new Renderbuffer(GL_DEPTH_COMPONENT, TextureWH.first,TextureWH.second); //テクスチャ->FBO のアタッチメント fbo->AttachTexture(GL_TEXTURE_2D, texID[0], GL_COLOR_ATTACHMENT0_EXT); //RBO->FBOのアタッチメント fbo->AttachRenderBuffer(rbo->GetId(), GL_DEPTH_ATTACHMENT_EXT); fbo->IsValid();//エラーチェック FramebufferObject::Disable();//FBOはOFFにしておく
あとは、「Bindメンバ関数」と、「FramebufferObject::Disable()」で出力先を切り替える。
【例】
//fbo切り替え fbo->Bind(); /* ここの描画はRBO(FBOにアタッチした所に出力)*/ //出力先を通常のフレームバッファの戻す FramebufferObject::Disable(); /* ここからは通常の出力 */