1

私は次のことを目的としたコードを書いています。1。FBOを使用してOpenGLテクスチャにレンダリングします。2.FBOテクスチャからXPixmapに接続されているGLXPixmapに描画します。3.XPixmapを画面上のウィンドウに描画します。

FBOテクスチャを通常のOpenGL描画に置き換えると、ステップ3はうまく機能し、ステップ2はうまく機能します。

しかし、少なくとも私が持っているコードでは、上記のことを実行すると、機能しません。GLXPixmapに色付きの背景を指定し、1〜3を実行すると、画面のウィンドウが白に変わりますが、他に描画したものは何も表示されません。

ですから、誰かがヒントを提供したり、簡単なサンプルコードを教えてくれることを願っています。このために私が持っているコードはかなり複雑ですが、必要に応じて、レビューのためにここに投稿する簡単なサンプルバージョンを書いてみることができます。

4

1 に答える 1

1

最後の 2 つの手順は機能するが、手順 1 で作成した FBO を使用しない場合は、FBO の初期化が間違っている可能性があります。確認事項:

  • FBOは「フレームバッファが完全」ですか?glCheckFramebufferStatus( GL_FRAMEBUFFER_COMPLETE )すべてのテクスチャおよび/またはレンダバッファをそれにアタッチした後、使用を確認してください。
  • glGetTexImage問題が FBO への書き込みにあるのか、FBO からの読み取りにあるのかを判断するために、FBO にレンダリングした後に FBO を調査する方法はありますか?
  • おそらく既にチェック済みですが、質問する価値がありglGetError()ます。何かエラーが返されますか?

すべてが正しくチェックアウトされたら、いくつかのスケルトン設定とレンダリング コードを投稿してください...もちろん、複雑でないほど良いですが =)

于 2009-12-31T21:58:02.090 に答える