現在地メニュー >> NVIDIA_SDK >> NVIDIA_SDK_07

NVIDIA SDKによるFBO、RBOの作成


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();
	/* ここからは通常の出力 */

サンプルコード

目次

― その他 ―

Wiki内検索

計測中...(07.10.8〜)

Save The World






▲よろしければ広告のクリックもお願いします


▲ランキングに参加しました

管理人/副管理人のみ編集できます