2011-08-11 16 views
3

OpenGLでは、私は静的なカメラと、ユーザーが「カメラを動かす」ときに移動する必要があるシーンを持っています。 私はOpenGLでかなり複雑なシーンを持っていますが、これは各フレームで完全に再生成されます。 これは基本的な質問ですが、シーンを一種のバッファに格納することはできませんが、それではOpenGLに描画するよう指示できますか?すべての図形を格納するOpenGLのバッファ?

+1

シーンのイメージをテクスチャに保存したいので、テクスチャ(genpfaultの答え)を描画するだけで済みます。または、レンダリングされるシーンデータを抽象的な方法で保存したいですか(Jerryの答え)? –

答えて

2

はい。 「従来の」OpenGLでは、display listを使用します。より近代的なOpenGLでは、vertex buffer objectを使用します。

+0

ありがとう、少しの理解を取ったが、今そこに着いている! –

1

FBOsを参照してください。

また、各フレームのカラーバッファをクリアしないでください。

+0

私はついにVBOに行った、ありがとう! –

3

OpenGLはシーンを保存しません。これは描画APIです。つまり、描画コマンドを送信することです。表示リストは、大量の描画コマンドをバッチアップするのに便利な方法です。したがって、再描画によってシーンを「再作成」することもありませんが、OpenGLの描画コマンドを発行するたびに実際に描画しています。これは理解することが重要です!とにかくすべてのものを再描画するので、何かを変えることはシーンであるということは、OpenGLの部分ではコストがかからないことを意味します。ですから、OpenGLがあなたのためにいくつかのシーン管理を行ったという(間違った)仮定の周りにあなたのプログラムを設計することはほとんど利益になりません。

関連する問題